The Great Unplug-it Test .. will you do it?
Hi Linux Folk
This is about a difference between 2.4 and 2.6 kernels in the way that keyboard input events are handled, which shows up as total loss of keyboard function after it has been unplugged, then re-plugged. This is in effect what happens when KVM switchers are used, but the KVM hardware is generally not guilty, just incidental.
We need to find out how prevalent this is. We need enough feedback to perceive the common factor. By "we" I mean myself, and a kernel developer who is trying to find the cause. If you are a user of 2.6, and you have a PS/2 type keyboard connected to your PC, then we need your input.
Open any app that requires keyboard input, a terminal program like Konsole or Xterm, or maybe a browser. If you are not running X, the command line will do fine. Just unplug the keyboard while all is up and running. Then, re-plug it, and see if the system allows you to continue as if nothing had happened. If you lose control, and have a GUI, you can usually use the mouse to effect an orderly shutdown. (If not, you are forced into a brutal power-off shutdown!)
There are some things we know..
1. It never happens when kernel 2.4 is in use.
2. When it does happen, 2.6 is always there.
3. Its an equal-opportunity bug, all distros, no known exceptions!
4. Its a universal bug, all motherboards / processor so far tried.
5. Its a uncommon bug. Most 2.6 users have no problems.
5. USB keyboards are probably not affected.
6. Its also keyboard brand/type/age related. We don't know why 2.4 is so robust as work with anything, yet 2.6 makes input events have brand sensitivities. Some keyboards work OK. Maybe I am the only one in the world with a stupid keyboard? Thats what we want to find out.
7. For speedy kernel changing, a Knoppix or similar live CD is a good way to test. Knoppix 3.7 and earlier uses kernel 2.4. Knoppix 3.8 uses the 2.6 kernel. This method also has the advantage in not affecting your PC nor any of its settings.
Kernel differences in input handling are compared in
input.c and keybdev.c are for the geekily curious.
The pre-emptive multi-tasking feature uses two code levels and an adaptive algorithm that dynamically reworks the timings and priorities as various events need attention. This is not my territory, nor any place but the brave should go. Linus would probably buy you a beer.
Thanks if you can help