Why I don't like USB keyboards

March 6, 2007

Our problem with USB keyboards on Dell 2950s neatly illustrates why I remain deeply dubious about USB keyboards. It isn't that something broke; it's that it illustrates how complex USB is.

Specifically, USB keyboards require a pile of sometimes fragile code to bring them up natively, or trusting a large amount of magic BIOS code being run behind your back. However, I really want my console keyboard to be simple; the simpler it is, the less likely it is for something going wrong in the rest of the kernel to affect it, the less support from fragile bits of the kernel it needs, and the sooner it can come up during early boot.

By contrast, the PS/2 keyboard interface is pretty simple; my understanding is that you more or less bang on a single port and read some bytes. Almost anyone can get it going, and in a pinch I believe you can do without interrupts.

(The sheer amount of kernel code that has to be working to deliver a magic SysRq from a USB keyboard is daunting.)

I know that this makes me an outlier; the spate of servers with only USB connectors would have convinced me, if nothing else. If you don't interact with your machine until it's showing the graphical login screen, this isn't really an issue you care about; the machine already has to run a pile of code to be usable, so what's a bit more?

Fortunately you can still get motherboards with PS/2 connectors, although I have to wonder how much longer that will be true. Perhaps someday they will be as endangered as plain three button mice (of which I have a carefully hoarded stock).

Written on 06 March 2007.
« Some useful new Linux software RAID features
A gripe about sun.com »

Page tools: View Source, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Tue Mar 6 23:21:34 2007
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.