I discovered that it is the usbhid that controls my USB keyboard by default. I discovered it by doing rmmod usbhid. When I removed usbhid the usb keyboard stopped working. Note that usbkbd was not yet inserted. Then I inserted usbkbd, then keyboard started working again. If the keyboard can be handled by the generic driver - usbhid - then why do we need a separate usbkbd?


There is an answer in Kernel documentation:

3.1.2 usbmouse
For embedded systems, for mice with broken HID descriptors and just any
other use when the big usbhid wouldn't be a good choice, there is the
usbmouse driver. It handles USB mice only. It uses a simpler HIDBP
protocol. This also means the mice must support this simpler protocol. Not
all do. If you don't have any strong reason to use this module, use usbhid

3.1.3 usbkbd
Much like usbmouse, this module talks to keyboards with a simplified
HIDBP protocol. It's smaller, but doesn't support any extra special keys.
Use usbhid instead if there isn't any special reason to use this.

From Documentation/input/input.txt

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.