udevadm命令详解

时间:2024-10-30 09:34:02

udevadm 后接一个命令和命令指定选项。它控制了udev运行的行为,处理内核事件,控制事件队列,并且提供简单的调试机制。

选项:

--debug 打印错误信息

--version 打印版本信息

--help 帮助文档

udevadm info options     查询udev数据库中的设备信息。也可以从sysfs文件系统中查询到设备的属性以辅助创建udev规则。

--query=type     从数据库中查询指定类型的设备。需要--path和--name来指定设备。合法的查询文件是:设备名,链接,路径,属性

--path=devpath      设备的路径

--name=file       设备节点或者链接

--attribute-walk    打印指定设备的所有sysfs记录的属性,以用来udev规则匹配特殊的设备。该选项打印链上的所有设备信息,最大可能到sys目录。

--device-id-of-file=file 打印主/从设备号

--export-db       输出udev数据库中的内容

udevadm trigger [options]  接收内核发送来的设备事件。主要用于重放coldplug事件信息

(译者补充:内核在启动时已经检测到了系统的硬件设备,并把硬件设备信息通过sysfs内核虚拟文件系统导出。udev扫描sysfs文件系统,根据硬件设备信息生成热插拔(hotplug)事件,udev再读取这些事件,生成对应的硬件设备文件。由于没有实际的硬件插拔动作,所以这一过程被称为coldplug。)

--verbose     输出将要被触发的设备列表。

--dry-run      不真的触发事件

--type=type     触发一个特殊的设备。合法的类型:devices,subsystem,failed.默认是devices

--action=action  被触发的事件,默认是change

--subsystem-match=subsystem  触发匹配子系统的设备事件。这个选项可以被多次指定,并且支持shell模式匹配。

--attr-match=attribute=value     触发匹配sysfs属性的设备事件。如果属性值和属性一起指定,属性的值可以使用shell模式匹配。如果没有指定值,会重新确认现有属性。这个选项可以被多次指定。

--attr-nomatch=attribute=value   不要触发匹配属性的设备事件。如果可以使用模式匹配。也可以多次指定

--property-match=property=value 匹配属性吻合的设备。可以多次指定支持模式匹配

--tag-match=property       匹配标签吻合的设备。可以多次指定。

--sysname-match=name     匹配sys设备名相同的设备。可以多次指定支持模式匹配。

udevadm settle [options]  查看udev事件队列,如果所有事件全部处理完就退出。

--timeout=seconds     等待事件队列空的最大时间。默认是180秒。如果是0则立即退出。

--seq-start=seqnum     只等待到给定的顺序号。

--seq-end=seqnum    只等待到给定顺序号之前。

--exit-if-exists=file      如果文件存在就退出

--quiet    不输出任何信息

udevadm monitor [options]  监听内核事件和udev发送的events事件。打印事件发出的设备。可以通过比较内核或者udev事件的时间戳来分析事件时序。

--kernel  输出内核事件

--udev  输出udev规则执行时的udev事件

--property  输出事件的属性

--subsystem-match=string  通过子系统或者设备类型过滤事件。只有匹配了子系统值的udev设备事件通过。

--tag-match=string  通过属性过滤事件,只有匹配了标签的udev事件通过。

udevadm test [options] devpath  模拟一个udev事件,打印出debug信息。

参考文献:https://blog.****.net/yangzhongxuan/article/details/11113431