免费注册 查看新帖 |

Chinaunix

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

关于udev的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-05 11:51 |只看该作者 |倒序浏览
从新编辑一下我的问题,更能突出我的疑问所在:

Fedora系统是使用udevstart这个tool来创建系统中设备的设备文件,并且能加载对应设备的模块.

通过strace udevstart,大概能发现udev是通过遍历/sys来获得当前的设备的.
我的疑问就是:
1.其中有个步骤是对uevent文件写入"add",不知道这个步骤的作用是什么?
2.udev是通过uevent的存在与否来判断当前是否有这个设备的吗?
3.如果udev知道有这个设备了,其又是根据什么知道设备对应的模块是什么?(和/etc/modprobe*有什么关系吗)
4.如果知道了设备对应的模块,又是谁来呼叫加载模块的函数呢?似乎从starce udevstart中寻找不到调用modprobe类似的步骤?

/*---------------------------------------------*/
/*以下是一开始的问题,似乎没有什么回复,可能是自己提问的方式有点不好....*/

我有一个关于udev的疑惑: 1) udev被调用时候设备文件创建,设备模块加载两者的顺序 2) 其相对于的配置档为何以及读取顺序的问题.

    具体说吧,比如在调用/sbin/start_udev后,其最终将调用/sbin/udevstart来创建设备文件.对于设备驱动已经加载到内存的设备其设备文件的创建应该是通过读取sysfs中的内容然后根据udev rules来创建这我能理解.

    问题是:如果设备的驱动是模块的,而且这个时候并没有被加载,那么udevstart又是根据一个什么样的流程,通过哪行配置文档来加载驱动并且生设备文件的呢?
   
    我在机器上试验的时候发现 /etc/modprob.conf /etc/modprob.d/modprobe.conf.dist /etc/udev/rule.d/*这几个配置文档好像都和udevstart关联.

    我最为疑惑的就是: 如果驱动没有加载,是否就应该没有hotplug event? 那么内核根据什么去加载这些设备的模块呢? 请大侠们指教指教...

    如果觉得我的问题比较肤浅.也可以指点几分资料我好再去研究研究!谢谢!

[ 本帖最后由 lilianglinux 于 2007-9-10 14:55 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-09-06 09:42 |只看该作者
自己顶顶!
?为什么没有回复?难道发错板块拉?

论坛徽章:
0
3 [报告]
发表于 2007-09-10 14:56 |只看该作者

回复 #2 lilianglinux 的帖子

编辑了一下问题,应该能清楚表达自己的疑问了,希望能收到大家的回复

论坛徽章:
0
4 [报告]
发表于 2007-09-12 10:41 |只看该作者
1.udevstart其中有个步骤是对uevent文件写入"add",不知道这个步骤的作用是什么?

udevstart的作用是在系统刚启动时运行udevd,然后为已经存在的设备生成对应的设备文件.新版的实现方法是向/sys目录下相应的uevent文件写入"add",模拟hotplug.

2.udev是通过uevent的存在与否来判断当前是否有这个设备的吗?

不是.新版的udevd通过监听NETLINK_KOBJECT_UEVENT socket, 从kernel获取设备信息.

3.如果udev知道有这个设备了,其又是根据什么知道设备对应的模块是什么?(和/etc/modprobe*有什么关系吗)
4.如果知道了设备对应的模块,又是谁来呼叫加载模块的函数呢?似乎从starce udevstart中寻找不到调用modprobe类似的步骤?

设备hotplug进系统时,kernel通过NETLINK_KOBJECT_UEVENT通知该信息.udevd获取后,根据rules,获取对应的模块,然后通过/sbin/modprobe载入.模块完成初始化时,udevd又会获取相应的信息,从而根据rules创建设备文件.当然,kernel也可能会直接调用/proc/sys/kernel/modprobe中指定的程序载入模块(kernel知道具体的模块).
另外,设备hotplug进系统时,kernel会调用/proc/sys/kernel/hotplug在指定的程序.因为新版的udevd已经接替了该工作,此文件内容一般被置为空.

现在用的是ubuntu,所以可能有误.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP