首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

问大家一个题:kernel commond line 的root=/dev/设备名,这个设备名对文件系统是固定好的吗

2012-05-09 
问大家一个弱弱的问题:kernel commond line 的root/dev/设备名,这个设备名对文件系统是固定好的吗?如题:k

问大家一个弱弱的问题:kernel commond line 的root=/dev/设备名,这个设备名对文件系统是固定好的吗?
如题:

kernel commond line 的root=/dev/设备名,这个设备名对文件系统是固定好的吗?

比如jffs2文件系统我用的是root=/dev/mtdblock4

其它 系统呢,比如yaffs ext2等?

这个东西的原理是什么呢?

[解决办法]
不是的,是内核里德分区,如果你的yaffs是在mtdblock4,就写这个,具体要看struct mtd_partition这个结构体的定义
[解决办法]
root是指定存放根文件系统的块设备分区,可以是flash分区、sd卡分区,nfs等等,总之只要该分区存放了根文件系统就可以引导系统,同时要指定该分区类型。
[解决办法]

在kernel的arch/arm/mach-s3c2410目录里查看 mtd_partition

例如arch/arm/mach-s3c2410/mach-qt2410.c里

 

C/C++ code
static struct mtd_partition qt2410_nand_part[] = {         [0] = {                 .name   = "U-Boot",                 .size   = 0x30000,                 .offset = 0,         },         [1] = {                 .name   = "U-Boot environment",                 .offset = 0x30000,                 .size   = 0x4000,         },         [2] = {                 .name   = "kernel",                 .offset = 0x34000,                 .size   = SZ_2M,         },         [3] = {                 .name   = "initrd",                 .offset = 0x234000,                 .size   = SZ_4M,         },         [4] = {                 .name   = "jffs2",                 .offset = 0x634000,                 .size   = 0x39cc000,         }, };
[解决办法]
首先参考#5楼woshi_ziyu的解释
至于你说“我的文件系统/dev下根本就没有mtdblock这样的设备”,那是因为root=/dev/xxx这个启动参数中,/dev只是一个约定前缀,它并不代表实际的文件系统中的/dev目录。关于这点,你可以man boot看下。

热点排行