jeff@uf.msc.umn.edu (Jeff Turner) (12/05/89)
The following is a repost of my posting from November 88. -------------- I have experienced the keyboard lockup problem, in addition to another problem which I haven't heard anyone else mention. That of the driver dropping characters! Typing "installit" quickly might result in "intalit". It has even dropped the release of the shift key resulting in: a.out | LESS I have a Zenith 241 (AT) which functions perfectly under DOS and uport 2.2 . The problem is probably timing related, but I don't believe anyone's keyboard is really at fault. I think the driver violates some protocol, timing spec, or most likely, re-enables interrupts at the wrong time. For those of you who have the linkkit and haven't already solved the problem by replacing the keyboard, I suggest applying the following patch and see if it fixes it for you. I have been running with it for a week or so now and have not experienced any lost characters or keyboard lockups. What the patch does is to disable the routine that handles updating the LEDs. It seemed more than a coincidence that whenever the keyboard locked up ctrl-q, ctrl-s, or scroll-lock had just been hit. One thing that sets these keys apart from others is that pressing them toggles the scroll-lock LED (a fairly new feature). As you can see, applying this patch means you can't see when caps-lock is on or when your output is xoff'ed. Perhaps someone will find the time to really fix the problem (rather than bypass it), but until then this may be an inexpensive work-around. To patch the driver: Extract kd_keyint.o from the linkkit's lib2. Save a copy of lib2 -- just in case... Write a little program to open, lseek, and read 4 bytes (to verify), and another little program to open, lseek, and write 4 byte (to patch). kd_keyint.o starting @ byte 813 should be: 55 8b ec 9c change it to have these starting @ byte 813: b8 01 00 cb Replace kd_keyint.o in lib2. Rebuild the kernel. Move the kernel to /unix.kbfix and try it out. Good luck. --- Jeff Turner Minnesota Supercomputer Center, Inc. (612) 626-0544 1200 Washington Avenue South jeff@msc.umn.edu Minneapolis, Minnesota 55415