当插入一个硬件时,udev框架会决定如何处理它。典型的操作是在 下创建设备节点/dev,但您可以运行任何 shell 命令。
首先,您需要弄清楚如何识别您的设备。连接键盘并运行udevadm info -a -n /dev/input/event9,其中最后一个参数是/dev/与您的设备对应的设备文件的路径。您可以省略/dev/前缀。您可以使用 syspath(位于 下的路径/sys)代替设备节点名称,将其替换-n …为-p class/input/event9。在所有情况下,替换input/event9为适合您设备的路径。这将打印设备的各种特征。收集表格中的一行或多行SETTING=="VALUE",足以唯一地识别您的设备。
在/etc/udev/rules.d调用下创建一个文件vemv-keyboard.rules或类似的文件。在此文件中添加一行,其中包含要匹配的设置和要运行的操作。注意使用正确的运算符:==用于匹配=属性、设置属性以及+=指定其他操作。就像是:
# Run a program when my wireless keyboard is connected
SUBSYSTEMS=="input", ATTRS{vendor}=="Yoyodene", ATTRS{model}=="Bluetooth keyboard 9000", RUN+="/path/to/script $root/$name"
Run Code Online (Sandbox Code Playgroud)
该程序将在您下次插入设备时运行(添加文件对已连接的设备没有影响)。您可以通过运行来检查您的规则是否具有预期的效果udevadm test class/input/event9(其中参数是上面的 syspath)。如果要手动应用规则,请运行udevadm trigger --sysname=class/input/event9。
看来跑步udevadm monitor是解决我的问题的良好基础。可以让守护进程解析其输出、过滤所需的条目并对这些事件做出反应。
| 归档时间: |
|
| 查看次数: |
2506 次 |
| 最近记录: |