关于制作ramdisk

cooboos 2010-05-25 04:43:08
我现在做到了文件系统这一步,文件系统使用nfs时,kernel可以正常启动。但是将它做成ramdisk时(yaffs),无法启动,显示如下错误信息:
emac-mii: probed
List of all partitions:
No filesystem could mount root, tried: ext3 ext2 cramfs vfat msdos
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
我做的步骤是这样的:将nfs里面的文件用mkyaffsimage做成ramdisk,然后压缩,烧入flash

bootargs参数设置为
setenv bootargs 'mem=128M console=ttyS0,115200n8 root=/dev/ram0 rw init=/linuxrc initrd=0x80800000,8M'

然后启动就出现上面的问题。
在网上查了一下,好像在arch/arm/mach-xxxx/board-xxxx.c里面修改一下struct mtd_partition{}这个。但是我不知道怎么修改。是不是还要将做的rootfs烧写到mtdblockN?这个该怎么做?
...全文
283 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yixilee 2010-07-07
  • 打赏
  • 举报
回复
请问楼上的兄弟,是如何解决问题的?
cooboos 2010-05-28
  • 打赏
  • 举报
回复
恩 确实是8楼说的这样。我开始内核中没有对static struct mtd_partition={}做定义,结果就出现这个错误。
现在问题解决了。
过几天把整个过程总结一下,写个文章,有不对的地方还希望大家能多提建议
xiaobin80 2010-05-27
  • 打赏
  • 举报
回复
个人建议:

做文件系统的移植,首先要在内核中定义文件系统的结构,以使内核认到文件系统!


从你发的现象看,内核没有认到文件系统!
看一下yaffs声明,然后再看一下其他文件系统在内核中的定义,就可以解决!
cooboos 2010-05-26
  • 打赏
  • 举报
回复

[ 1.780000] at24 1-0050: 32768 byte 24c256 EEPROM (writable)
[ 2.810000] i2c_davinci i2c_davinci.1: timeout waiting for bus ready
[ 2.810000] i2c_davinci i2c_davinci.1: timeout waiting for bus ready
[ 3.850000] i2c_davinci i2c_davinci.1: timeout waiting for bus ready
[ 3.850000] i2c_davinci i2c_davinci.1: timeout waiting for bus ready
[ 3.880000] dm9000 Ethernet Driver, V1.31
[ 3.890000] mice: PS/2 mouse device common for all mice
[ 3.890000] i2c /dev entries driver
[ 3.900000] TCP cubic registered
[ 3.900000] NET: Registered protocol family 17
[ 3.910000] Clocks: disable unused emac
[ 3.910000] Clocks: disable unused usb
[ 3.910000] Clocks: disable unused timer1
[ 3.930000] davinci_emac_probe: using random MAC addr: 1a:1e:c1:eb:74:c1
[ 3.940000] emac-mii: probed
[ 3.940000] RAMDISK: Couldn't find valid RAM disk image starting at 0.
[ 3.960000] Root-NFS: No NFS server available, giving up.
[ 3.960000] VFS: Unable to mount root fs via NFS, trying floppy.
[ 3.970000] VFS: Cannot open root device "mtdblock4" or unknown-block(2,0)
[ 3.980000] Please append a correct "root=" boot option; here are the available partitions:
[ 3.990000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 4.000000] Backtrace:
[ 4.000000] [<c002d6f8>] (dump_backtrace+0x0/0x114) from [<c002dbfc>] (dump_stack+0x18/0x1c)
[ 4.010000] r6:c03139b0 r5:c0313520 r4:c7823f48
[ 4.010000] [<c002dbe4>] (dump_stack+0x0/0x1c) from [<c003c770>] (panic+0x60/0x148)
[ 4.020000] [<c003c710>] (panic+0x0/0x148) from [<c0008f9c>] (mount_block_root+0xfc/0x224)
[ 4.030000] r3:00000001 r2:20000013 r1:c7823f48 r0:c02be65c
[ 4.030000] [<c0008ea0>] (mount_block_root+0x0/0x224) from [<c0009190>] (mount_root+0xcc/0xf4)
[ 4.040000] [<c00090c4>] (mount_root+0x0/0xf4) from [<c0009304>] (prepare_namespace+0x14c/0x1cc)
[ 4.050000] r7:00000000 r6:c0022354 r5:c0023a08 r4:c0313520
[ 4.060000] [<c00091b8>] (prepare_namespace+0x0/0x1cc) from [<c0008818>] (kernel_init+0xfc/0x138)
[ 4.070000] r5:c00225e8 r4:c03132e0
[ 4.070000] [<c000871c>] (kernel_init+0x0/0x138) from [<

这是打印的信息 怎么解决啊 找不到思路了
现在认为是kernel里面出的问题,但是不知道该从哪去解决

请大家指导一下 谢谢
cooboos 2010-05-26
  • 打赏
  • 举报
回复
指定文件系统的位置? 是在kernel里面设置么 ?
是bootcmd的参数么?
set bootcmd 'nand read 0x80600000 0x280000 0x200000;nand read 0x80800000 0x500000 0x400000; bootm 0x80600000'
天亮后说晚安 2010-05-26
  • 打赏
  • 举报
回复
你指定了文件系统的位置吗》
cooboos 2010-05-26
  • 打赏
  • 举报
回复
加上ramdisk的支持模块了
是General setup --->
  • Initial RAM filesystem and RAM disk
  • (initramfs/initrd) support
    这一项

    这是啥问题啊 有点乱了
qihuanfengyun 2010-05-26
  • 打赏
  • 举报
回复
是不是你的内核没加ramdisk的支持模块啊!
hallowwar 2010-05-26
  • 打赏
  • 举报
回复
mtdblockN 的划分是规定的, 文件系统放到哪块应该在文件系统里面有所说明的吧。
howema 2010-05-25
  • 打赏
  • 举报
回复
复杂啊 学习 绑定

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