udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。

# udevadm -help
udevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS]

Send control commands or test the device manager.

Commands:
info Query sysfs or the udev database
trigger Request events from the kernel
settle Wait for pending udev events
control Control the udev daemon
monitor Listen to kernel and udev events
test Test an event run
test-builtin Test a built-in command

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

选项:
--debug 打印错误信息
--version 打印版本信息
--help 帮助文档

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

# udevadm info -help

--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)。

# udevadm trigger -help

--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事件队列,如果所有事件全部处理完就退出。

# udevadm settle -help

--timeout=seconds     等待事件队列空的最大时间。默认是180秒。如果是0则立即退出。
--seq-start=seqnum    只等待到给定的顺序号。
--seq-end=seqnum    只等待到给定顺序号之前。
--exit-if-exists=file     如果文件存在就退出
--quiet    不输出任何信息

udevadm control [options] 控制udev的守护进程。

# udevadm control -help

-e --exit 指示守护进程清理并退出
-l --log-priority=LEVEL 设置守护进程的udev日志级别
-s --stop-exec-queue 不执行事件,仅在队列中执行
-S --start-exec-queue 执行事件,刷新队列
-R --reload 重新加载规则和数据库
-p --property=KEY=VALUE 为所有事件设置一个全局属性
-m --children-max=N 最大子节点数
--timeout=SECONDS 阻塞应答的最大时间

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

# udevadm monitor -help

--kernel  输出内核事件
--udev  输出udev规则执行时的udev事件
--property  输出事件的属性
--subsystem-match=string  通过子系统或者设备类型过滤事件。只有匹配了子系统值的udev设备事件通过。
--tag-match=string  通过属性过滤事件,只有匹配了标签的udev事件通过.

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

参考资料:​ steven_yzx的博客-udevadm man翻译​

>>>如果文章对你有所帮助,欢迎关注点赞收藏、评论,谢谢!<<<