Chinaunix
标题:
关于lilo向内核传递参数的问题, 请问为什么 /dev/hda1 变成了 301 ? 谢谢.
[打印本页]
作者:
dbhua
时间:
2011-09-20 12:38
标题:
关于lilo向内核传递参数的问题, 请问为什么 /dev/hda1 变成了 301 ? 谢谢.
各位DX,
我在学习initramfs的编写, 遇到如下的问题:
init需要知道 lilo传过来的 root 分区是什么, 然后去 mount 到 newroot. 一般是 cat /proc/cmdline,
里面应会有 root=/dev/hda1 之类的内容. 但是, 我在调试时, 发现即使在lilo配置成
....
root = /dev/hda1
...
在init进行 cat /proc/cmdline 操作的输出也会变成:
... root = 301 ...
请各位给个提示, 可能错在什么地方?
谢谢各位.
作者:
fei1700
时间:
2011-09-20 12:47
root= 有传设备号的做法,比如
16进制的方式: root=1f02, 就相当于root=/dev/mtdblock2, 0x1f就是31,mtdblock的major,02是minor
10进制的方式:root=31:2,这样比较容易看出来
root=301, 就是3是major,1是minor,
#define IDE0_MAJOR 3
hda是不是就是IDE的?是的话,就没错吧
作者:
dbhua
时间:
2011-09-20 12:59
谢谢你的回复. 如果我想不让它变成设备号(301),而是直接将名字(/dev/hda1)传到内核的 /proc/cmdline, 需要如何设置呢?
我看了lilo的 开发和用户文档, 也找不到具体的说法.
谢谢.
作者:
dbhua
时间:
2011-09-21 16:57
本帖最后由 dbhua 于 2011-09-22 11:06 编辑
总算明白了, lilo就是这样传的. 根据major minor 直接建立一个新设备就可以了. 谢谢各位.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2