当前位置: 代码迷 >> 驱动开发 >> ubifs文件系统挂载失败,该怎么处理
  详细解决方案

ubifs文件系统挂载失败,该怎么处理

热度:60   发布时间:2016-04-28 10:14:19.0
ubifs文件系统挂载失败
最近由于工作需求,想做一个ubifs文件系统,但是挂载失败,请大侠帮忙分析一下,错误信息如下:
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
UBI: attached mtd2 to ubi0
UBI: MTD device name:            "nand.rootfs"
UBI: MTD device size:            235 MiB
UBI: number of good PEBs:        1873
UBI: number of bad PEBs:         7
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     0
UBI: available PEBs:             1851
UBI: total number of reserved PEBs: 22
UBI: number of PEBs reserved for bad PEB handling: 18
UBI: max/mean erase counter: 2/1
UBI: image sequence number: 0
UBI: background thread "ubi_bgt0d" started, PID 337
UBIFS error (pid 1): ubifs_get_sb: cannot open "ubi0:rootfs", error -19
VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00           16384 mtdblock0 (driver?)
1f01            5120 mtdblock1 (driver?)
1f02          240640 mtdblock2 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[<8002a128>] (unwind_backtrace+0x0/0xe0) from [<8030fb8c>] (panic+0x68/0xdc)
[<8030fb8c>] (panic+0x68/0xdc) from [<80008d58>] (mount_block_root+0x234/0x284)
[<80008d58>] (mount_block_root+0x234/0x284) from [<80008e8c>] (prepare_namespace+0x88/0x174)
[<80008e8c>] (prepare_namespace+0x88/0x174) from [<800089e0>] (kernel_init+0x120/0x160)
[<800089e0>] (kernel_init+0x120/0x160) from [<800268b4>] (kernel_thread_exit+0x0/0x8)

我制作ubifs文件系统步骤如下:
1、在kernel中添加ubifs文件系统相关的选项
2、制作ubifs.img文件并烧写经nand flash,但是就是挂载不上,请大虾帮忙分析,谢谢
------解决方案--------------------
1. 制作ubi image的命令行,reference: https://github.com/voiceshen/scripts4linux/tree/master/ubifs
2. 启动系统的命令行参数。
------解决方案--------------------
1.在uboot里,setenv nand_root ubi0:rootfs rw ubi.mtd=2,2048
2.制作imgae时,mkfs.ubifs -c 这个参数要仔细计算,些参数影响较大,再就是改一下ubinize.cfg这个文件的相关参数
3.再说一个我遇到的,开发用了gpio结果一个复用io被改了,结果造成nand read only,这个是驱动造成的,改一下内核驱动就可以了。

我就遇到这些,希望能帮到你。