- 论坛徽章:
- 0
|
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,所以可能有误. |
|