I’m having trouble with a keyboard: It works in BIOS and TTY, libinput shows the keypresses, but the inputs don’t register in graphical programs, including the login screen. I tried listening with wev, but it doesn’t pick up anything from the libinput events associated with it.
The keyboard used to work, but hasn’t been used in a few months. I tried it on two computers, both of which with I’ve used it before on, running Fedora 43 and 44, with GNOME and KDE.
Other keyboards on the same machines work. After logging out of a session, there is an extra mouse pointer on the login screen, so I wonder if it gets picked up as a pointing device and the keystrokes don’t get passed on because of that. Libinput lists one of the events associated with it as a ‘USB Gaming Keyboard Mouse’ with pointer capability.
It seems you have already identified this as a keyboard hardware failure. Relatively inexpensive if you need to replace it and definitely not worth the time to do anything other than potentially opening it up and cleaning contacts.
I’m not very technical, but I don’t understand how hardware failure would cause it to work in certain (software) environments (the BIOS, terminal), but not in others. It seems to me that the hardware is doing what it should: transmitting keycodes when buttons are pressed, but the software side not responding to them.
On the other hand, it’s a cheapo keyboard, I wouldn’t be surprised if it had broken. I guess I’m technical enough, that I’d like to know why it behaves as it does, even if it’s not a big thing having to buy a new one.
N: Name=“USB Gaming Keyboard USB Gaming Keyboard”
N: Name=“USB Gaming Keyboard USB Gaming Keyboard System Control”
N: Name=“USB Gaming Keyboard USB Gaming Keyboard Consumer Control”
N: Name=“USB Gaming Keyboard USB Gaming Keyboard”
N: Name=“USB Gaming Keyboard USB Gaming Keyboard Mouse”
When it used to work, what OS / desktop environment / versions were you using?
I’ve used with Ubuntu LTS, no recollection of the version, but I bought it around three years ago, and Fedora 42 and 43 after that. EDIT: Gnome on all of these
I guess use the Workstation (GNOME) edition for this since that’s the one that you know worked on F43 in the past.
If your keyboard works on live F43 (i.e. the originally released F43 with no post-release updates) but not on live F44, that does suggest that a software change somewhere along the way is responsible.
If it no longer works in live F43, that points more towards a hardware issue.
Well, the keyboard works in Fedora 43 Live version, but not in my updated Fedora 43 machine, on which I’ve tried it with both GNOME and KDE. I did also try The 44 Live version with KDE yesterday, and it didn’t work with that. Haven’t tried 44 Live GNOME yet, but it would seem like it’s something that’s happened between 43 and 44 releases, right?
EDIT: Did try the 44 GNOME Live, and it didn’t work there either.
I don’t really have the detailed knowledge to know how to narrow it down further sorry, but it looks like it’s in some common part of the stack, not a GNOME or KDE-specific component.
To understand the problem we need actual details of your device:
Please post (as pre-formattted web-discoverable text) the output from running lsusb and then journalctl --no-hostname -b -g hid in a terminal. You should see something similar to:
% lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0bda:5483 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 001 Device 003: ID 0a81:0205 Chesen Electronics Corp. PS/2 Keyboard+Mouse Adapter
Bus 001 Device 004: ID 05ac:1003 Apple, Inc. Hub in Pro Keyboard [Mitsumi, A1048]
Bus 001 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 006: ID 0bda:1100 Realtek Semiconductor Corp. USB2.0 HID
Bus 001 Device 007: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 001 Device 008: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 009: ID 0bda:5483 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 001 Device 010: ID 05ac:020b Apple, Inc. Pro Keyboard [Mitsumi, A1048/US layout]
Bus 001 Device 011: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 1058:25ee Western Digital Technologies, Inc. My Book 25EE
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 04b4:6570 Cypress Semiconductor Corp. Unprogrammed CY7C65632/34 hub HX2VL
Bus 003 Device 003: ID 04b4:0004 Cypress Semiconductor Corp. USB-Serial (Single Channel)
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
% journalctl --no-hostname -b -g hid
Jul 05 13:04:46 kernel: hid: raw HID events driver (C) Jiri Kosina
Jul 05 13:04:46 kernel: usbcore: registered new interface driver usbhid
Jul 05 13:04:46 kernel: usbhid: USB HID core driver
Jul 05 13:04:46 kernel: hid-generic 0003:0A81:0205.0001: input,hidraw0: USB HID v1.10 Keyboard [CHESEN PS2 to USB Converter] on usb-0000:00:14.0-9/input0
Jul 05 13:04:46 kernel: hid-generic 0003:0A81:0205.0002: input,hidraw1: USB HID v1.10 Mouse [CHESEN PS2 to USB Converter] on usb-0000:00:14.0-9/input1
Jul 05 13:04:46 kernel: hid-generic 0003:051D:0002.0003: hiddev96,hidraw2: USB HID v1.00 Device [American Power Conversion Back-UPS XS 1300G FW:864.L6 .D USB FW:L6 ] on usb-0000:00:14.>
Jul 05 13:04:46 kernel: usb 1-5.5: Product: USB2.0 HID
Jul 05 13:04:46 kernel: hid-generic 0003:0BDA:1100.0004: hiddev97,hidraw3: USB HID v1.11 Device [Realtek USB2.0 HID] on usb-0000:00:14.0-5.5/input0
Jul 05 13:04:46 kernel: hid-generic 0003:045E:0040.0005: input,hidraw4: USB HID v1.10 Mouse [Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)] on usb-0000:00:14.0-5.3.2/input0
Jul 05 13:04:47 kernel: hid-generic 0003:05AC:020B.0006: input,hidraw5: USB HID v1.10 Keyboard [Mitsumi Electric Apple Extended USB Keyboard] on usb-0000:00:14.0-5.3.3/input0
Jul 05 13:04:47 kernel: hid-generic 0003:05AC:020B.0007: input,hidraw6: USB HID v1.10 Device [Mitsumi Electric Apple Extended USB Keyboard] on usb-0000:00:14.0-5.3.3/input1
Jul 05 16:04:57 NetworkManager[1373]: <info> [1783278297.4756] Config: added 'psk' value '<hidden>'
I have 2 pointing devices and 2 keyboards connected, but one pair are old PS/2 models using a USN adapter. You can see which kernel modules are used for each device by matching the ID from lsusb with the hid-generic lines`. For an overview, see https://docs.kernel.org/input/input.html.
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 04d9:a0d1 Holtek Semiconductor, Inc. Varmilo Keyboard
Bus 001 Device 004: ID 0e8d:0616 MediaTek Inc. Wireless_Device
Bus 001 Device 005: ID 048d:5702 Integrated Technology Express, Inc. RGB LED Controller
Bus 001 Device 006: ID 07fd:000b Mark of the Unicorn M Series
Bus 001 Device 007: ID 0e6f:0304 Logic3 Rematch Xbox Wired Controller- Purple Fade for Xbox Series X
Bus 001 Device 008: ID 2f81:2608 USB Gaming Keyboard USB Gaming Keyboard
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0414:a014 Giga-Byte Technology Co., Ltd USB Audio
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 002: ID 3434:d028 Keychron Keychron Ultra-Link 8K
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
$ journalctl --no-hostname -b -g hid
heinä 07 09:55:42 kernel: hid: raw HID events driver (C) Jiri Kosina
heinä 07 09:55:42 kernel: usbcore: registered new interface driver usbhid
heinä 07 09:55:42 kernel: usbhid: USB HID core driver
heinä 07 09:55:42 kernel: hid-generic 0003:3434:D028.0001: input,hidraw0: USB HID v1.10 Mouse [Keychron Keychron Ultra-Link 8K] on usb-0000:13:00.4-2/input0
heinä 07 09:55:42 kernel: hid-generic 0003:3434:D028.0002: input,hidraw1: USB HID v1.10 Keyboard [Keychron Keychron Ultra-Link 8K] on usb-0000:13:00.4-2/input1
heinä 07 09:55:42 kernel: hid-generic 0003:3434:D028.0003: hiddev96,hidraw2: USB HID v1.10 Device [Keychron Keychron Ultra-Link 8K] on usb-0000:13:00.4-2/input2
heinä 07 09:55:42 kernel: hid-generic 0003:3434:D028.0004: hiddev97,hidraw3: USB HID v1.10 Device [Keychron Keychron Ultra-Link 8K] on usb-0000:13:00.4-2/input3
heinä 07 09:55:42 kernel: hid-generic 0003:3434:D028.0005: hiddev98,hidraw4: USB HID v1.10 Device [Keychron Keychron Ultra-Link 8K] on usb-0000:13:00.4-2/input4
heinä 07 09:55:42 kernel: hid-generic 0003:2F81:2608.0006: input,hidraw5: USB HID v1.10 Keyboard [USB Gaming Keyboard USB Gaming Keyboard] on usb-0000:10:00.0-2/input0
heinä 07 09:55:42 kernel: hid-generic 0003:2F81:2608.0007: input,hiddev99,hidraw6: USB HID v1.10 Keyboard [USB Gaming Keyboard USB Gaming Keyboard] on usb-0000:10:00.0-2/input1
heinä 07 09:55:42 kernel: hid-generic 0003:2F81:2608.0008: hiddev100,hidraw7: USB HID v1.10 Device [USB Gaming Keyboard USB Gaming Keyboard] on usb-0000:10:00.0-2/input2
heinä 07 09:55:43 kernel: hid-generic 0003:04D9:A0D1.0009: input,hidraw8: USB HID v1.10 Keyboard [AONE Varmilo Keyboard] on usb-0000:10:00.0-5/input0
heinä 07 09:55:43 kernel: hid-generic 0003:04D9:A0D1.000A: input,hidraw9: USB HID v1.10 Keyboard [AONE Varmilo Keyboard] on usb-0000:10:00.0-5/input1
heinä 07 09:55:43 kernel: hid-generic 0003:04D9:A0D1.000B: hiddev101,hidraw10: USB HID v1.10 Device [AONE Varmilo Keyboard] on usb-0000:10:00.0-5/input2
heinä 07 09:55:43 kernel: hid-generic 0003:0414:A014.000C: hiddev102,hidraw11: USB HID v1.11 Device [Generic USB Audio] on usb-0000:13:00.3-2/input5
heinä 07 09:55:44 kernel: hid-generic 0003:048D:5702.000D: hiddev103,hidraw12: USB HID v1.12 Device [ITE Tech. Inc. ITE Device] on usb-0000:10:00.0-7/input0
heinä 07 09:55:54 NetworkManager[1344]: <info> [1783407354.7427] Config: added 'psk' value '<hidden>'
heinä 07 14:49:47 kernel: hid-generic 0003:2F81:2608.000E: input,hidraw5: USB HID v1.10 Keyboard [USB Gaming Keyboard USB Gaming Keyboard] on usb-0000:10:00.0-3/input0
heinä 07 14:49:47 kernel: hid-generic 0003:2F81:2608.000F: input,hiddev99,hidraw6: USB HID v1.10 Keyboard [USB Gaming Keyboard USB Gaming Keyboard] on usb-0000:10:00.0-3/input1
heinä 07 14:49:47 kernel: hid-generic 0003:2F81:2608.0010: hiddev100,hidraw7: USB HID v1.10 Device [USB Gaming Keyboard USB Gaming Keyboard] on usb-0000:10:00.0-3/input2
The Varmilo keyboard is a working one, it’s the ‘USB Gaming Keyboard’ that I have problems with. I also have a Keychron mouse connected via their wireless dongle, that seems to show up as a keyboard too, even though I don’t have one connected.
EDIT: Oops, I didn’t have the problematic keyboard connected on the first version of the outputs above.
The journal shows that the USB Gaming keyboard is recognized with USB ID 2f81:2608 and several “dev names”. The next step is to compile the test application. I did this by cloning the hid_gadget_test git repository, which includes a trivial Makefile. The just make builds the program:
I get reports if I hit ‘/dev/hidrawX’ with the gadget_test from both keyboards, but none of the 'hiddev’s in ‘/dev/usb/’ seem to respond. I tried both ‘keyboard’ and ‘mouse’ modes.
The working keyboard will also print the characters pressed in the terminal, but the other only prints the hex numbers (keycodes?):
Try starting journalct <minus><minus>no-hostname <minus><minus>follow in a second terminal to see if there are useful details when you start the test. Linux has a problem with “niche” devices where drivers are no longer being maintained. If you can arrange access to a system where the device works you can check for differences: does the test work, and what modules are loaded. Some HID modules have code for specific USB ID’s and use generic code for others. If you don’t have access to a system where the device works you can search for vendor and model ID’s in https://linux-hardware.org/.