Hi all,
I had booted up Linux with nfs root, and write a JFFS2 image to /dev/mtd1.
Here is my cmdline for Kernel:
go 0x80305018 root=/dev/nfs rw nfsroot=172.19.26.145:/nfs/rootfs
ip=172.19.27.193::172.19.27.254:255.255.254.0:::
mtdparts=maltaflash:1536k(ldr),2048k(root)
After writing the JFFS2 image to /dev/mtd1, I can mount /dev/mtdblcok1 to
some directory.
mount -t jffs2 /dev/mtdblock1 /mnt
Next, I hope to boot up Linux with JFFS2 root, and try to give this cmdline
to Kernel:
go 0x80305018 rootfstype=jffs2
mtdparts=maltaflash:1536k(ldr),2048k(root) root=/dev/mtdblock1
and the Kernel would complain me about no root:
VFS: Unable to mount root fs via NFS, trying floppy.
Kernel panic: VFS: Unable to mount root fs on unknown-block(2,0)
I traced the code and found that when passing "/dev/mtdblock1" to
name_to_dev_t() in do_mounts.c, it would return 0 at every try_name(), which
will fail at open() with the path "/sys/block/%s/dev".
What's the problem? Could anyone tell me?
Thanks and regards,
Colin
> I traced the code and found that when passing "/dev/mtdblock1" to
> name_to_dev_t() in do_mounts.c, it would return 0 at every try_name(), which
> will fail at open() with the path "/sys/block/%s/dev".
>
> What's the problem? Could anyone tell me?
If I remember correctly you need to pass the root in as the major and
minor numbers for jffs2 on 2.6. For example my 2.6 command line is
root=31:03 rootfstype=jffs2 ro console=ttyS0,115200
rather that root=/dev/mtdblock3.
I can't remember why this is the case though.
Ian.
--
Ian Campbell, Senior Design Engineer
Web: http://www.arcom.com
Arcom, Clifton Road, Direct: +44 (0)1223 403 465
Cambridge CB1 7EA, United Kingdom Phone: +44 (0)1223 411 200