This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

内核和根文件系统移植



最近自己在做内核以及根文件系统的移植,用的开发板是TI的dm6467.可是在将内核和根文件系统通过uboot烧写到开发板中时,boot开发板。

之后就出现下面这样的错误了:

Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes

empty_blocks 1536, bad_blocks 0, c->nr_blocks 3520

VFS: Cannot open root device "mtdblock3" or unknown-block(31,3)

Please append a correct "root=" boot option; here are the available partitions:

1f00             128 mtdblock0 (driver?)

1f01            1280 mtdblock1 (driver?)

1f02            4096 mtdblock2 (driver?)

1f03           56320 mtdblock3 (driver?)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

Backtrace:

[<c002e6d0>] (dump_backtrace+0x0/0x110) from [<c002e814>] (dump_stack+0x18/0x1c)

 

 r6:c0026808 r5:c6011006 r4:c03f32f0

[<c002e7fc>] (dump_stack+0x0/0x1c) from [<c0040164>] (panic+0x54/0x124)

[<c0040110>] (panic+0x0/0x124) from [<c0008fc4>] (mount_block_root+0x1d4/0x214)

 r3:00000001 r2:c6024000 r1:c6025f58 r0:c0370cc4

[<c0008df0>] (mount_block_root+0x0/0x214) from [<c00090c8>] (mount_root+0xc4/0xf

c)

[<c0009004>] (mount_root+0x0/0xfc) from [<c0009268>] (prepare_namespace+0x168/0x

1c0)

 r5:c0026808 r4:c03f2de0

[<c0009100>] (prepare_namespace+0x0/0x1c0) from [<c00087c8>] (kernel_init+0xdc/0

x110)

 r5:c0025518 r4:c03f2ba0

[<c00086ec>] (kernel_init+0x0/0x110) from [<c0043240>] (do_exit+0x0/0x654)

 r5:00000000 r4:00000000

刚刚接触这块不久,还请各位帮帮忙看看,指导指导。谢谢!

  • 1. 先看看nsf管用吗?

    2. 内核有没有开选项支持你要的这个文件系统类型?

    3. bootargs是否正确设置?

  • 谢谢你的回答!

    1、nfs

    我将内核下载到开发板中,通过nfs挂载到服务器上的根文件系统上,是可以正常工作的。

    2、我这次所使用的根文件系统是jffs2文件系统类型,内核已经开启对jffs2文件系统的支持,如下所示:

    3、因为我在TI的一个帮助网站上查阅到dm6467开发板flash的页大小和块大小:

    http://processors.wiki.ti.com/index.php/Writing_Kernel_Image_to_NAND_Flash

    页大小为:0x800   块大小为:0x20000

    所以我制作jffs2的命令如下所示:

     sudo mkfs.jffs2 -d rootfs -o jffs2.bin -s 0x800 -e 0x20000 -p 0xf00000 -n

    我的bootargs的设置如下所示:

    setenv bootargs 'noinitrd root=/dev/mtdblock3 rw  rootfstype=jffs2 init=/linuxrc console=ttyS0,115200,mem=40'

    这些设置我都是阅读了TI官方网站:http://processors.wiki.ti.com/index.php/Category:File_system。然后根据上面说的做的,可是当我将内核和根文件系统都烧写到开发板中时,却出现了所发贴子中的错误。还请Eason Wang指导指导。