【发布时间】:2010-05-05 08:53:10
【问题描述】:
我正在移植一个 linux 内核模块。它曾经为自己创建一个设备文件(使用来自内核空间的系统调用的脏黑客),但现在我想在 udev 中执行此操作。在哪里可以找到有关在内核模块中支持 udev 的文档?
请注意,模块本身不是设备驱动程序。它用作一组驱动程序的多路复用器。因此注册设备的默认方式(即 pci 设备)不适合我的任务。
【问题讨论】:
标签: linux-kernel udev
我正在移植一个 linux 内核模块。它曾经为自己创建一个设备文件(使用来自内核空间的系统调用的脏黑客),但现在我想在 udev 中执行此操作。在哪里可以找到有关在内核模块中支持 udev 的文档?
请注意,模块本身不是设备驱动程序。它用作一组驱动程序的多路复用器。因此注册设备的默认方式(即 pci 设备)不适合我的任务。
【问题讨论】:
标签: linux-kernel udev
device_create 函数允许我在“虚拟”总线中注册设备,并在 sysfs 中自动发布我的字符设备的主要和次要编号。
【讨论】:
您的意思是您的模块枚举设备,然后每个设备都需要加载驱动程序?
如果是这样,您的模块最好表示为总线驱动程序。请参阅 Documentation/driver-model/* 中的 bus_register() 信息,尤其是 bus.txt。您可以查看其他内核代码(PCI、USB、ACPI)以获取使用示例。
通过使用驱动程序模型 API,它应该自动处理通过 udev 公开您的总线驱动程序和所有连接的设备。
【讨论】: