我用的开发包是DVRRDK3.5. 板子是公司自己做的,芯片采用的是DM8168.。但是产品总是出现 ubifs error等错误,必须重新烧文件系统才能解决,后来改成只读文件系统,这个错误出现的频率变少了,但是仍然会出现。我在TI论坛上找到了类似的错误,连接如下:
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/292431/1023621#1023621
内核下载地址 http://arago-project.org/git/projects/?p=linux-omap3.git;a=summary
里面给出的解决方法是更新内核。
我从git上下载了源码,编译好烧写到板子上,奇怪的是,首次是可以正常启动的。重启后系统可以正常启动,但是会在启动阶段爆出错误信息:
ata1: SATA max UDMA/133 irq_stat 0x00400040, connection status changed irq 16 ata2: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x180 irq 16 omap2-nand driver initializing ONFI param page 0 valid ONFI flash detected NAND device: Manufacturer ID: 0x2c, Chip ID: 0xca (Micron NAND 256MiB 3,3V 16-bit) omap2-nand: detected x16 NAND flash Creating 6 MTD partitions on "omap2-nand.0": 0x000000000000-0x000000260000 : "U-Boot" 0x000000260000-0x000000280000 : "U-Boot Env" 0x000000280000-0x000000580000 : "U-Boot Logo" 0x000000580000-0x0000009c0000 : "Kernel" 0x0000009c0000-0x00000d1e0000 : "File System" 0x00000d1e0000-0x000010000000 : "Reserved" UBI: attaching mtd4 to ubi0 UBI: physical eraseblock size:131072 bytes (128 KiB) UBI: logical eraseblock size:126976 bytes UBI: smallest flash I/O unit:2048 UBI: sub-page size:512 UBI: VID header offset:2048 (aligned 2048) UBI: data offset:4096 UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 1:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 2:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 4:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 5:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 6:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 7:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 10:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 17:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 22:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 24:0, read 64 bytes 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 994:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 1126:0, read 64 bytes UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 1600:0, read 64 bytes UBI: max. sequence number:318 UBI warning: print_rsvd_warning: cannot reserve enough PEBs for bad PEB handling, reserved 11, need 16 UBI: attached mtd4 to ubi0 UBI: MTD device name:"File System" UBI: MTD device size:200 MiB UBI: number of good PEBs:1601 UBI: number of bad PEBs:0 UBI: number of corrupted PEBs:0 UBI: max. allowed volumes:128 UBI: wear-leveling threshold:4096 UBI: number of internal volumes: 1 UBI: number of user volumes:1 UBI: available PEBs:0 UBI: total number of reserved PEBs: 1601 UBI: number of PEBs reserved for bad PEB handling: 11 UBI: max/mean erase counter: 8/0 UBI: image sequence number: 1742113300 UBI: background thread "ubi_bgt0d" started, PID 44 UBI: scrubbed PEB 117 (LEB 0:1019), data moved to PEB 1600
我在论坛里也找到了类似的问题,但是没有找到解决办法。请各位朋友看下,是否是内核配置时缺少了什么东西? 或者nand驱动有问题。
注明下:如果换成上一版的内核,就不会出现这样的情况。
Chris Meng:
你好,
能否使用dvr rdk4.01的文件系统?它和最新的kernel一起使用是没有问题的。
peng cheng2:
回复 Chris Meng:
我用4.0的文件系统简单测试了下,没有出现这个问题。
这个是为什么,3.5包里面的文件系统跟4.0的相比缺少什么东西?还是4.0的做了更新,修复了这个问题。