NixOS를 사용하여 USB 페달을 구성하는 방법

NixOS를 사용하여 USB 페달을 구성하는 방법

저는 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

관련 정보