据我所知,内核检测硬件,将信息添加到 sysfs 在 /dev 中创建一个设备,然后生成一个 udev 事件。我的问题是,设备驱动程序是做所有这些还是内核本身?如果驱动程序这样做,那么他们将知道设备主要和次要编号以在 devtmps 中创建文件。
我也明白(可能是错误的)是 udev 调用 modprobe 来加载处理设备的驱动程序。
有人告诉我,他们使用 MODALIAS uevent 环境变量的内容来执行此操作,从而加载别名与此字符串匹配的所有模块(正确的驱动程序)。简而言之:linux中硬件检测的步骤是什么,谁执行每一步:内核本身,内核内部的驱动程序或用户空间中的udev。谢谢。