在我手动检查其设备文件之前,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 规则来执行此操作非常简单,但如果可能的话,我想解决根本问题。

相关内容