UBIFS移植错误

用的是Mini6410,1G Nandfalsh,用友善提供的文件系统,启动信息如下
UBI: attaching mtd2 to ubi0                                                   
UBI: physical eraseblock size:   131072 bytes (128 KiB)                        
UBI: logical eraseblock size:    129024 bytes                                 
UBI: smallest flash I/O unit:    2048                                          
UBI: sub-page size:              512                                          
UBI: VID header offset:          512 (aligned 512)                             
UBI: data offset:                2048

我自己做了一个文件系统,用友善提供的mkubimage制作ubi镜像后,可以正常启动
但用如下命令制作镜像后,就出现错误,制作命令为:
$ mkfs.ubifs -r rootfs -m 2048 -e 129024 -c 7720 -o rootfs-ubi.img
$ ubinize -o rootfs.ubi -m 2048 -p 128KiB -s 512 ubinize-rootfs.cfg

ubinize-rootfs.cfg内容为:
[ubifs]
mode=ubi
image=rootfs-ubi.img
vol_id=0
vol_size=950MiB
vol_type=dynamic
vol_name=FriendlyARM-root
vol_flag=autoresize

错误为:
UBIFS: mounted UBI device 0, volume 0, name "FriendlyARM-root"                 
UBIFS: file system size:   994646016 bytes (971334 KiB, 948 MiB, 7709 LEBs)   
UBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)            
UBIFS: media format:       w4/r0 (latest is w4/r0)                             
UBIFS: default compressor: lzo                                                
UBIFS: reserved for root:  0 bytes (0 KiB)                                    
one_wire_status: 4                                                            
UBIFS error (pid 1): ubifs_check_node: bad CRC: calculated 0xbc4b251c, read 0x60
UBIFS error (pid 1): ubifs_check_node: bad node at LEB 51:45312               
UBIFS error (pid 1): ubifs_read_node: expected node type 9                     
UBIFS error (pid 1): do_readpage: cannot read page 249 of inode 140, error -117
UBIFS error (pid 1): ubifs_check_node: bad CRC: calculated 0xbc4b251c, read 0x60
UBIFS error (pid 1): ubifs_check_node: bad node at LEB 51:45312               
UBIFS error (pid 1): ubifs_read_node: expected node type 9                     
UBIFS error (pid 1): do_readpage: cannot read page 249 of inode 140, error -117
Kernel panic - not syncing: Attempted to kill init!                           
[<c016d464>] (unwind_backtrace+0x0/0xe4) from [<c04fc4cc>] (panic+0x58/0x174)  
[<c04fc4cc>] (panic+0x58/0x174) from [<c0187848>] (do_exit+0x68/0x5cc)         
[<c0187848>] (do_exit+0x68/0x5cc) from [<c0188070>] (do_group_exit+0x90/0xc4)  
[<c0188070>] (do_group_exit+0x90/0xc4) from [<c0191d7c>] (get_signal_to_deliver)
[<c0191d7c>] (get_signal_to_deliver+0x324/0x35c) from [<c016a760>] (do_signal+0)
one_wire_status: 2                                                            
[<c016a760>] (do_signal+0x50/0x5b4) from [<c016b288>] (do_notify_resume+0x18/0x)
[<c016b288>] (do_notify_resume+0x18/0x4 from [<c0167e78>] (work_pending+0x24/)
one_wire_status: 2   

网上说可能是mtd-utils的版本问题,但我试了2009、2010、2011,都出现错误,但calculated 0xbc4b251c中的校验值确实都不一样。

作者: wgetfree   发布时间: 2011-02-12

回复 wgetfree


    将mtd-utils换成2009版,CRC错误没了,但有如下错误:
UBIFS error (pid 875): ubifs_get_sb: cannot open "ubi0:FriendlyARM-root", error9
mount: mounting ubi0:FriendlyARM-root on /r failed: No such device            
/init: line 102: can't open /r/dev/console: no such file                       
Kernel panic - not syncing: Attempted to kill init!                           
[<c016d464>] (unwind_backtrace+0x0/0xe4) from [<c04fc4cc>] (panic+0x58/0x174)  
[<c04fc4cc>] (panic+0x58/0x174) from [<c0187848>] (do_exit+0x68/0x5cc)         
[<c0187848>] (do_exit+0x68/0x5cc) from [<c0188070>] (do_group_exit+0x90/0xc4)  
[<c0188070>] (do_group_exit+0x90/0xc4) from [<c01880b4>] (sys_exit_group+0x10/0)
[<c01880b4>] (sys_exit_group+0x10/0x1 from [<c0167e20>] (ret_fast_syscall+0x0)
one_wire_status: 2

作者: wgetfree   发布时间: 2011-02-12

用了命令ubinize -o rootfs.ubi -m 2048 -p 128KiB  ubinize-rootfs.cfg
将原有的-s 512删除后,就没有CRC错误了

但有如下错误
UBIFS error (pid 875): ubifs_get_sb: cannot open "ubi0:FriendlyARM-root", error9
mount: mounting ubi0:FriendlyARM-root on /r failed: No such device              
/init: line 102: can't open /r/dev/console: no such file                        
Kernel panic - not syncing: Attempted to kill init!                             
[<c016d464>] (unwind_backtrace+0x0/0xe4) from [<c04fc4cc>] (panic+0x58/0x174)   
[<c04fc4cc>] (panic+0x58/0x174) from [<c0187848>] (do_exit+0x68/0x5cc)         
[<c0187848>] (do_exit+0x68/0x5cc) from [<c0188070>] (do_group_exit+0x90/0xc4)   
[<c0188070>] (do_group_exit+0x90/0xc4) from [<c01880b4>] (sys_exit_group+0x10/0)
[<c01880b4>] (sys_exit_group+0x10/0x1 from [<c0167e20>] (ret_fast_syscall+0x0)
one_wire_status: 2

作者: wgetfree   发布时间: 2011-02-12