Ubuntu Linux on HP Touchsmart tm2 with vgaswitcheroo

I’ve been among the owners of this strange laptop for more than an year, and I only managed some days ago to install Linux on it, mainly because of the hybrid graphics and the cumbersome partition layout. I hope this post can still be useful to someone, despite the laptop was released some time ago. I also apologize for my English.
This guide will list the main steps I took to have Linux on my laptop. I did this with ArchLinux and Linux Mint 12 (Ubuntu 11.10). Later on, you can find links to other helpful guides and resources that provides (and provided me) information about the configuration steps.

The main problems I came across are:

  • Wubi didn’t work, neither its Linux Mint version. The installation log weren’t useful, and I got the same problem while trying to install linux on the Hp laptop of a colleague of mine, so I think the problem is bound to my machine.
  • There’s no room for the Linux partition, because of the four-partition limit of MBR partition layout.
  • Linux has serious problems with the Intel-Ati Hybrid Graphics, and if not configured will sometimes fail at boot, or boot with the backlight off, your computer will have a significantly shorter battery life and will get hot. This shouldn’t worry you mutch, I don’t think this is a problem unless you are going to use it for hours before fixing it. The installation has to be done in this conditions though.
  • Some minor issues regarding, for example, right click.

Alright then!


The partitions you’ll find on your Tm2 are:

| Windows Boot | Windows | Recovery | HP_TOOLS |

We need to delete one, so that we can create an extended partition taking space from the “right” part of the Windows one.

I think the best choice (at least for doing as less work as possible) is to get rid of HP_TOOLS, which is only useful to skin some UEFI diagnostics screens you can access at boot. You’ll be able to retain these functionalities, though, simply making a partition with the same name and contents in another part of the disk.

You can read more about the partition here (or elsewhere on google):

This was enough for me, and since PC’s are to be used, I procedeed formatting. After that, I can still access the recovery screens pressing F2 at boot (it seems from the manual page that’s the only use of HP_TOOLS partition).

Backup the whole content of the HP_TOOLS partition on a folder you’ll put in C or in the recovery partition. We’ll put it’s content back once we finish formatting. That done, from a partitioning program of your choice (for example the free Eaesus Partition Master on Windows) we need to perform the following steps:

  1.  delete the HP_TOOLS partition. Note that we’ll simply leave there unused the 100mb the partition occupied.
  2.  resize C partition so you have unused space on its right.
  3.  Create new partitions in that free space as logical ones. Linux doesn’t need to run from a primary partition, and we’ll take advantage of this capability to create the following logical partitions :
    • a Linux partition, either ext3 or ext4 (it’s more like a placeholder as you will probably format it again installing Linux).
    • a 1GB HP_TOOLS FAT32 partition
    • a 2GB Linux Swap partition.
    • other data partitions as you like.

(i don’t think the order matters, but I’d personally keep the Linux and HP_TOOLS partition close to the beginning of the free space)

Once you created the partitions, you can place the files you backed up in the new HP_TOOLS partition, and reboot to check (can’t see a reason why it shouldn’t) that F2 still works.


We are now ready to install Linux. Put your favorite distro on a pendrive with Unetbootin or Universal Usb Installer and try installing it. The boot may fail due to the Graphic Card (we can fix this issue only after installation), so be prepared to try a couple of times. If you get a black screen after boot, you can try raising the backlight intensity from the keys on the keyboard.

Once installed

I got no wi-fi out of the box, so you’ll probably have to connect your PC to internet through an internet cable. Once you are on the net, you’ll have to:

  • Be careful not to install the Ati Restricted Drivers, or they will cause your computer to fail on every boot.
  • Install drivers for the wi-fi module

Then we’ve got to take care of the Graphic Card. Before starting, you may want to check:

Below I’ll write what I actually did to configure Ubuntu on my laptop:

You can check the status of your Graphic Cards opening a terminal and giving:

sudo cat /sys/kernel/debug/vgaswitcheroo/switch

followed by your password. It should show you something like this:

1:DIS: :Pwr:0000:01:00.0

IGD indicates the low-power intel card, DIS the Ati one.
The “Pwr” part you can see in both lines means that both cards are powered on. In the page https://help.ubuntu.com/community/HybridGraphics you can find various commands to switch between the cards.
The easiest thing to do is disable the Ati card at boot. Open a text editor as root and paste the following into the file /etc/rc.local , before the “exit 0” line.

modprobe radeon
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
echo 6 > /sys/class/backlight/acpi_video0/brightness

The first line ensures the radeon module is loaded (probably really needed only if you blacklisted it), the second one switches off the currently unused card, the third automatically set the backlight to a medium level, should your pc boot with the backlight off.

Restarting your pc and running “sudo cat /sys/kernel/debug/vgaswitcheroo/switch” again should give you the following:

1:DIS: :Off:0000:01:00.0

If you got the same output, you can now happily use your PC with Linux :)

Minor issues

To right-click, you should tap (not press) the touchpad in its very bottom-right corner. You will probably want to change this through synaptics utilities. On Gnome and KDE I was able to obtain a comfortable right click with contemporaneous two or three fingers tap.

I did not test the hdmi. The touch and pen input works out of the box (though you may want to rotate the pen input when rotating the screen as described in the links above)