Linux kernel 可热插拔设备的sysfs条目

Linux kernel 可热插拔设备的sysfs条目,linux-kernel,linux-device-driver,udev,sysfs,hotplugging,Linux Kernel,Linux Device Driver,Udev,Sysfs,Hotplugging,我已经读到,驱动核心通过netlink将uevents从sysfs发送到udev或一些正在侦听它的守护进程,然后在udev识别并加载相应的驱动程序之后。但是如何创建与热插拔设备相对应的sysfs条目呢 提前感谢您的回复。驱动程序在初始化sysfs条目时,使用已获取的或硬编码要使用的主/次编号创建sysfs条目。每个设备文件夹中的文件“uevent”允许守护进程通过netlink套接字发送事件 将“add”值写入“uevent”文件将导致生成所有add事件,因此您可以使用udev或任何正在运行的守

我已经读到,驱动核心通过netlink将uevents从sysfs发送到udev或一些正在侦听它的守护进程,然后在udev识别并加载相应的驱动程序之后。但是如何创建与热插拔设备相对应的sysfs条目呢


提前感谢您的回复。

驱动程序在初始化sysfs条目时,使用已获取的或硬编码要使用的主/次编号创建sysfs条目。每个设备文件夹中的文件“uevent”允许守护进程通过netlink套接字发送事件

将“add”值写入“uevent”文件将导致生成所有add事件,因此您可以使用udev或任何正在运行的守护程序(具有适当权限)创建/dev条目


查看这个挂起的文件,看看它是如何工作的。

谢谢您的回复。但是,当设备处于热插拔状态时,它是如何创建sysfs条目的呢?。我的理解是,仅从这个sysfs条目中,udev使用uvents理解并加载相应的驱动程序。然后正如您所说的,驱动程序创建它们的条目。我的理解正确吗?这是一点设备、驱动程序和硬件相关的逻辑。如果以SD卡为例,传统上GPIO用作驱动程序中的卡检测中断。一旦中断被触发,它将导致驱动程序创建sysfs条目,并发送udev或其他等效守护进程捕获的任何必要事件,以创建最终结果/dev文件。因此,每个“热插拔”硬件都必须具有类似的功能,以便向驱动程序报告它们的插入/提取。因此,您可以说,没有相应的驱动程序支持,设备无法创建sysfs条目,或者如果设备的相应驱动程序不存在,则设备将不会有sysfs条目?这是正确的。如果没有驱动程序,设备就不能执行任何操作,因为系统和任何希望使用该设备的应用程序甚至不知道它在那里,也无法与它对话。Linux内核不会自动创建sysfs条目,这是驱动程序的责任。感谢您的回复。“uvent是从为设备创建的sysfs条目创建的”,udev稍后将对其进行解析,以使用device的MODALIAS识别特定设备的驱动程序。因此,这意味着从sysfs for Device获取uevents后,驱动程序将被识别并加载。那怎么可能呢?