我想知道当硬件连接到系统时如何创建设备节点。
我知道的信息:
当一个硬件连接到系统时,将设备名称与驱动程序名称进行比较,如果匹配,则调用probe。
我想知道的信息:
设备节点是在什么时候创建的,谁在创建它?(换句话说,我想知道 mknod 发生在哪里?)
这件事困扰了我好几个月。请以编程方式告诉我这是在哪里发生的。
我想知道当硬件连接到系统时如何创建设备节点。
当一个硬件连接到系统时,将设备名称与驱动程序名称进行比较,如果匹配,则调用probe。
设备节点是在什么时候创建的,谁在创建它?(换句话说,我想知道 mknod 发生在哪里?)
这件事困扰了我好几个月。请以编程方式告诉我这是在哪里发生的。
在大多数(但不是全部!)Linux 系统上,这由Udev处理。
它通过 netlink 套接字通知新硬件。然后它根据其配置创建设备节点。