Debian 10 udev 规则与蓝牙键盘连接事件不匹配

Debian 10 udev 规则与蓝牙键盘连接事件不匹配

我正在尝试通过规则检测蓝牙键盘何时连接udev。我在 Debian Buster 上。

$ udevadm --version

241
$ cat /lib/udev/rules.d/98-bt-rules

SUBSYSTEM=="input", ACTION=="add", ENV{UNIQ}="34:88:5d:c8:51:50", RUN+="/usr/bin/wall test"

ATTR{uniq}//ATTRS{uniq}ATTR{UNIQ}不起作用。

udevadm monitor以下是我打开键盘并连接时的日志:

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing

UDEV  [53071.875294] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256 (bluetooth)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256
SUBSYSTEM=bluetooth
DEVTYPE=link
SEQNUM=11330
USEC_INITIALIZED=53071874990
SYSTEMD_ALIAS=/sys/subsystem/bluetooth/devices/hci0:256
SYSTEMD_WANTS=bluetooth.target
TAGS=:systemd:

UDEV  [53072.058271] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B (hid)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B
SUBSYSTEM=hid
HID_ID=0005:0000046D:0000B342
HID_NAME=Keyboard K380
HID_PHYS=cc:f9:e4:9e:e5:52
HID_UNIQ=34:88:5d:c8:51:50
MODALIAS=hid:b0005g0001v0000046Dp0000B342
SEQNUM=11331
USEC_INITIALIZED=53072057996
DRIVER=hid-generic

UDEV  [53072.062746] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179
SUBSYSTEM=input
PRODUCT=5/46d/b342/4201
NAME="Keyboard K380 Keyboard"
PHYS="cc:f9:e4:9e:e5:52"
UNIQ="34:88:5d:c8:51:50"
PROP=0
EV=120013
KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
MSC=10
LED=1f
MODALIAS=input:b0005v046DpB342e4201-e0,1,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,F0,ram4,l0,1,2,3,4,sfw
SEQNUM=11334
USEC_INITIALIZED=53072062339
ID_INPUT=1
ID_INPUT_KEY=1
ID_INPUT_KEYBOARD=1
ID_BUS=bluetooth
ID_PATH=pci-0000:00:14.0-usb-0:10:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_10_1_0
ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_10_1_0
TAGS=:seat:

UDEV  [53072.063389] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input180 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input180
SUBSYSTEM=input
PRODUCT=5/46d/b342/4201
NAME="Keyboard K380 Consumer Control"
PHYS="cc:f9:e4:9e:e5:52"
UNIQ="34:88:5d:c8:51:50"
PROP=0
EV=1b
KEY=40000000000000 0 2000000 103840000800 1e000000000000 0
ABS=10000000000
MSC=10
MODALIAS=input:b0005v046DpB342e4201-e0,1,3,4,k71,72,73,74,8B,9E,A3,A4,A5,AC,D9,176,ra28,m4,lsfw
SEQNUM=11345
USEC_INITIALIZED=53072063006
ID_INPUT=1
ID_INPUT_KEY=1
ID_BUS=bluetooth
ID_PATH=pci-0000:00:14.0-usb-0:10:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_10_1_0
ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_10_1_0
TAGS=:seat:

UDEV  [53072.063982] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/hidraw/hidraw1 (hidraw)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/hidraw/hidraw1
SUBSYSTEM=hidraw
DEVNAME=/dev/hidraw1
SEQNUM=11349
USEC_INITIALIZED=53072063646
MAJOR=250
MINOR=1

UDEV  [53072.064120] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input181 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input181
SUBSYSTEM=input
PRODUCT=5/46d/b342/4201
NAME="Keyboard K380 System Control"
PHYS="cc:f9:e4:9e:e5:52"
UNIQ="34:88:5d:c8:51:50"
PROP=0
EV=13
KEY=4000 0 0
MSC=10
MODALIAS=input:b0005v046DpB342e4201-e0,1,4,k8E,ram4,lsfw
SEQNUM=11347
USEC_INITIALIZED=53072063592
ID_INPUT=1
ID_INPUT_KEY=1
ID_BUS=bluetooth
ID_PATH=pci-0000:00:14.0-usb-0:10:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_10_1_0
ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_10_1_0
TAGS=:seat:

UDEV  [53072.065337] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::numlock (leds)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::numlock
SUBSYSTEM=leds
SEQNUM=11335
USEC_INITIALIZED=53072065225

UDEV  [53072.066937] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::capslock (leds)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::capslock
SUBSYSTEM=leds
SEQNUM=11337
USEC_INITIALIZED=53072066833

UDEV  [53072.067687] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery/wakeup64 (wakeup)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery/wakeup64
SUBSYSTEM=wakeup
SEQNUM=11332
USEC_INITIALIZED=53072067586

UDEV  [53072.068104] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::scrolllock (leds)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::scrolllock
SUBSYSTEM=leds
SEQNUM=11339
USEC_INITIALIZED=53072068014

UDEV  [53072.068756] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::compose (leds)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::compose
SUBSYSTEM=leds
SEQNUM=11341
USEC_INITIALIZED=53072068677

UDEV  [53072.069230] change   /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::numlock (leds)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::numlock
SUBSYSTEM=leds
TRIGGER=kbd-numlock
SEQNUM=11336
USEC_INITIALIZED=53072069158

