如何在内核模块中支持udev?

时间:2010-05-05 08:53:10

标签: linux-kernel udev

我正在移植一个Linux内核模块。它曾经为自己创建一个设备文件(使用来自内核空间的系统调用的脏黑客),但现在我想在udev中这样做。我在哪里可以找到有关在内核模块中支持udev的文档?

请注意,模块本身不是设备驱动程序。它充当一组驱动程序的多路复用器。因此,注册设备(即pci)的默认方式不适合我的任务。

2 个答案:

答案 0 :(得分:2)

device_create函数允许我在“虚拟”总线中注册设备,并自动在sysfs中为我的角色设备发布主要和次要号码。

答案 1 :(得分:1)

您的意思是您的模块枚举设备,然后每个设备都需要加载驱动程序吗?

如果是这样,您的模块最好表示为总线驱动程序。请参阅Documentation / driver-model / *中的bus_register()信息,尤其是bus.txt。您可以查看其他内核代码(PCI,USB,ACPI)以获取用法示例。

通过使用驱动程序模型API,它应该自动处理通过udev公开您的总线驱动程序和所有连接的设备。