udev 规则详解

udev 规则详解

udev 是 Linux 系统中用于管理设备文件的工具。udev 以守护进程的形式运行,通过监听内核发出来的 uevent 来管理/dev 目录下的设备文件。

udev 规则是用于告诉 udev 如何处理特定设备的配置文件。udev 规则由一系列键/值对组成,键/值对之间用逗号(,)分割。每一个键或者是用户匹配键,或者是一个赋值键。匹配键确定规则是否被应用,而赋值键表示分配某值给该键。这些值将影响 udev 创建的设备文件。

udev 规则语法

udev 规则的语法如下:

KEY1=VALUE1,KEY2=VALUE2,...

其中:

  • KEY:匹配键或赋值键。
  • VALUE:匹配值或赋值值。

匹配键

匹配键用于确定规则是否被应用于特定设备。常用的匹配键包括:

  • ACTION:事件(uevent)的行为,例如:add(添加设备)、remove(删除设备)。
  • KERNEL:内核设备名称,例如:sda,cdrom。
  • DEVPATH:设备的 devpath 路径。
  • SUBSYSTEM:设备的子系统名称,例如:sda 的系统为 block。
  • SYMLINK:为/dev/ 下的设备文件产生符号链接。
  • OWNER:设备文件的所有者。
  • GROUP:设备文件的所属组。
  • MODE:设备文件的权限。

赋值键

赋值键用于设置设备文件的属性。常用的赋值键包括:

  • NAME:在/dev 下产生的设备文件名。
  • SYMLINK:为/dev/ 下的设备文件产生符号链接。
  • OWNER:设备文件的所有者。
  • GROUP:设备文件的所属组。
  • MODE:设备文件的权限。

操作符

udev 规则支持以下操作符:

  • ==:匹配相等比较。
  • !=:匹配不等比较。
  • =:赋值。
  • +=:追加赋值。
  • :=:赋值并拒绝之后所有对该键的改动。

udev 命名规则

  • 文件名以数字开头,表示规则的优先级。数字越大,优先级越高。
  • 文件名以子系统名称开头,表示该规则仅适用于该子系统下的设备。
  • 文件名以设备类型开头,表示该规则仅适用于该类型的设备。

示例

  • 99-my-custom-rule.rules:这是一个自定义规则,优先级为 99。
  • block-my-custom-rule.rules:这是一个适用于块设备的自定义规则。
  • usb-my-custom-rule.rules:这是一个适用于 USB 设备的自定义规则。

udev 规则示例

SUBSYSTEM=="block", ACTION=="add", NAME="sd*"

该规则表示,对于所有添加的块设备,udev 将创建一个名为 sd*的设备文件。

SUBSYSTEM=="usb", ATTR{idVendor}=="0x1234", ATTR{idProduct}=="0x5678", MODE="0664", GROUP="users"

该规则表示,对于所有连接到系统的 USB 设备,如果其供应商 ID 为 0x1234 且产品 ID 为 0x5678,则 udev 将创建一个名为 usb-0x1234-0x5678 的设备文件,该文件的权限为 0664,所属组为 users。

// 50-bridge-network-interface.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="01:23:45:67:89:ab", NAME="eth0"

该规则表示,绑定指定网卡的 mac 地址。

udev 规则的应用

udev 规则可以用于各种目的,例如:

  • 为特定设备创建自定义设备文件。
  • 为特定设备设置权限。
  • 为特定设备加载内核模块。
  • 运行自定义脚本。

总结

udev 规则是 udev 用于管理设备文件的配置文件。udev 规则由一系列键/值对组成,键/值对之间用逗号(,)分割。每一个键或者是用户匹配键,或者是一个赋值键。匹配键确定规则是否被应用,而赋值键表示分配某值给该键。这些值将影响 udev 创建的设备文件。

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值