在mini2440中,把编译好驱动加载到内核中编译好之后,在主菜单中使用k命令download linux kernel后,重新启动会出现以下错误:
No filesystem could mount root, tried: ext3 ext2 cramfs vfat msdos iso9660 romfs ernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
Backtrace:
[<c0118cc0>] (dump_backtrace+0x0/0x10c) from [<c045c768>] (dump_stack+0x18/0x1c)
r6:c38a9000 r5:ffffffea r4:c381df2c
...........
我上面只是写出一部分提示而已。
我出错原因是:没有对YAFFS的支持
解决方法如下所示:
- 获取yaffs源代码。可以登录yaffs的官方网站去下载,另外一种方式就是使用命名:git clone git://www.aleph1.co.uk/yaffs2
下载好之后就自己解压。 - 为内核打上yaffs2补丁。首先使用命令进入yaffs2的文件夹,然后使用命令:./patch-ker.sh c /opt/FriendlyARM/mini2440/linux-2.6.32.2 。最后到linux-2.6.32.2的一个叫做fs目录去检测,看是否有yaffs2的目录,如果有就说你打补丁成功,否则就是不成功,自己检测下是哪里出错。
- 配置和编译带YAFFS2 支持的内核。make menuconfig打开菜单,选择File Systems进入,再找到“Miscellaneous filesystems”菜单项,找到“YAFFS2 file system support”,并按空格选中它。退出保存
- 在linux-2.6.32.2目录先使用命令make zImage编译内核
- 成功后就使用下载进去,这样就可以解决问题