HP tc1100 laptop!
I am now the proud owner of a brand new (if not a little outdated) HP tc1100 laptop. I had real troubles finding this laptop originally as the model is now about a year out of production - but thanks to eBay I managed to find it again and I got one at what I think was a reasonable price. I've always been interested in getting a tablet pc, if not for anything else just to see how well Linux is supported in these devices. This is a document to describe my experiences with this.
Purchasing decisions
I was initially interested in the tc1000 because of the Transmeta chip (which to the best of knowledge is well supported by Linux - and was worked on by Linus himself), but I couldn't find one in good enough condition. I decided to get the tc1100 which has the Intel Centrino chip (1.2 Ghz which can be stepped down to 600Mhz) which is roughly the same speed as my old PIII! The tablet comes shipped with a 60Gb harddrive and 512Mb RAM (can be upgraded to 2Gb I think). This tablet has the added benefit of being able to detach from the keyboard, the only disadvantage of this design is that it can't be folded up in a clamshell style laptop which means that it doesn't have the protection of the casing - I'll update this if it becomes a problem.
The main event
The first thing that I needed to do was to shrink the size of the Windows partition so that I could install Linux (I know, I should completely get rid of it - I might in the near future), I decided to cheat doing this and I managed to get my hands on a USB cdrom but there are other options - for example, partition magic is a commercial partition shrinking package but there are good Linux tools available as well. After I repartitioned it (I decided on 20Gb for Win, 38Gb for Linux and a 2Gb Swap but whatever floats your boat), I then started to install Linux. At the moment I am a fan of Ubuntu for my desktops and Debian for my servers. I downloaded the latest version of Ubuntu (currently 6.06 Dapper Drake - currently ships with Kernel 2.6.15-23-386) and went about installing it, this was probably the easiest part of the whole procedure (I believe that the partitioner in Ubuntu can also resize the Windows partition for you). The install takes about an hour and at the end of that, I had a fully functioning dual boot system!
Pen
A tablet is no good without being able to use the pen, fortunately this is reasonably easy to install using the wacom drivers. Simply do a
then do a reboot (or a Ctrl-Alt-Backspace) to reload X, you should have basic functionality for the pen now but in order to get the pen button to do a right click, you need to edit your /etc/X11/xorg.conf to this:
Graphic card
Unfortunately it isn't possible to get the tablet to rotate using the default graphics driver (nv) but fear not, using Nvidia's drivers it is possible to get the screen to rotate. This was where I hit my first major problem, I decided to install the Nvidia driver from the Nvidia site (currently version 1.0-8762, available from here under Linux, FreeBSD and Solaris drivers). This completely trashed my graphics card and I ended up having to revert to the default nv driver to get X working again, I decided to try removing this and doing an installation by doing a
but I kept getting an error when I tried to fire up X that went something along the lines of
API mismatch the NVIDIA kernel module has version 1.0-7174 but this X module version ...
I tried everything that I could think of the get rid of the Nvidia drivers, but in the end I did another rebuild
. This time, when I did it I ended up not install the nvidia drivers but I just did the
and then edited my /etc/x11/xorg.conf to read
The last line allows rotation. Here is a copy of my xorg.conf
Screen rotation
I thought this needed it's own section because you need to change the rotation of the screen and also how the pen is handled. I can't remember whether or not I needed to do an apt-get or not (I think not), but you need the program xrandr to rotate the screen without having to restart X.
As you can see, when you run xrandr it gives you a list of settings the one that we're interested in is the "Rotations possible" setting - under the nv driver it only gives you normal (which means that it can't rotate the display). If this is what you get then you can continue, otherwise you need to somehow get the graphics card working correctly. In order to rotate the tablet you need to issue the following command
but you'll find if you do this that the pen doesn't do what you expect it to, so do a
to get the screen back to normal. The wacom tools package has a command to help, so in order to rotate the display and get the pen to work, you need to issue the following 4 commands:
In order to rotate it back, you need to do
Luckily, someone has written a nice application to do this (which I'll talk about later).
Networking
Both wireless and wired network work out of the box with Ubuntu. The reason that the wireless works is because the default kernel has the madwifi drivers built into the kernel. I have a vpn that works over wireless because I don't trust WEP or WPA so I encrypt all my data, as a result I need to run the openvpn client after the wireless network comes up. This can be done by editing the /etc/network/interfaces file
My config file for this looks like:
wifi.minigeek.conf
I'll post more about my wireless network soon.
Speed stepping
The problem with a laptop with linux is that it tends to chew through more power than under Windows. The trick to stopping this is to drop the CPU down in speed when it's idle. This can be done with two utilites got through apt-get
This seemed to work when I first installed it but when I rebooted, speed stepping seemed to stop working. I narrowed the error down to the fact that the modules weren't automatically loaded, so I had to do this manually by editing the /etc/modules file
Side keys
There are a couple of ways of dealing with the side keys on the tc1100 (for example Q, TAB, ESC ...), you can remap gnome keys (or at least people say you can) but the problem is that the keys are also mapped to other keys on the keyboard. I finally decided on using evrouter which can deal with the events triggered on the side of the screen.
The first thing that you need to do is to run evrouter -d on /dev/input/event0 (there appear to be 3 events, but 0 is the side of the screen). You'll end up with data like this:
As can be seen, the keys map as follows:
Display key = key/149
Q = key/148
tab = key/15
CTRL+ALT+DEL = key/111
esc = key/1
toggle up = key/104
toggle in = key/28
toggle down = key/109
You then need to edit a
I then created a simple script (and I mean really, really simple)
and added it to all of the runlevels by using update-rc.d.
References
http://groundstate.ca/TC1100
http://biomech.iet.unipi.it/Members/raphael/vaio/vaio_s5m_config
