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
쯧쯧! 나는 블루투스 키보드를 가지고 있으며 이전에 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.
그러나 올바른 일치 항목을 작성하는 방법에 대한 문서가 있는 경우 해당 문서를 알려주시기 바랍니다.
건배