저는 NixOS 구성을 사용하기 위해 필요한(필요한!) USB 페달 세트를 가지고 있습니다. 솔직히 손이 너무 아프기 때문입니다.
페달은 lsusb에서 식별됩니다.
Bus 001 Device 006: ID 413d:2107
evtest는 다음과 같은 기본 키 할당을 표시합니다.
sudo evtest /dev/input/event6
...
Input device ID: bus 0x3 vendor 0x413d product 0x2107 version 0x111
Input device name: "HID 413d:2107 Keyboard"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_Key)
Event code 1 (KEY_ESC)
...
Event code 240 (KEY_UNKNOWN)
Event type 4 (EV_MSC)
Event code 3 (MSC SCAN)
...
Event: time 1593452123.539558, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70004
Event: time 1593452123.539558, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1593452123.539558, -------------- SYN_REPORT ------------
...
그래서 다음기술기만 네트워크그리고yulistic.gitlab.io,밀접한 관련이 있는NixOS 옵션, extraHwdb 규칙에 다음 줄을 추가했습니다.
services.udev.extraHwdb = ''
evdev:input:b*v413Dp2107e*-*
KEYBOARD_KEY_70004=f13
'';
나는 장치 제품군의 몇 가지 변형, 특히 keyboard:usb:v413Dp2107*
및 evdev:input:b*v413Dp2107e*
.
내 구성.nix에 추가하고 다시 빌드하고 전환했습니다. 그리고...아무 것도 없습니다. 페달은 계속해서 "a" 건반 소리를 냅니다.
변경 사항이 승인되고 있다고 확신합니다(파일에서 ";"를 의도적으로 제거하면 빌드되지 않습니다). 그러나 udevadm으로 테스트하십시오.
sudo udevadm info /dev/input/event6
P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:413D:2107.0004/input/input25/event6
N: input/event6
L: 0
S: input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event-kbd
S: input/by-id/usb-413d_2107-event-kbd
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:413D:2107.0004/input/input25/event6
E: DEVNAME=/dev/input/event6
E: MAJOR=13
E: MINOR=70
E: SUBSYSTEM=input
E: USEC_INITIALIZED=1296521621
E: PATH=/nix/store/k3hi6q6y10zrrgli0xa54zbvzs6pwdl1-udev-path/bin:/nix/store/k3hi6q6y10zrrgli0xa54zbvzs6pwdl1-udev-path/sbin
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_VENDOR=413d
E: ID_VENDOR_ENC=413d
E: ID_VENDOR_ID=413d
E: ID_MODEL=2107
E: ID_MODEL_ENC=2107
E: ID_MODEL_ID=2107
E: ID_REVISION=0000
E: ID_SERIAL=413d_2107
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030101:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
E: LIBINPUT_DEVICE_GROUP=3/413d/2107:usb-0000:00:14.0-2
E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event-kbd /dev/input/by-id/usb-413d_2107-event-kbd
E: TAGS=:power-switch:
구성이 요구 사항을 충족한다는 증거는 없습니다. 그래서 아마도 제가 어리석은 짓을 하고 있는 것 같은데, 아무리 쳐다봐도 보이지가 않네요.
키보드 코드(70004)가 헤더 [0..240]에서 evtest에 의해 보고된 범위를 벗어난 것 같지만 이것이 관련이 있는지는 알 수 없습니다.
어떤 조언이라도 대단히 감사하겠습니다.
답변1
당신은 시도 할 수 있습니다발 스위치, 모델을 지원하고 이벤트를 프로그래밍할 수 있습니다.
PCsensor 및 Scythe 풋스위치 프로그래밍을 위한 명령줄 유틸리티입니다. 단일 페달 장치와 3개의 페달 장치를 지원합니다.
footswitch [-123] [-r] [-s <string>] [-S <raw_string>] [-ak <key>] [-m <modifier>] [-b <button>] [-xyw <XYW>]
-r - read all pedals
-1 - program the first pedal
-2 - program the second pedal (default)
-3 - program the third pedal
-s string - append the specified string
-S rstring - append the specified raw string (hex numbers delimited with spaces)
-a key - append the specified key
-k key - write the specified key
-m modifier - ctrl|shift|alt|win
-b button - mouse_left|mouse_middle|mouse_right
-x X - move the mouse cursor horizontally by X pixels
-y Y - move the mouse cursor vertically by Y pixels
-w W - move the mouse wheel by W