udev

来自百合仙子's Wiki
跳转到导航 跳转到搜索

编写规则

在网络设备接入时配置 IP 地址

获取设备信息:

udevadm info --attribute-walk /sys/class/net/usb0

匹配设备并执行命令。命令一定要使用绝对路径

ACTION=="add", SUBSYSTEM=="net", ATTRS{serial}=="XXX", RUN+="/bin/sh -c 'ip a add 192.168.42.1/24 dev %k; sysctl net.ipv6.conf.%k.accept_ra_defrtr=0; ip l set %k up'"

给当前用户设备文件的权限:

SUBSYSTEM=="input", ATTRS{name}=="WH-1000XM2 (AVRCP)", TAG+="uaccess"

测试:

udevadm test /sys/class/net/usb0

重新加载规则并应用:

sudo udevadm control --reload-rules
sudo udevadm trigger

使用 hwdb 修改键位

通过位于 /etc/udev/hwdb.d 下的 .hwdb 文件来配置硬件数据库,从而更改扫描码(scancode)到键码(keycode)的映射。[1]

笔记本内建键盘:

evdev:atkbd:dmi:*
 KEYBOARD_KEY_01=capslock   # esc
 KEYBOARD_KEY_3a=esc        # capslock
 KEYBOARD_KEY_b7=rightmeta  # prtsc
 KEYBOARD_KEY_c5=print      # pause (Fn+P)

指定设备 ID 的 USB 键盘(设备 ID 在 v 和 p 后,分别是 vendor id 和 product id):

evdev:input:b*v0483p5100e*-*
 KEYBOARD_KEY_70029=capslock   # esc
 KEYBOARD_KEY_70039=esc        # capslock

其中,KEYBOARD_KEY_ 后的数为 scancode 的十六进制,可由 evtest 程序取得。注意每一段设备匹配之间需要使用空行隔开。

设置好之后使用 systemd-hwdb update 命令更新,使用 udevadm trigger 来重新加载。

外部链接

参考资料