免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2304 | 回复: 5
打印 上一主题 下一主题

关于内核启动参数的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-04 17:06 |只看该作者 |倒序浏览
  我在内核编译前已经对nand进行了分区,那为什么在我的内核结构目录里面没有/dev,就更别说/dev/mtdblk0了,想这个问题是因为在uboot传递给内核的参数中间有一条root=/dev/mtdblk0,这应该是说的告诉内核启动时使用mtdblk0作为存放根文件系统的地方吧,也就是我之前编译内核时所谓的对nand的分区中的一部分吧。但是内核中没有这个/dev啊,那他是存在于我的根文件系统里面的对吧,那/dev/mtdblk0在根文件系统里,是根文件系统的一部分,那什么又叫将dev/mtdblk0作为存放根文件系统的位置,这不成了先有鸡还是现有蛋的问题吗??
望高人解答,很是迷惑
其实对于root=/dev/ram0也有类似的疑惑

论坛徽章:
0
2 [报告]
发表于 2008-08-04 17:14 |只看该作者
你定制内核的时候有没有加进去?

论坛徽章:
0
3 [报告]
发表于 2008-08-04 17:45 |只看该作者
原帖由 wavezone 于 2008-8-4 17:06 发表
  我在内核编译前已经对nand进行了分区,那为什么在我的内核结构目录里面没有/dev,就更别说/dev/mtdblk0了,想这个问题是因为在uboot传递给内核的参数中间有一条root=/dev/mtdblk0,这应该是说的告诉内核启动时 ...

楼主的表达有点凌乱,我好不容易看懂了
急着下班,有人要灭蚊,以后再整理一下

论坛徽章:
0
4 [报告]
发表于 2008-08-04 22:00 |只看该作者

回复 #1 wavezone 的帖子

我的理解:
首先VFS的根目录/是内核创建的。属于rootfs文件系统。
所谓的加载根目录是加载init进程的根目录。由于其他所有的进程都是init进程的子进程。所以继承了这个根目录。
其次,内核在启动时根据参数指定的root=/dev/mtdblock0加载根文件系统时,VFS并没有/dev/mtdblock0这个文件。内核是通过解释设备文件名得到主设次备号从而调用相应的驱动程序从设备中加载文件系统。
。。。。。。

评分

参与人数 1可用积分 +15 收起 理由
bitmilong + 15 鼓勵回貼

查看全部评分

论坛徽章:
0
5 [报告]
发表于 2008-08-05 09:16 |只看该作者
4楼的高人,最后一句话不是很理解,既然此时根目录下/ 没有/dev/mtdblock0,上哪找去,这个加载的过程我觉得网上以及书上一直说的很模糊,而且如果做成mtd设备,那我到底是选root=/dev/mtdblock0,1,2中的哪个??

[ 本帖最后由 wavezone 于 2008-8-5 09:31 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-08-06 14:21 |只看该作者

回复 #1 wavezone 的帖子

内核跟根文件系统到底是怎么连接以及启动的,我看uboot的参数,好像是分别把两部分扔到内存的两部分,然后bootm从内核在内存中的位置开始,然后传递给内核以上信息bootargs=men=64M console=ttyS0,115200 initrd=0x21100000,32M root=/dev/mtdblock3   rw  规定完内存大小以及控制终端后的这两句话是什么意思,希望有人能回答我,从字面上我知道意思,可是一直想不通。我觉得这是论坛上很多问题的根本原因所在,根文件系统到底怎么加载进内核的。
给个解释或者链接都可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP