A Linux Tablet PC – Slackware 13 on the HP Pavilion tx2500

This post is a brief summary of how to get your Linux running on a tablet PC. We’ll be using the HP Pavilion tx2500 and Slackware13. These steps can be adapted for other tablets. They should be easier on distribution such as OpenSUSE or Ubuntu, where a lot of the system configuration is done automatically behind the scenes. Overall, you may find they all worked for you with minimal tweaking, or, that you could use one or 2 bits to help you where you got stuck.

This document will cover the ‘few’ bits that do not work out of the box with a pure GNU/Linux, mostly due to them being propriety hardware: Graphics (FGLRX), WiFi (Broadcom), Touch/Stylus (Wacom), Touchpad (Synaptics) and Sound (Intel HD). This how-to should leave you with a fully working tablet, minus a fingerprint reader.

1. ATi’s FGLRX:

ATi’s Radeon 3200 is a propriety chip-set, but the ATi drivers outweigh their open-source brother when it comes to 3D performance. Download the latest FGLRX driver from ATi, make the binary executable, and run it with the ‘–buildpkg Slackware/All’ flag. This will create a .txz package you can install with pkgtool. Run ‘aticonfig –initial’ and ‘ldconfig’ as root, and reboot. If FGLRX is not loaded, ‘modprobe fglrx’.

2. Broadcom’s WL:

Well, what can we say, Broadcom’s 4328 R3 wireless chip-set is also propriety hardware. To get your WiFi working, download the latest Linux STA 802.11 driver from Broadcom, unpack and compile with ‘make’. You must unload the ‘ssb’ module (if loaded), and you must load ‘lib80211_crypt_tkip’, before you may load the newly built wl.ko module with ‘insmod /path/to/wl.ko’.

3. Stylus/Touch and Touchpad

This part is not much different in practice, but very different in essence – we’ll be using opensource drivers from the Linux Wacom project. Download the latest LinuxWacom version from the Linux Wacom Project, and build with X.org support. Then place the HAL and UDEV rules along with the xorg driver at their designated locations:

$ ./configure --enable-wacom
$ ./make
# ./make install
# cp src/xdrv/wacom_drv.so  /usr/lib64/Xorg/modules/drivers/wacom_drv.so
# cp src/util/10-linuxwacom.fdi /etc/hal/fdi/policy/10-linuxwacom.fdi
# cp src/util/60-wacom.rules /etc/udev/rules.d/60-wacom.rules
# cp src/2.6.27/wacom.ko /opt/

Load the new module you made:

# insmod /opt/wacom.ko

Now, we have to modify /etc/X11/xorg.conf to let it know about those new inputs by adding new ‘InputDevice’ sections and adding them to ‘ServerLayout’. This involves identifying the correct /dev/input/event# for the touch, stylus and eraser. You can do it by watching the dump from each event file while (read: at the same time as) you  send input events by dragging the pen across the screen:

# cat /dev/input/event8

If you are running into difficulties with your xorg.conf, you can use this file for refrence: HP_Pavilion_tx2500.xorg.conf

Calibrate your tablet with ‘xwacomcpl’. Download and compile CellWriter for handwriting recognition.

Screen Rotation script:

Since this is a tablet, screen rotation is pretty handy. Because we’re using Wacom modules, we will also need to change the oriantation of the wacom devices. Basicaly, xrandr can be used in conjunction with xsetwacom to rotate the tablet and the screen together. Here’s how it works – the following lines will rotate everything “right”:

# xrandr -o right
# xsetwacom set WacomTouch rotate 1
# xsetwacom set WacomStylus rotate 1
# xsetwacom set WacomEraser rotate 1

You have to match the device name to the device identifier in xorg.conf, and use the right path for xsetwacom. Instead of “right” for xrandr you may use “left” “inverted” or “normal”, and instead of “rotate 1” for xsetwacom you may use 0 for normal, 2 for left and 3 for inverted. Most people script this together into something, like the example I made here: wacom_rotate.sh

4. Sound

This was the easiest bit to get working. All it took, is running alsaconf, and selecting the ‘snd-hda-intel’ option.

5. Automate

The easiest way is usually to put all the stuff that is not scripted on its own into ‘/etc/rc.d/rc.local’, or for some distribution ‘/etc/rc.local’ (That would probably include loading ‘wl.ko’ and ‘wacom.ko’).

I hope you found this helpful. Leave comments, or ask for help if you crashed your Linux following these instructions 😉



Filed under #!, Slackware

7 responses to “A Linux Tablet PC – Slackware 13 on the HP Pavilion tx2500

  1. Good work! How is your nano going?

    • Ernest Kugel

      Hi Ruben, thanks a lot for drop-by. My nano got updated to the latest firmware with some help from the mailing list, but as you noticed yourself the most exciting bit is still the dictionary 😉 I wish I had more time on my hands, I hadn’t ported ANYTHING yet…

      I’m also noticing “bad block” error when re-flashing, but that’s probably cheap hardware and not a real issue. Have you noticed any such yourself?

      I’ve also read about successfully running Debian on the Ben, did you have a chance to try it yet, I mean, if it’s even easily installable?

      • Hi Eric!

        I’ve had no problems so far with bad blocks. But it is probably a minor hardware error. In a hard disk it could be a problem, because bad blocks tend to “spread”, but it is not likely to happen in a SSD.

        I have read the instructions on Debian and they look easy, but have not tried yet, as I am in the middle of two ports to OpenWRT. Will probably try as soon as there are instructions to put it in a microSD and I have bought one 🙂


  2. I have a TX2510US (basically a TX2500). When I installed linux on it in the past it worked, but the fans ran full boar the whole time and the machine would get very hot! Have you had this problem?

    • Ernest Kugel

      I remember having this fan problem with something like Ubuntu 8.0x, but I did not have it with the 2.6.30+ kernels.

      The poor BIOS on the tx2500 has an “Fan always on” option that is set to on by default, you can set it to off.

      As for the heat, it’s a well known issue with this laptop with all operating systems:


      Once you setup power-management through KDE (or Gnome) and make sure the right setting in ATi Catalyst Control Center is set to power-save when unplugged — things get a bit cooler.

      Overall, my Slackware install ran cooler and longer (off battery) once I setup all the power saving settings.

  3. cycojesus

    You should make .SlackBuild to generate packages, it’d be cleaner and more maintainable (and it’s really not hard)
    Otherwise great job, as a fellow slacker looking at tablet-things I appreciate this very much.

    • Ernest Kugel

      Thanks a lot about the feedback, you are 100% correct about slackbuilds. I should probably post the packages as soon as I do that for people with a similar setup.

      I think it’s surprising how little setup tablets need even with Slackware, which does not target them.

      Unfortunately, the applications that use touch properly are still scarce and lacking (compared to their potential). We Linux users are still better off because we’re not stuck with the Windows Touch interface fiasco, but things could (and will) get better.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s