uboot启动linux内核时输出Verifying Checksum ... Bad Data CRC解决方法
2014-11-23 22:49
441 查看
先贴出笔者在uboot启动linux时的错误输出
笔者的内核是没问题的,那么问题就应该是在烧写nand flash上了
再回过头看输出的信息,
NAND read: device 0 offset 0xa0000, size 0x400000
size adjusted to 0x200000 (16 bad blocks)
<span style="color:#ff0000;">2097152 bytes read: OK</span>我给内核(实际大小是2.7M)分的空间是从0xa0000开始的4M空间,但是只是读了2097152 bytes,就是2M,这里就奇怪了!!
那么问题出在哪里呢,可以看到size adjusted to 0x200000 (16 bad blocks)---->适合的大小是2M(16个坏块)在uboot中输入nand info命令,可以看到Erase size 131072
b,意思是一个擦出块是128k,那么16个坏块就占了2M!!!!!(这样就浪费了2M空间)修改uboot参数,将kernel分区扩大为12M,重新烧写,启动就没问题了
<span style="font-size:18px;">NAND read: device 0 offset 0xa0000, size 0x400000 size adjusted to 0x200000 (16 bad blocks) 2097152 bytes read: OK ## Booting kernel from Legacy Image at 30000000 ... Image Name: Linux-3.17.2 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2624776 Bytes = 2.5 MiB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... Bad Data CRC ERROR: can't get kernel image!</span>在内核中搜索Verifying Checksum ,在image.c中有这样一段:
<span style="font-size:18px;">if (verify) { puts(" Verifying Checksum ... "); if (!image_check_dcrc(rd_hdr)) { puts("Bad Data CRC\n"); bootstage_error(BOOTSTAGE_ID_RD_CHECKSUM); return NULL; } puts("OK\n"); }</span>这里的image_check_dcrc的函数是将内核映像的头部64字节的校验信息跟实际得到的内核的参数进行对比,很明显是烧写内核的数据出了差错!
笔者的内核是没问题的,那么问题就应该是在烧写nand flash上了
再回过头看输出的信息,
NAND read: device 0 offset 0xa0000, size 0x400000
size adjusted to 0x200000 (16 bad blocks)
<span style="color:#ff0000;">2097152 bytes read: OK</span>我给内核(实际大小是2.7M)分的空间是从0xa0000开始的4M空间,但是只是读了2097152 bytes,就是2M,这里就奇怪了!!
那么问题出在哪里呢,可以看到size adjusted to 0x200000 (16 bad blocks)---->适合的大小是2M(16个坏块)在uboot中输入nand info命令,可以看到Erase size 131072
b,意思是一个擦出块是128k,那么16个坏块就占了2M!!!!!(这样就浪费了2M空间)修改uboot参数,将kernel分区扩大为12M,重新烧写,启动就没问题了
</pre><pre name="code" class="objc">
</pre><pre name="code" class="objc">
相关文章推荐
- Verifying Checksum ... Bad Data CRC ERROR: can't get kernel image!
- 硬盘启动提示verifying DMI Pool Data错误的解决方法
- Verifying Checksum ... Bad Data CRC 错误解决
- Verifying Checksum ... Bad Data CRC 错误解决
- 无法直接启动带有"类库输出类型"的项目 的解决方法
- BlackBerry PlayBook NDK 启动时出现“License check failure”错误的解决方法。
- Mysql修改datadir导致无法启动问题解决方法
- hadoop 完全分布式 下 datanode无法启动解决方法
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (-)启动创建好的DBExpress工程时候报错了!
- 跪求!!!!Verifying DMI Pool Data....解决方法!!!要真正的解决方法!!!!
- Mysql修改datadir导致无法启动问题解决方法
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- MyEclipse中启动tomcat报错:"bad version number in .class file"的解决方法
- 在eclipse下用java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource定义data-source Tomcat无法启动的解决方法
- Linux 使用开源 yum 报错 Error performing checksum 解决方法
- yum makecache 时出现[Errno -3] Error performing checksum 错误的解决方法
- Linux 使用开源 yum 报错 Error performing checksum 解决方法
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- 【Hadoop datanode重新加载失败无法启动现象解决方法介绍】
- Hadoop在linux下无法启动DataNode解决方法