Okay, here's how to track this down. I assume that even after the
keyboard stops working you can access the machine via a network
connection.
So turn on CONFIG_USB_DEBUG, CONFIG_USB_MON, and CONFIG_DEBUG_FS. Then
modprobe uhci-hcd with debug=2, and mount a debugfs filesystem. Before
using the keyboard, start a cat process to capture the usbmon output for
the keyboard's bus (see the instructions for usbmon in
Documentation/usb/usbmon.txt).
After hanging the keyboard, get a copy of the appropriate controller's
file in the uhci/ subdirectory of the debugfs filesystem. Post it along
with the usbmon log, and I'll try to figure out what happened.
Alan Stern
-