使用 hwdb 强制释放密钥

使用 hwdb 强制释放密钥

我有新键盘,静音键不发送释放事件。根据我在 hwdb 中阅读的内容,可以使驱动程序发送合成发布事件,并且我已尝试使其这样做。

这是我的步骤:

  1. 使用 evtest 和 evemu-describe 我已经找到了应该配置哪个密钥和哪个设备。
  2. 创造了记录/lib/udev/hwdb.d/90-custom-keyboard.hwdb

    evdev:input:b0003v0C45p7903*
      KEYBOARD_KEY_c00e2=!mute
    
  3. 是的systemd-hwdb update,重建了 initrd mkinicpio -p linux

  4. 重新启动并检查udevadm info显示正确的值

    P: /devices/pci0000:00/0000:00:1d.0/0000:06:00.0/0000:07:01.0/0000:09:00.0/0000:0a:02.0/0000:0d:00.0/usb5/5-3/5-3:1.1/0003:0C45:7903.0006/input/input26/event25
    N: input/event25
    S: input/by-id/usb-SONiX_USB_DEVICE-event-if01
    S: input/by-path/pci-0000:0d:00.0-usb-0:3:1.1-event
    E: DEVLINKS=/dev/input/by-path/pci-0000:0d:00.0-usb-0:3:1.1-event /dev/input/by-id/usb-SONiX_USB_DEVICE-event-if01
    E: DEVNAME=/dev/input/event25
    E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/0000:06:00.0/0000:07:01.0/0000:09:00.0/0000:0a:02.0/0000:0d:00.0/usb5/5-3/5-3:1.1/0003:0C45:7903.0006/input/input26/event25
    E: ID_BUS=usb
    E: ID_INPUT=1
    E: ID_INPUT_KEY=1
    E: ID_MODEL=USB_DEVICE
    E: ID_MODEL_ENC=USB\x20DEVICE
    E: ID_MODEL_ID=7903
    E: ID_PATH=pci-0000:0d:00.0-usb-0:3:1.1
    E: ID_PATH_TAG=pci-0000_0d_00_0-usb-0_3_1_1
    E: ID_REVISION=0110
    E: ID_SERIAL=SONiX_USB_DEVICE
    E: ID_TYPE=hid
    E: ID_USB_DRIVER=usbhid
    E: ID_USB_INTERFACES=:030101:030102:
    E: ID_USB_INTERFACE_NUM=01
    E: ID_VENDOR=SONiX
    E: ID_VENDOR_ENC=SONiX
    E: ID_VENDOR_ID=0c45
    E: KEYBOARD_KEY_c00e2=!mute
    E: LIBINPUT_DEVICE_GROUP=3/c45/7903:usb-0000:0d:00.0-3
    E: MAJOR=13
    E: MINOR=89
    E: SUBSYSTEM=input
    E: TAGS=:power-switch:
    E: USEC_INITIALIZED=5143289
    

    请注意 KEYBOARD_KEY_c00e2 - 因此它已加载。

  5. 测试了它是否可以与 evtest 一起使用,但没有:(

似乎尽管 hwdb 中描述的正确配置强制释放属性未填充,这已通过udevadm info -a -p /sys/class/input/event25 | grep -i force.release- 未设置此类属性得到确认。

我究竟做错了什么?如何让驱动程序在按下后立即发送合成发布事件?

版本:Systemd:239 内核:4.18.8

谢谢。

相关内容