September 22, 2006

Kubuntu not quite right for a Tablet PC

Author: Jeremy Turner

Linux is known for running well (or at least running) on older hardware and exotic platforms. I attempted to install Kubuntu Dapper Drake (6.10) on a Compaq TC1000 Tablet PC. I discovered that while Linux may install on nearly every platform, and run faster than its proprietary competition, it may not always be the best-fitting choice for every environment.

The TC1000, released back in 2003, comes with a Transmeta Crusoe processor running at 1.0GHz, 384MB of RAM (mine was upgraded from the 256MB on-board), a 30GB hard drive, 802.11b wireless, and an Intel e100 10/100 NIC, along with a 10.8-inch display with a pen digitizer. Another neat feature is a set of buttons along the top (in 1024x768/landscape) or right (in 768x1024/portrait) side of the screen that allow quick access to up/down, Ctrl-Alt-Del, Enter, Esc, Tab, and two configurable buttons, one marked with an email icon and the other a Q. I have found that the up/down toggle key (which doubles as an Enter key by pressing the switch in) is extremely useful for the tablet's best use: Web browsing. In portrait mode, the tablet excels at being a great form to view Web pages. The only problem is that most Web pages do not read well at 768 pixels wide. Many printer-friendly versions of pages seemed to work, however.

Enter Kubuntu

Pre-installed with the tablet was Windows XP Professional Tablet Edition. It ran too slow for my tastes, and I also wanted to install Linux. I'm a recent Kubuntu convert, so I chose the Dapper Drake release for my install.

I copied the Kubuntu 6.06 install kernel and initial ramdisk file to a USB flash drive, onto which I previously installed GRUB to the master boot record. With an extra parameter, the Kubuntu install kernel downloaded the installation application, and then ran the normal network install from there. Installing Kubuntu on the TC1000 was relatively painless. The major challenge was the post-installation procedure of configuring all of the tablet's useful features.

Once the install finished, I had a functional Linux machine. Kubuntu recognized that I had an Nvidia GeForce 2 Go graphics card and loaded the appropriate open source Xorg module. It identified the USB keyboard that attaches to the edge of the tablet. It loaded appropriate kernel modules for the Intel e100 NIC and for the VIA AC'97 on-board sound system. I set up PAM to authenticate to my OpenLDAP server and then to mount my home directory via NFS.

Next, I had to tackle the process of installing all the tablet extras, including the pen digitizer, 802.11b wireless, and those cool extra buttons on the side of the tablet.

The wireless card came first. The card is an Atmel model that requires loadable firmware. On my first attempt I downloaded the Atmel firmware and ran the install. Nothing broke, but then again, there were no signs that I had a working wireless card either. I eventually figured out that Kubuntu had the firmware available and ready to apt-get. But after installing the package and loading the atmel_pci module with modprobe, the wireless interface still was not configured. I eventually added a pre-up statement in /etc/network/interfaces, although that's probably not the preferred way to do things, and the wireless started to work. I don't know if it was the pre-up statement or whether I caused something else to work right. To my wife's delight, I was able to unplug the Ethernet patch cable which had previously snaked its way through the center of our living room.

Next to knock out was the pen digitizer, because a tablet is not really fun when you can't write on the screen. Installing the driver for the pen digitizer was actually the easiest part of the whole post-install process. I downloaded the kernel module source for the digitizer (fpi2002), and it integrated with my running kernel. Next, I downloaded and compiled the tc1k Xorg driver, which allows the device to pass mouse events to Xorg. I also added the line setserial /dev/ttyS0 autoconfig to rc.boot to automatically configure the /dev/ttyS0 serial port. As part of this process, I also installed the non-free Nvidia video driver, and I did see some improvement in graphics ability.

What I really wanted to do was utilize the screen rotation feature. Windows XP Professional Tablet Edition would seamlessly rotate from landscape to portrait. I found this handy, because sometimes it was more convenient to turn the screen and slide out the attached USB keyboard to enter text. Entering a lot of text via a screen keyboard or handwriting is not easy, especially when you might not be able to see what text you are entering, such as in a password text field. Sometimes, I also would find it nice to switch from a landscape orientation (say, for example, on my desk) and want to rotate to a portrait orientation while just sitting and reading, using the up/down toggle key.

However, the pen digitizer under Kubuntu wasn't made aware that the screen had been rotated, so when in a rotated state, the pen would give values that were 90 degrees off of where they should have been. The workaround was to have multiple named screens with the xorg.conf file, and to start Xorg with startx, passing it the name of the screen with the particular layout that you want. Of course, restarting the Xorg server would kill any running X processes on that display. This was one of my major stumbling blocks.

The final piece to set up was the special tablet keys. This took me the longest, because I had never worked with configuring custom keys in Linux. On startup, I set key codes to the special keys and loaded a map with some kernel key names. Then, in KDE, I was able to assign key names to certain events (such as KMail to the key with the email icon, and switching windows to the Q key).

I was extremely disappointed in one item, though. In Windows XP, when you hold the up/down toggle in one position (such as down, to scroll down a Web page), the OS would consider that to be the same has holding down the down-arrow key. However, in Kubuntu, that was treated as only one press of the down arrow key. If I wanted to scroll down a longer Web page, I had to continually press down the toggle switch in order to get the page to scroll. This was a deal-killer for me.

I also couldn't find any good looking on-screen keyboard applications. There was a generic X keyboard (xvkbd), which looked OK, and another called gok, but neither of them integrate into the look and feel of the OS as well as the keyboard in Windows XP does. Also, when maximizing an application in Windows XP, the on-screen keyboard would make sure the application didn't draw over the writing area (with the exception of Remote Desktop Connection).

Back to Windows XP

I finally decided that a slower, non-free OS with decent applications and a little better look-and-feel and much more functionality would be worth going back to, and reinstalled Windows XP Professional Tablet Edition. However, that process wasn't seamless either. I had an external USB CD-ROM drive, and popped in the CD. It wouldn't boot. I checked the BIOS boot order, and there was no CD-ROM drive listed. How odd! My BIOS was up-to-date.

After brainstorming for several days, I was able to enlist a friend with a Microsoft Remote Installation Services (RIS) server to help me reinstall a working OS. I used a USB flash drive to copy over the drivers so that I could get network connectivity again. And I installed Firefox, Putty, and all of my favorite Windows open source utilities. If I am going to use Windows XP Professional Tablet Edition, at least I'll have some useful applications on it!

Click Here!