どのudev hwdbマッチが私のキーをめちゃくちゃにしているのか、どうすればわかりますか?

どのudev hwdbマッチが私のキーをめちゃくちゃにしているのか、どうすればわかりますか?

Logitech Unifying Keyboard K270を購入し、Ubuntu 14.04を実行しています(はい、更新しています)。何らかの理由で「a」と「b」のキーが変わることを除いて、すべてがうまく機能します。

最終的にudevが問題を引き起こしていることを見つけましたが、キャンセルすることはできませんでした。

> udevadm info /dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-kbd
P: /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.2/0003:046D:C52B.0015/input/input34/event18
N: input/event18
S: input/by-id/usb-Logitech_USB_Receiver-if02-event-kbd
S: input/by-path/pci-0000:00:14.0-usb-0:2:1.2-event-kbd
E: DEVLINKS=/dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-kbd /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.2-event-kbd
E: DEVNAME=/dev/input/event18
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.2/0003:046D:C52B.0015/input/input34/event18
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_MODEL=USB_Receiver
E: ID_MODEL_ENC=USB\x20Receiver
E: ID_MODEL_ID=c52b
E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.2
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_2
E: ID_REVISION=1203
E: ID_SERIAL=Logitech_USB_Receiver
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030102:030000:
E: ID_USB_INTERFACE_NUM=02
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: KEYBOARD_KEY_70004=b  <--------
E: KEYBOARD_KEY_70005=a  <--------
E: MAJOR=13
E: MINOR=82
E: SUBSYSTEM=input
E: USEC_INITIALIZED=397136693

私はそれを無視しようとします。

> cat /lib/udev/hwdb.d/70-keyboad.hwdb
# XXXX is the 4-digit hex uppercase vendor, and YYYY the 4-digit hex uppercase product.
# keyboard:usb:vXXXXpYYYY*
keyboard:usb:v046D*
  # Logitech keyboard is overriding the A and B keys for some reason
  KEYBOARD_KEY_70004=a
  KEYBOARD_KEY_70005=b

役に立たない。

これをオーバーライドするために正しい一致を作成するにはどうすればよいですか?正しい一致を作成する方法に関するドキュメントが見つからず、どのルールが「KEYBOARD_KEY」エイリアスを挿入しているかが見つかりません。

ベストアンサー1

ちょっと!私はBluetoothキーボードを持っていて、以前はudevを操作して操作しようとしましたが、あきらめて設定だけを残しました。

> grep  KEYBOARD_KEY_70004 /etc/udev/hwdb.d/* /lib/udev/hwdb.d/*
/etc/udev/hwdb.d/90-bluetooth-keyboard.hwdb:  KEYBOARD_KEY_70004=b

ドキュメントから

udevadm hwdb [オプション] /lib/udev/hwdb.bin でハードウェアデータベースインデックスを維持します。

  --update
      Compile the hardware database information located in **/lib/udev/hwdb.d/**, **/etc/udev/hwdb.d/** and store it in /lib/udev/hwdb.bin. This should be done after any update to the source files; it will not be called automatically.
      The running udev daemon will detect a new database on its own and does not need to be notified about it.

ただし、正しい一致を作成する方法に関する文書がある場合は、その文書を教えてください。

乾杯

おすすめ記事