udev 是 Linux 系统中的设备管理器,负责管理设备节点的动态创建和删除。它是 Linux 内核设备管理子系统的一部分,提供了一种 用户空间 的机制来 响应硬件事件

功能

  • 设备节点管理: 自动创建和删除 /dev 目录中的设备节点。
  • 硬件事件处理: 监听内核发出的 uevent,并根据规则执行相应操作。
  • 设备属性配置: 可以通过规则文件为设备设置权限、名称和符号链接等属性。
  • 持久化命名: 通过识别唯一的设备标识符(如序列号)为设备提供一致的命名。

原理

  1. 内核事件: 当设备插入或移除时,内核会生成一个 uevent。
  2. udevd 守护进程: udevd 监听这些事件并根据配置的规则文件进行处理。
  3. 规则匹配: udev 使用规则文件(通常位于 /etc/udev/rules.d/ )来决定如何处理每个事件。
  4. 执行操作: 根据匹配的规则,udev 可以创建设备节点、设置权限、创建符号链接,甚至触发脚本。

命令

udevadm 是管理 udev 的命令行工具,可以用于控制 udev 守护进程、管理设备事件队列、测试和调试 udev 规则等。

  • udevadm info: 显示设备信息。
  • udevadm trigger: 触发 udev 事件。
  • udevadm control: 控制 udev 守护进程。