Debian on an HP/Compaq tc1100 tablet PC

The HP/Compaq tc1100 tablet PC is a nice small laptop which can detach from its keyboard to become a classic tablet. The tc1100 line has been active since 2003 with many upgrades to the processor and other stats. Mine is an early one with a Celeron processor.

I installed Debian testing on my tc1100 in late May 2005. Other people have successfully installed mandrake and fedora core on tc1100s, and their websites were of great help to me in getting everything working under Debian.

Booting

I booted from a USB key drive. I basically followed these instructions, using their partitionless installation; namely everything was put directly on /dev/sda rather than on /dev/sda1. Specifically:

You need to use a kernel with USB HID support or you won't have a keyboard once the Linux kernel boots. Of the two in the image I picked up only the newer one had this.

To boot the tc1100 from a USB key insert the USB key and then boot cold. Get into the bios by pushing the button on the jog dial. Now the USB key will appear in the hard drive section of the boot order selection menu.

Setting up the pen

I followed these instructions. If your kernel is older than 2.6.11 you'll need to go there to get the right patches, and presumably newer patches will be there in the future. The ones linked below are for 2.6.11.

First get and apply the first and second kernel patches to get the wacom_acpi module. I missed the second patch and ended up commenting out some ifdefs in the kernel directly instead, so I can't personally vouch for it.

Now get the Debian package wacom-tools. This gives the parts of the linux wacom project drivers that will be useful. The linux wacom project is also a good source of information if anything goes funny.

Next modprobe wacom_acpi.

Everyone else with this tablet seems to have the tablet show up on ttyS4. For some reason my tablet shows up on ttyS14. I discovered this using setserial -a -p /dev/ttyS* and noticing that ttyS14 was a little different from the others. ttyS1 was also a bit different as that's where the IR shows up. Along the way to figuring this out I disabled the IR in bios since I wasn't particularly interested in it anyway, but that shouldn't be necessary.

Once you have the right serial port

Notice that when I did this with the IR's port, /dev/ttyS1, wacdump found the tablet, but none of the values would change on using the pen.

Finally configure X to see the pen. I copied my changes from those that worked for someone else just changing /dev/ttyS4 to /dev/ttyS14. There are two changes to make: add two InputDevice sections, more details; and add two lines to the ServerLayout, more details.

Setting up the wireless

There are two steps to this. First to be able to turn on the wifi get this kernel patch. The resulting module will be called tc1100-wmi. Then

Next get the ipw2100 module for the wireless itself. There is a Debian package, ipw2100-source, for this but I didn't use it because I wasn't using the Debian kernel building tools. I did however get the Debian wireless-tools package.

Either way get the firmware, untar it and put all 3 files in /usr/lib/hotplug/firmware/. Then insert the ipw2100 module, however it was created, and iwconfig should show the wireless. All that remains is the usual networking fiddling.

tc1100-wmi could only turn the wifi off properly if the ipw2100 module was uninserted.

Here are some instructions concerning the ipw2100 module using the Debian package.

Fixing text mode

To stop text mode from being terribly distorted use the vesa framebuffer (which was already in my kernel) and add vga=792 to the end of the appropriate kernel line in /boot/grub/menu.lst.

Software keyboard on login

To get a software keyboard to appear in gdm insert the line /usr/bin/X11/xvkbd & just before the exit 0 in /etc/X11/gdm/Init/Default.

Side keys

Get evrouter, there is a deb available. Not necessary but also very useful is a program that reads the /dev/input/event* files.

My side keys appeared in /dev/input/event2, as can be determined by catting the files. Originally in text mode I got an "Unknown key pressed" message on using the side keys other than the return key from the jog dial, and evtest.c saw these events only as MSC events, not as key events while xev and evrouter didn't see them at all.

The first thing to do is to map these events to keycodes following the instructions in the "Unknown key pressed" error message.

I chose 230 through 235 because they didn't already map to anything and were reminiscent of the 130 through 135 that appeared as the MSC values using evtest.c

Now the events appear as key events in evtest.c and appear in xev and evrouter. Use evrouter to map the key events to standard key events or to whatever commands are appropriate. My .evrouterrc and another example.

Screen rotation

On the fly screen rotation isn't supported in XFree, as they only support the resizing part of the randr extension. The solution will be to switch to X.org but I haven't done so yet. Other people have however had good success using Ubuntu's X.org packages with Debian. However restarting X in rotated mode is available by editing /etc/X11/XF86Config-4.

By making a second ServerLayout section with Identifier "Rotate" which refers to the modified versions of all the sections changed above the command startx -- -layout "Rotate" will give a rotated X while startx will continue to behave as usual. My XF86Config-4 illustrates this.

It is also possible to rotate clockwise.

Not working or unknown

The following things are not working or not known to be working. Some of these things do work for other people.

Pen activated buttons
I'd like to get the three pen activated buttons working. I'm not sure where to start with this and would welcome advice.
ACPI
I can't suspend yet, S1 doesn't even appear in my /proc/acpi/sleep, and I do have acpi_sleep in my kernel. I'm new to acpi, but other people are having similar problems with acpi on this machine.
IR
I'm not very interested in the IR and have turned it off in the bios
External monitor
I understand the proprietary nvidia driver is necessary for this, but I haven't tried.
PC card
I have every expectation that this will work without problem but I haven't had a use for it yet.
SD
I don't have any SD cards at the moment.
Bluetooth
I don't have anything else that talks bluetooth.
Modem
I also have no use for this at the moment.