THE PROBLEM: A Toshiba Satellite L305-S5933 laptop came into the shop recently with a non-functioning internal keyboard and touchpad. The keyboard worked fine in the BIOS and prior to booting an operating system, but in Windows neither device was functional at all, and in the Tritech Service System (a custom Linux distribution we use at Tritech Computer Solutions for checking out computers) keystrokes would be severely delayed or would miss completely. Either way, the keyboard clearly worked okay before an OS fully booted, and stopped functioning when an OS was running. USB input devices work fine.
THE SALT IN THE WOUND: There are posts all over the place mentioning problems similar to this, with theories about Windows updates and BIOS updates and drivers all over the place, but none of them are helpful and none of the posts were solved or had any kind of follow-up. In short, no one seems to have any solid lead on fixing this issue.
THE SOLUTION: In the case of the Toshiba we inspected, the touchpad was bad. The failed touchpad also kept the keyboard from being able to operate while in an operating system. To confirm this, we removed the keyboard and disconnected the touchpad, which immediately caused the keyboard to start operating correctly.
THE TECHNICAL EXPLANATION: On a laptop, the keyboard and mouse (touchpad) are what’s known as PS/2 devices. Since the days of the IBM PS/2 computer, a dedicated chip called the 8042 keyboard controller has existed in PCs, powering two special serial ports, one for the keyboard and one known as an AUX port which is always used for a mouse. Though the 8042 chip is no longer a standalone component, identically functioning circuits are in practically every PC laptop and desktop computer that exists. What does all this have to do with the touchpad knocking out the keyboard? It’s actually quite simple: the 8042 controls both devices, and the defective touchpad was flooding the 8042 chip with garbage data. If one channel is flooding the controller chip with data, the other channel is “starved” of bandwidth and can’t send its information through the 8042 chip. Think of it like someone yelling words rapidly into your left ear while you were also trying to listen to someone talking normally in the right ear. You can’t possibly follow both conversations because one is drowning out the other. That’s how your toasted touchpad can cause your keyboard to not function at all.
HOW WE FIGURED IT OUT: The key knowledge here is that the two PS/2 devices are attached to the same controller chip. Bringing up the “top” command in the Tritech Service System shows us the CPU usage of running processes in decreasing order of CPU usage by default. We noticed that two of the “kworker” threads were eating 1.5% to 1.8% of the CPU at all times. (A kworker thread is a “helper” program that runs directly from the Linux kernel to help it perform various tasks, not as an actual program.) The next logical step after noticing this unusual behavior from a clean system that has worked very well on every Toshiba Satellite L300-series laptop prior to this one was to unplug the keyboard and touchpad, and see if anything changed (this requires minor disassembly of the keyboard area of the laptop to perform.)
Unplugging the keyboard ribbon cable had zero effect. However, sliding out the ribbon for the laptop touchpad caused the kworker threads to completely cease using CPU. Connecting the keyboard back up and attempting to use it confirmed that removal of the mouse/touchpad from the equation brought back full functionality in the keyboard. Diagnosis: bad touchpad.
One of the reasons that we advocate for aspiring technicians to seek general knowledge about how computers work instead of specific situational solutions like an A+ certification test would target is for situations like this one. The knowledge that the keyboard and mouse run through the same controller chip was the only thing that prevented an average technician from knowing where to troubleshoot further and solve the problem, and the diagnosis could just as easily have been performed in Windows as in Linux.
It’s important to understand as much as you can about the general workings of a computer; the standard PS/2 keyboard/mouse controller chip has been around for a very long time, and is easily ignored by an aspiring technician in an era where many new computers only use USB connectivity and have thrown PS/2 hardware out the window. Don’t ignore something just because it’s slightly obscure or because it’s an old carry-over from the computing days of old! You never know when that obscure knowledge will turn out to be a missing puzzle piece to a confounding and frustrating issue that you’ll waste many hours poking and prodding at.