base之sysvinit

1.启动错误信息

Freeing init memory: 92K
modprobe: FATAL: Could not load /lib/modules/2.6.30.1/modules.dep: No such file or directory
modprobe: FATAL: Could not load /lib/modules/2.6.30.1/modules.dep: No such file or directory
INIT: version 2.86 booting

 

跟踪分析结果:

sysvinit源码的init.c文件的init_main()有这么几行:

其中open函数的参数VT_MASTER定义为"/dev/tty0"。因此该函数在内核中的操作最终会导向对(4,0)设备的打开。

字符设备类节点的初始化代码如下:

def_chr_fops的定义如下:

chrdev_open的代码如下:

"static struct kobj_map *cdev_map"是字符类设备的注册表。

kobj_lookup的代码如下:

如果找不到(4,0)设备的注册项,则会取到字符类设备初始化时注册的缺省项,代码如下:

可见,最终会调用到request_module函数,其代码如下:

现在知道为什么会出现两行错误提示了吧,呵呵。。。我编译内核时没有选择支持VT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值