그래서 제가 직접 만든 USB 키보드가 있는데 실행이 됩니다.qmk 키보드 펌웨어. 가장 먼저 말씀드리고 싶은 점은 이것이 아마도 키보드 펌웨어의 버그일 가능성이 있다는 것입니다. 그러나 Windows에서는 키보드가 제대로 작동하는 것 같고 Linux 명령을 실행하여(즉, 키보드 측에서 아무것도 변경하지 않고) 키보드가 작동하도록 할 수 있기 때문에 이것이 Linux 측에서 문제가 될 수 있다고 생각했습니다.
기본적으로 Arch에서 장치 파일을 수동으로 확인할 때까지 키보드가 작동하지 않았습니다.
키보드가 연결된 상태(내장 카메라 외에는 다른 USB 장치 없음)로 컴퓨터를 시작할 때 발생하는 일부 관련 로그 파일:
이 시점에서는 열거 실패 오류로 인해 키보드가 작동하지 않습니다. 키보드는 USB 1-1.2에 있습니다.
관련 라인은 다음과 같습니다:
[ 1.832175] usb 1-1.2: new full-speed USB device number 3 using ehci-pci
[ 1.905512] usb 1-1.2: device descriptor read/64, error -32
[ 2.085461] usb 1-1.2: device descriptor read/64, error -32
[ 2.265515] usb 1-1.2: new full-speed USB device number 4 using ehci-pci
[ 2.338846] usb 1-1.2: device descriptor read/64, error -32
[ 2.518816] usb 1-1.2: device descriptor read/64, error -32
[ 2.625860] usb 1-1-port2: attempt power cycle
[ 3.218828] usb 1-1.2: new full-speed USB device number 5 using ehci-pci
[ 3.632148] usb 1-1.2: device not accepting address 5, error -32
[ 3.705494] usb 1-1.2: new full-speed USB device number 6 using ehci-pci
[ 4.118807] usb 1-1.2: device not accepting address 6, error -32
[ 4.119230] usb 1-1-port2: unable to enumerate USB device
[ 17.805499] usb 1-1.2: device descriptor read/64, error -32
[ 17.985547] usb 1-1.2: device descriptor read/64, error -32
[ 18.165533] usb 1-1.2: new full-speed USB device number 9 using ehci-pci
[ 18.238879] usb 1-1.2: device descriptor read/64, error -32
[ 18.418843] usb 1-1.2: device descriptor read/64, error -32
[ 18.525892] usb 1-1-port2: attempt power cycle
[ 19.118769] usb 1-1.2: new full-speed USB device number 10 using ehci-pci
[ 19.532187] usb 1-1.2: device not accepting address 10, error -32
[ 19.605514] usb 1-1.2: new full-speed USB device number 11 using ehci-pci
[ 20.018843] usb 1-1.2: device not accepting address 11, error -32
[ 20.019332] usb 1-1-port2: unable to enumerate USB device
[ 42.472082] usb 1-1.2: new full-speed USB device number 12 using ehci-pci
[ 42.545439] usb 1-1.2: device descriptor read/64, error -32
[ 42.725428] usb 1-1.2: device descriptor read/64, error -32
[ 42.905429] usb 1-1.2: new full-speed USB device number 13 using ehci-pci
[ 42.978812] usb 1-1.2: device descriptor read/64, error -32
[ 43.158874] usb 1-1.2: device descriptor read/64, error -32
[ 43.265778] usb 1-1-port2: attempt power cycle
[ 43.858811] usb 1-1.2: new full-speed USB device number 14 using ehci-pci
[ 44.272092] usb 1-1.2: device not accepting address 14, error -32
[ 44.345501] usb 1-1.2: new full-speed USB device number 15 using ehci-pci
[ 44.758834] usb 1-1.2: device not accepting address 15, error -32
[ 44.759116] usb 1-1-port2: unable to enumerate USB device
플러그를 뽑았다가 다시 연결하면 로그는 다음과 같습니다.
이 시점에서 키보드는 lsusb(USB ID ca04:0248)로 인식되지만 여전히 입력이 작동하지 않습니다.
컴퓨터가 키보드 입력을 등록하도록 하는 방법은 dmesg를 보고 키보드가 /dev/hidraw0, /dev/hidraw1 및 /dev/hidraw2를 차지하고 있는지 확인하는 것입니다. 그런 다음 달려야 sudo cat /dev/hidraw2
하고 그때부터 모든 것이 잘 작동합니다(고양이를 죽인 후에도). 다른 주변 장치가 연결되어 있고 키보드의 hidraw 번호가 다른 경우 항상 마지막 번호를 선택해야 합니다(예: USB 마우스도 연결되어 있으면 키보드에 /dev/hidraw5가 표시됩니다. 이것이 바로 제가 해야 할 일입니다). cat
효과를 발휘하도록 하세요.
파일 시스템의 장치가 제대로 작동하는지 확인하기 위해 무엇을 하는지 아는 사람이 있습니까? 키보드가 연결될 때마다 이 작업을 수행하도록 udev 규칙을 작성하는 것이 매우 간단하다는 것을 알고 있지만 가능하다면 근본적인 문제를 해결하고 싶습니다.