使用udev规则在内核模块上创建和删除设备节点加载和卸载

时间:2016-11-18 09:21:34

标签: linux kernel-module udev

尝试找出可以在插入特定内核模块时自动创建设备节点的udev规则,并在删除内核模块时删除设备节点。

2 个答案:

答案 0 :(得分:0)

您必须了解udev的工作方式

尝试添加脚本:

cat >/path/to/myscript  <<"eof"
#!/bin/sh

newfile=`mktemp /tmp/udev-test-XXXXXXXXXX`
echo "$0 -- $@" >$newfile
set >>$newfile
eof
chmod +x /path/to/myscript

然后(作为根)

echo >/etc/udev/rules.d/99-myscript.rules 'RUN+="/path/to/myscript"'

service udev restart

然后尝试添加/删除设备并查看/tmp/udev-test-*

...阅读man udev,查看/etc/udev/rules.d中的其他文件,并根据个人规则的细分来构建自己的脚本。

答案 1 :(得分:0)

详细探讨了udev规则,在udevadm工具的帮助下,我能够推导出以下udev规则,我的内核模块名称是&#34; amdtPwrProf&#34;。

在行动==&#34;添加&#34;创建设备节点并在ACTION ==&#34;删除&#34;该设备节点已被删除。

 # Create the device file when the module is inserted.

 SUBSYSTEM=="module", ACTION=="add", KERNEL=="amdtPwrProf", RUN+="/opt/codexl/amdtPwrProf_mknod.sh"


 # Remove the device file when the module is removed.

 SUBSYSTEM=="module", ACTION=="remove", KERNEL=="amdtPwrProf", RUN+="/bin/rm /dev/amdtPwrProf"

脚本的内容&#34; amdtPwrProf_mknod.sh&#34;是,

mknod /dev/amdtPwrProf -m 666 c `cat /proc/amdtPwrProf/device` 0