UDEV  [53072.070162] change   /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::capslock (leds)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::capslock
SUBSYSTEM=leds
TRIGGER=kbd-capslock
SEQNUM=11338
USEC_INITIALIZED=53072070075

UDEV  [53072.070417] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::kana (leds)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::kana
SUBSYSTEM=leds
SEQNUM=11342
USEC_INITIALIZED=53072070357

UDEV  [53072.070663] change   /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::scrolllock (leds)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::scrolllock
SUBSYSTEM=leds
TRIGGER=kbd-scrolllock
SEQNUM=11340
USEC_INITIALIZED=53072070559

UDEV  [53072.071742] change   /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::kana (leds)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/input179::kana
SUBSYSTEM=leds
TRIGGER=kbd-kanalock
SEQNUM=11343
USEC_INITIALIZED=53072071646

UDEV  [53072.095391] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery/hwmon8 (hwmon)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery/hwmon8
SUBSYSTEM=hwmon
SEQNUM=11333
USEC_INITIALIZED=53072095223

UDEV  [53072.145367] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input181/event23 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input181/event23
SUBSYSTEM=input
DEVNAME=/dev/input/event23
SEQNUM=11348
USEC_INITIALIZED=53072144992
ID_INPUT=1
ID_INPUT_KEY=1
ID_BUS=bluetooth
XKBMODEL=pc105
XKBLAYOUT=us
XKBVARIANT=
XKBOPTIONS=
BACKSPACE=guess
LIBINPUT_DEVICE_GROUP=5/46d/b342:cc:f9:e4:9e:e5:52
MAJOR=13
MINOR=87
TAGS=:power-switch:

UDEV  [53072.158413] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/event21 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input179/event21
SUBSYSTEM=input
DEVNAME=/dev/input/event21
SEQNUM=11344
USEC_INITIALIZED=53072158065
ID_INPUT=1
ID_INPUT_KEY=1
ID_INPUT_KEYBOARD=1
ID_BUS=bluetooth
XKBMODEL=pc105
XKBLAYOUT=us
XKBVARIANT=
XKBOPTIONS=
BACKSPACE=guess
LIBINPUT_DEVICE_GROUP=5/46d/b342:cc:f9:e4:9e:e5:52
MAJOR=13
MINOR=85
TAGS=:power-switch:

UDEV  [53072.218994] add      /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input180/event22 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/input/input180/event22
SUBSYSTEM=input
DEVNAME=/dev/input/event22
SEQNUM=11346
USEC_INITIALIZED=53072218624
ID_INPUT=1
ID_INPUT_KEY=1
ID_BUS=bluetooth
XKBMODEL=pc105
XKBLAYOUT=us
XKBVARIANT=
XKBOPTIONS=
BACKSPACE=guess
LIBINPUT_DEVICE_GROUP=5/46d/b342:cc:f9:e4:9e:e5:52
MAJOR=13
MINOR=86
TAGS=:power-switch:

UDEV  [53072.220940] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B (hid)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B
SUBSYSTEM=hid
DRIVER=hid-generic
HID_ID=0005:0000046D:0000B342
HID_NAME=Keyboard K380
HID_PHYS=cc:f9:e4:9e:e5:52
HID_UNIQ=34:88:5d:c8:51:50
MODALIAS=hid:b0005g0001v0000046Dp0000B342
SEQNUM=11350
USEC_INITIALIZED=53072220802

UDEV  [53072.222445] change   /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery (power_supply)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery
SUBSYSTEM=power_supply
POWER_SUPPLY_NAME=hid-34:88:5d:c8:51:50-battery
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=1
POWER_SUPPLY_CAPACITY=75
POWER_SUPPLY_MODEL_NAME=Keyboard K380
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_SCOPE=Device
SEQNUM=11351
USEC_INITIALIZED=53072222316

UDEV  [53072.224012] change   /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery (power_supply)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:046D:B342.002B/power_supply/hid-34:88:5d:c8:51:50-battery
SUBSYSTEM=power_supply
POWER_SUPPLY_NAME=hid-34:88:5d:c8:51:50-battery
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=1
POWER_SUPPLY_CAPACITY=75
POWER_SUPPLY_MODEL_NAME=Keyboard K380
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_SCOPE=Device
SEQNUM=11352
USEC_INITIALIZED=53072223882```

答案1

首先,udev 规则文件必须以 为后缀.rules,而不是-rules。(自定义规则也应该转到 /etc/udev,而不是 /lib,但这不会影响它们的工作方式。)

第二,匹配您必须使用的属性==,因为 plain=是一种分配(因此当前规则在技术上将与每个输入设备完全匹配)。

最后,由于某种原因,如图UNIQ所示的属性udevadm包含引号作为值的一部分,因此您还需要将它们包括在内:ENV{UNIQ}=="\"34:88:..\""

(或者,您可以使用 ENVS 来匹配父母 HID_UNIQ属性,它似乎具有相同的数据,但没有引号ENVS{HID_UNIQ}=="34:88:..":)

udevadm control --reload做出这些改变后别忘记这么做。

监视器中显示的属性确实是 ENV。ATTR 关键字处理的是 sysfs 属性,即您可以在 /sys/devices/…/input179 中看到的虚拟“文件”。有时两者具有相同的信息。

相关内容