USB 키보드는 장치 파일을 수동으로 확인할 때까지 작동하지 않습니다.

USB 키보드는 장치 파일을 수동으로 확인할 때까지 작동하지 않습니다.

그래서 제가 직접 만든 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 규칙을 작성하는 것이 매우 간단하다는 것을 알고 있지만 가능하다면 근본적인 문제를 해결하고 싶습니다.

관련 정보