Linux 中 udevadm 命令的基础知识和示例

udevadm 命令 是 Linux 中的一个设备管理工具,用于管理所有设备事件并控制 udevd 守护进程。 开发者 规则是用 .rules 文件定义的 /usr/lib/udev/rules.d

在本文中,我们将了解 乌德瓦姆 在 Linux 中借助示例。

udevadm 命令的语法

的语法 udevadm 命令:

udevadm [--debug] [--version] [--help]  udevadm info options udevadm trigger [options] udevadm settle [options] udevadm control command udevadm monitor [options] udevadm test [options] devpath 

如何使用 udevadm 命令监控设备?

udevadm 从设备插入系统的那一刻起一直监控设备,直到它从系统中拔出。

监视设备所有事件的语法:

udevadm monitor 
执行 udevadm 命令

在上图中,您可以看到 udevadm 工具正在监控与设备相关的所有事件。 现在,如果我们插入一个设备,您可以看到它在您的终端会话中输出这些事件。

安装光驱时发生事件 VirtualBox

如何使用 udevadm 列出设备的所有属性?

udevadm info 命令用于列出所有设备属性。

列出设备所有设备属性的语法 sr0

udevadm info -a -p /block/sr0 

-一种 选项用于打印所有 sysfs 属性,以及 -p 选项用于定义开发路径。

使用 Udevadm 命令的所有设备属性 1使用 udevadm 命令获取所有设备属性

使用 udevadm 编写 udev 规则并应用它们而无需重新启动

首先,我们需要找到 ENV{PRODUCT} 通过执行:

udevadm monitor --kernel --property --subsystem-match=usb 

,然后连接您的设备。

寻找环境寻找 环境{产品} 使用 乌德瓦姆 命令

现在让我们写一个新的 udev 统治 /usr/lib/udev/rules.d91-keyboard.rulesecho 使用文本编辑器连接键盘时在终端中。

sudo nano /usr/lib/udev/rules.d/91-keyboard.rules 

然后添加以下代码来回显消息:

ACTION=="add", SUBSYSTEM=="usb", ENV{PRODUCT}=="1a2c/4c5e/110", RUN+="/bin/sh /home/suryansh/keyboard.sh" 

然后,添加 sh 使用您喜欢的文本编辑器在上述位置编写脚本:

echo "Keyboard connected!" > /home/suryansh/keyboard.log 

授予执行权限 chmod 命令:

sudo chmod +x /home/suryansh/keyboard.sh 

的语法 udevadm control 应用更改。:

sudo udevadm control --reload 

udevadm control 用于修改规则 udevd 守护进程。

每当您连接该设备时,它都会运行 sh keyboard.sh 和写 keyboard.log 在同一个目录中。

因此,当您使用 cat 命令时:

cat keyboard.log 

您应该看到以下输出:

[email protected]:~$ cat keyboard.log Keyboard connected! 

如何使用 udevadm 测试 udev 规则?

udevadm test 命令用于测试终端中的 udev 规则。

测试设备的 udev 规则的语法:

udevadm test $(udevadm info -q path -n <device>) 
使用 Udevadm 测试 Udev 规则使用 udevadm 测试 udev 规则

结论

udevadm 是一个非常方便的管理工具 udev rules 在 Linux 中,它在所有 Linux 发行版中都可用。 您可以找到更深入的概述 udevadm 命令在这里。

感谢您的阅读!