使用的是飞凌嵌入式的开发板,但是用的uboot和kernel内核都是ti官网上下载,具体的是这样的:使用mtd_utils制作了mkfs.ubifs和ubinize,并且使用这两个工具生成了ubi.img跟文件镜像,我把MLO、uboot.ing、zImage、ubi.img等都拷贝到sd卡中,在uboot中通过一系列命令将这些文件从sd卡中分别拷入对应的nandflash分区,然后重新上电从nandflash启动,一切正常,ubifs根文件系统的挂接也正常,可以运行应用程序。
我自己做了一个上位机来对开发板进行远程更新跟文件系统,先擦除,后烧写,按块来写,每块写64页,等显示所有数据均已发送完毕,升级成功后,重新上电,但是在挂接跟文件的时候出错了:
[ 1.751703] ubi0: attaching mtd9
[ 1.863985] ubi0 warning: ubi_attach: valid VID header but corrupted EC header at PEB 176
[ 1.872268] ubi0 error: ubi_compare_lebs: unsupported on-flash UBI format
[ 1.879393] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd9, error -22
[ 1.886604] UBI error: cannot attach mtd9
[ 1.891991] input: volume_keys0 as /devices/platform/volume_keys0/input/input0
[ 1.900505] hctosys: unable to open rtc device (rtc0)
[ 1.906566] ALSA device list:
[ 1.909565] No soundcards found.
[ 1.914036] VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0): error -19
[ 1.922211] Please append a correct "root=" boot option; here are the available partitions:
[ 1.930625] 0100 65536 ram0
[ 1.930631] (driver?)
[ 1.936839] 0101 65536 ram1
[ 1.936843] (driver?)
[ 1.943038] 0102 65536 ram2
[ 1.943042] (driver?)
[ 1.949183] 0103 65536 ram3
[ 1.949187] (driver?)
[ 1.955355] 0104 65536 ram4
我猜想是不是在更新中数据出错了,于是重新上电到uboot中把nandflash中的数据打印出来看一下,当然数据太多了,20多M,我只是选取了头、中间、尾部的一些数据来看,来和ubi.img文件进行比较,数据好像也没有什么错。
因为经验不够,没有什么思路来解决这个问题,所以发帖求助一下,希望大神们能给些建议。
user4181845:
补充:应用程序中烧写时用的函数是pwrite(),有判断和标记坏块机制,但是没有处理什么oob和ecc。在uboot中使用nand write烧写是可以正常挂接的。
,
Nancy Wang:
建议您去英文论坛咨询,会有产品线工程师给您提供支持,另外英文论坛需要使用企业邮箱发帖咨询。
e2e.ti.com/…/processors-forum
,
user4181845:
前几天已经解决了,突然想起来要来说一下,希望能够帮到遇到一样问题的人,我上面在对根文件进行更新时,我没有擦除整个分区,因为我的nandflash是256M的,MLO、dtb、zImage等加在一起才10M,剩下的246M全部给根文件系统了,我当时想着我的根文件系统一共也就20M左右,我就擦除了50M,就遇到了这样的问题,后来我在uboot中烧写时试过,如果只擦除50M,同样也不能挂接,同样也试了几次,发现uboot中擦除100M是可以的,但是在应用程序中更新时必须要擦除整个分区才可以,这里面是不是有什么其它的原理,我现在还不知道。
,
Nancy Wang:
感谢分享!
TI中文支持网


![AM6442: [IPC RPMSG] Message send to remote core 5 @ 16 end point truncated due to lack of space in vring buffer !!!-TI中文支持网](https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_DSP_pastedimage1753265713483v1.jpg)