I recently installed debian (sarge) on a T23, which works out of the box. I did not try the modem, but the other hardware made no problems.
But then I realized that the keyboard is missing a key: The less/greater/bar key is not there. It is simply missing. This is alright with an english keymapping, as there these symbols are in a different position. On a german layout (as indicated by stickers on the keys) I had to define these to be able to get '<', '>' and '|'.
And this is how it worked:
First thing was to tell XFree86 about the new stuff. There are configuration files in /etc/X11/xkb which have to be changed:
I first tried
/etc/X11/xkb/symbols/de
then I found out, that another file was used:
/etc/X11/xkb/symbols/pc/de
This is what I changed:
24a25,26
> key <AB08> { [comma, semicolon, less, less] };
> key <AB09> { [period, colon, greater, greater] };
27c29
< key <BKSL> { [numbersign, apostrophe, dead_grave, dead_breve ] };
---
> key <BKSL> { [numbersign, apostrophe, bar, bar ] };
48c50
< key <BKSL> { [numbersign, apostrophe, grave, grave ] };
---
> key <BKSL> { [numbersign, apostrophe, bar, bar ] };
62c64
< key <BKSL> { [numbersign, apostrophe, grave, grave ] };
---
> key <BKSL> { [numbersign, apostrophe, bar, bar ] };
74c76
< key <BKSL> { [numbersign, apostrophe, dead_grave, dead_grave ] };
---
> key <BKSL> { [numbersign, apostrophe, bar, bar ] };
so there was two keys to be redefined additionally (in the basic section), <AB08> and <AB09>, the definition for the <BKSL> key has to be changed in different sections of the file ('basic','nodeadkeys', etc.).
That was it for X, you must restart it (CTRL-ALT-BACKSPACE) or use xmodmap.
I changed the de-files directly, you might want to rename them and include them via /etc/X11/XF86Config-4, but then you should also change the naming schema in the files above accordingly (#include directives).
This could be the changed section with a self-made definition in a file called de_thinkpadT23.
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "de_thinkpadT23"
Option "XkbVariant" "nodeadkeys"
EndSection
To have the new symbols on the console, I had to define a keymap which is loaded at boottime and changed that:
/etc/console/boottime.kmap.gz
This is the patch, you might easily find out what I changed:
86c86
< keycode 43 = numbersign apostrophe
---
> keycode 43 = numbersign apostrophe bar
88a89
> altgr alt keycode 43 = Meta_bar
96c97
< keycode 51 = comma semicolon
---
> keycode 51 = comma semicolon less
99c100,101
< keycode 52 = period colon
---
> altgr alt keycode 51 = Meta_less
> keycode 52 = period colon greater
101a104
> altgr alt keycode 52 = Meta_greater