尝试找出可以在插入特定内核模块时自动创建设备节点的udev规则,并在删除内核模块时删除设备节点。
答案 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