【问题标题】:using udev rules create and remove device node on a kernel module load and unload使用 udev 规则在内核模块加载和卸载上创建和删除设备节点
【发布时间】:2016-11-18 19:33:24
【问题描述】:

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

【问题讨论】:

标签: linux kernel-module udev


【解决方案1】:

你必须了解 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 中的其他文件,并通过完善您个人规则的条件来构建您自己的脚本。

【讨论】:

  • 感谢您的评论,是的,我已经了解 udev 和 udev 规则的基础知识,但主要对解决特定场景感兴趣。并在深入研究后找到了解决方案。
【解决方案2】:

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

在 ACTION=="add" 时创建设备节点,在 ACTION=="remove" 时删除设备节点。

 # 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"

脚本“amdtPwrProf_mknod.sh”的内容是,

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

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 2014-02-15
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多