cltnet 发表于 2008-09-08 09:57

[求助]Verifying Checksum ... Bad Data CRC

请问一下.

我使用的是CPU 8695 Kernel= 2.6.17.8

我把编译好的内核和文件系统使用
mkimage -A arm -O linux -T multi -C none -a 0x8000 -e 0x8000 -n "Kernel-Ramdisk-Image" -d zImage:Ramdisk mImage
命令生成了一个mImage文件,

我使用tftp 0xA00000 mImage 到版主中后.

bootm 0xA00000

   Image Name:   Kernel-Ramdisk-Image
   Image Type:   ARM Linux Multi-File Image (uncompressed)
   Data Size:    2093015 Bytes =2 MB
   Load Address: 00008000
   Entry Point:00008000
   Contents:
   Image 0:   946956 Bytes = 924.8 kB
   Image 1:1146047 Bytes =1.1 MB
   Verifying Checksum ... OK

这样就可以起来了.

但是我通过起来后的系统进板子的串口,使用
flash_erase /dev/mtd1
cp mImage /dev/mtdblock1

重启后就不能启动了.在U-BOOT校验时就出现错误了.

   Image Name:   Kernel-Ramdisk-Image
   Image Type:   ARM Linux Multi-File Image (uncompressed)
   Data Size:    2093015 Bytes =2 MB
   Load Address: 00008000
   Entry Point:00008000
   Contents:
   Image 0:   946956 Bytes = 924.8 kB
   Image 1:1146047 Bytes =1.1 MB
   Verifying Checksum ... Bad Data CRC

难道是u-boot和内核写文件的方式不同.

cltnet 发表于 2008-09-08 14:48

大家都很少使用U-BOOT吗?
还是没有遇到过这种问题呢?

sep 发表于 2008-09-08 15:03

sbc2410=>tftp 0x30008000 zImage.img
sbc2410=>nand erase 0x30000 0x1d0000
sbc2410=>nand write 0x30008000 0x30000 0x1d0000

rodgerluo 发表于 2008-09-08 15:13

原帖由 sep 于 2008-9-8 15:03 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
sbc2410=>tftp 0x30008000 zImage.img
sbc2410=>nand erase 0x30000 0x1d0000
sbc2410=>nand write 0x30008000 0x30000 0x1d0000


0x30008000不是RAM区域吗?你写到那里是想干什么?
就算是Nand区域,这个地址是哪里呀?你有这么大的Nand(768MB)?

cltnet 发表于 2008-09-08 15:30

我是在内核中写就会出现错误,
通过U-BOOT tftp是可以正常启动的....

sep 发表于 2008-09-08 16:13

原帖由 rodgerluo 于 2008-9-8 15:13 发表 http://linux.chinaunix.net/bbs/images/common/back.gif



0x30008000不是RAM区域吗?你写到那里是想干什么?
就算是Nand区域,这个地址是哪里呀?你有这么大的Nand(768MB)?
具体看http://blog.chinaunix.net/u/25764/showart_1011879.html
0x30008000的确是RAM区域
nand erase 0x30000 0x1d0000 是将0x30000(这个是你flash上kernel分区的首地址)开始、大小为0x1d0000(这个是kernel分区大小)擦除
nand write 0x30008000 0x30000 0x1d0000是将内存地址0x30008000开始、大小为0x1d0000的内容拷贝到flash地址0x30000
这样说,你明白吗?

sep 发表于 2008-09-08 16:25

原帖由 cltnet 于 2008-9-8 15:30 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
我是在内核中写就会出现错误,
通过U-BOOT tftp是可以正常启动的....
所以我叫你不要进入系统copy啊,copy文件系统好像是可以
在uboot命令行下copy

cltnet 发表于 2008-09-08 17:05

原帖由 sep 于 2008-9-8 16:25 发表 http://linux.chinaunix.net/bbs/images/common/back.gif

所以我叫你不要进入系统copy啊,copy文件系统好像是可以
在uboot命令行下copy



是啊,在uboot下我copy后系统是正常启动的.并且也可以断电重启.

现在我是想在系统中先用flash_erase擦除.在copy进分区里面保存.

但是现在我在系统中就不行了.

在uboot下面是正常的读写,保存了的.

sep 发表于 2008-09-08 17:13

原帖由 cltnet 于 2008-9-8 17:05 发表 http://linux.chinaunix.net/bbs/images/common/back.gif




是啊,在uboot下我copy后系统是正常启动的.并且也可以断电重启.

现在我是想在系统中先用flash_erase擦除.在copy进分区里面保存.

但是现在我在系统中就不行了.

在uboot下面是正常的读写,保存了的.
我明白你意思了
这样吧,你mount -o loop /dev/mtdblock1 /mnt,然后cp mImage /mnt,看看行不?

cltnet 发表于 2008-09-09 10:10

原帖由 sep 于 2008-9-8 17:13 发表 http://linux.chinaunix.net/bbs/images/common/back.gif

我明白你意思了
这样吧,你mount -o loop /dev/mtdblock1 /mnt,然后cp mImage /mnt,看看行不?


也不行.

我在想flash空间是划分够了的.那会是什么错误呢?

会不会是uboot copy时使用的二进制或是ASCII与在系统中copy不一样造成的呢?

我想除了这点原因我暂时还想不到其他的原因了...

有什么不同呢?
页: [1] 2
查看完整版本: [求助]Verifying Checksum ... Bad Data CRC