udev规则:从在/proc/devices中列出的字符设备创建设备节点

4
我有一个PCI设备,我已经能够为其配置一个DKMS模块。内核模块已加载,我在/proc/devices中看到了该设备。
驱动程序有一个load_driver.sh脚本,使用mknod创建设备节点。我想创建一个udev规则,以便在加载驱动程序时自动创建此节点。我该如何做?

建议你使用Linux框架之一,而不是使用udev。例如,如果想玩弄简单字符设备,请尝试探索“misc device”框架。它会自动为你创建设备节点,并设置适当的权限。与udev相比的优点是代码在各个系统中可移植。 - raghav3276
问题在于我无法修改驱动程序代码,因为它是来自第三方的专有代码,并且杂项设备框架要求该模块标记为GPL。 - bofjas
1个回答

0
老实说,我不知道,但我查看了自己的系统。
检查我的udev规则,我发现VirtualBox似乎是使用这个udev规则来完成的:
SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"

在您的情况下,子系统可能是“模块”。您需要找到一种识别特定模块的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接