I have a Toshiba Satellite P755 laptop. I just bought a new keyboard intended for a different model, but of the same physical size and therefore likely compatible, for it.
The new keyboard's connector is identical, as well the layout and indeed the keys themselves are nearly all identical save for a backlight and the associated wire, which was not present on the original.
I took the old keyboard out of my laptop and installed the new one.
xinput detects the new keyboard just fine:
$ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ HID 04d9:1400 id=11 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)] ⎜ ↳ Logitech K400 id=15 [slave pointer (2)] ⎜ ↳ Logitech M510 id=16 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ USB 2.0 Camera id=9 [slave keyboard (3)] ↳ HID 04d9:1400 id=10 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)] ↳ Toshiba input device id=14 [slave keyboard (3)] !!!
but it does not work in the BIOS / at boot, in my Ubuntu installation (which was configured for the old keyboard), nor in an Ubuntu Live CD (which are notorious for having every driver for everything ever).
Interestingly, in both my Ubuntu install and the Live CD, the only keys which work are these:
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p' 21 equal 22 BackSpace 106 KP_Divide 63 KP_Multiply 82 KP_Subtract 79 KP_Home 80 KP_Up 81 KP_Prior 83 KP_Left 84 KP_Begin 85 KP_Right 87 KP_End 89 KP_Next 91 KP_Delete 104 KP_Enter 27 r 35 bracketright 41 f 48 apostrophe 36 Return 55 v 37 Control_L 133 Super_L 105 Control_R
This is good news, and I think the problem is software related, not hardware.
How can I find a driver for it, or configure / troubleshoot it manually?