Set up Ubuntu 9.10 Karmic on the HP TC1100
With this tutorial you will be able to make better use of the tablet's features than you would on an out-of-the-box Ubuntu installation.
This guide is for Ubuntu/Kubuntu/Xubuntu 9,10 "Karmic Koala" and other Ubuntu derivatives. If you are not using gnome, replace gedit with kate, mousepad, or whatever text editor your distribution uses.
Click here for the Ubuntu 10.04 guide!
Before we begin
- I am not responsible for anything you do with your computer, including following this tutorial.
- Copy a command by highlighting it and hitting ctrl+c then paste it into a terminal with ctrl+shift+v.
- If you need help or have comments, use this forum thread.
comments look like this
- step-by-step instructions look like this
terminal commands look like this
configuration file text looks like this
First things first
Apply all updates through the update manager
- Open System > Administration > Update Manager.
- Click install updates
Ubuntu 9.10 now makes it easy to login without the keyboard attached because the on-screen keyboard is now integrated into the login menu. Just activate it from the login screen by opening the preferences menu from the icon at the bottom.
Installing NVIDIA graphics driver
The proprietary NVIDIA driver is required for screen rotation, special effects, etc.
- Open System > Administration > Hardware Drivers.
- Click activate.
- It will download and install the driver; be patient.
- Reboot.
Fixing the stylus and graphics
The following xorg.conf will allow for screen rotation.
sudo gedit /etc/X11/xorg.conf
- Replace everything in the file with the following text:
Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" DefaultDepth 24 Option "AddARGBGLXVisuals" "True" EndSection Section "Module" Load "glx" EndSection Section "Device" Identifier "Configured Video Device" Driver "nvidia" Option "NoLogo" "True" Option "RandRRotation" "True" Option "NvAGP" "1" Option "RenderAccel" "False" EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" EndSection
- Save and close.
This will fix the stylus right-click and rotation.
gedit /usr/share/hal/fdi/policy/20thirdparty/10-linuxwacom.fdi
- Replace everything in the file with the following text:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- this is probably a bit imprecise -->
<deviceinfo version="0.2">
<device>
<match key="info.category" contains="input">
<match key="info.product" contains_outof="Wacom">
<merge key="input.x11_driver" type="string">wacom</merge>
<merge key="input.x11_options.Type" type="string">stylus</merge>
<append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
<append key="wacom.types" type="strlist">eraser</append>
<append key="wacom.types" type="strlist">cursor</append>
<append key="wacom.types" type="strlist">pad</append>
</match>
</match>
<match key="info.capabilities" contains="serial">
<match key="@info.parent:pnp.id" contains_outof="WACf001;WACf002;WACf003;WACf004;WACf005;WACf006;WACf007;WACf008;WACf009;WACf00a;WACf00b;WACf00c;FUJ02e5">
<append key="info.capabilities" type="strlist">input</append>
<merge key="input.x11_driver" type="string">wacom</merge>
<merge key="input.x11_options.Type" type="string">stylus</merge>
<merge key="input.x11_options.ForceDevice" type="string">ISDV4</merge>
<merge key="input.x11_options.Button2" type="string">3</merge>
<merge key="input.device" type="copy_property">serial.device</merge>
<append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
<append key="wacom.types" type="strlist">eraser</append>
<match key="@info.parent:pnp.id" contains_outof="WACf008;WACf009">
<!-- Serial tablets with touch capabilities -->
<append key="wacom.types" type="strlist">touch</append>
</match>
<match key="@info.parent:pnp.id" contains_outof="WACf008">
<!-- Serial tablets that operate at higher baud rate -->
<merge key="input.x11_options.BaudRate" type="string">38400</merge>
</match>
</match>
</match>
<!-- N-Trig Duosense Electromagnetic Digitizer -->
<match key="info.product" contains="HID 1b96:0001">
<match key="info.parent" contains="if0">
<merge key="input.x11_driver" type="string">wacom</merge>
<merge key="input.x11_options.Type" type="string">stylus</merge>
</match>
</match>
</device>
<!-- Match the Wacom Bluetooth A5 pen tablet -->
<device>
<match key="info.capabilities" contains="input.mouse">
<match key="info.product" contains="WACOM">
<match key="info.product" contains="Tablet">
<merge key="input.x11_driver" type="string">wacom</merge>
<merge key="input.x11_options.Type" type="string">stylus</merge>
<append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
<append key="wacom.types" type="strlist">eraser</append>
<append key="wacom.types" type="strlist">cursor</append>
</match>
</match>
</match>
</device>
<device>
<match key="input.x11_options.Type" contains="eraser">
<merge key="info.product" type="string">eraser</merge>
</match>
</device>
<device>
<match key="input.x11_options.Type" contains="stylus">
<merge key="info.product" type="string">stylus</merge>
</match>
</device>
</deviceinfo>
- Save and close.
You must reboot for changes to take effect.
Installing useful applications
Cellwriter is a handwriting application used for entering text using the stylus.
Xournal is a note-taking application.
Xbindkeys is used for making the stylus buttons work.
Install them with this command:
sudo aptitude install cellwriter xournal xbindkeys wacomcpl
Make xbindkeys start up automatically.
- Open system > Preferences > Startup Applications.
- Click add.
- Enter xbindkeys in each box.
- Click add.
- Repeat for cellwriter if you want it to start automatically.
Configure xbindkeys for custom key mapping
gedit .xbindkeysrc
- Enter the following text into the file:
"rotate" b:30 "xournal" b:31 "cellwriter" b:32 #"customcommand1" #c:159 #"customcommand2" #c:151
c:159 and c:151 are the Q and screen-switching buttons respectively. If you want to map them to a command, just remove the #s and enter your command in the appropriate spot.
- Save and close.
Other tweaks and fixes
**IMPORTANT** Switch to root so we can enter the following commands without worrying about "sudo" on each one.
sudo su
Load the tc1100 module needed for controlling the jogdial and wireless card status.
modprobe tc1100-wmi
echo "tc1100-wmi" >> /etc/modules
Allow the jogdial to control screen brightness.
This is the only way you can control screen brightness, so this is how I prefer to use the jogdial. If you don't do this step you can keep using it as page up and page down.
gedit /etc/rc.local
- Add this before exit 0:
echo 0 > /sys/devices/platform/tc1100-wmi/jogdial
- Save and close.
Fix stylus calibration after resuming from suspend.
gedit 10_calibrate.sh
- Enter the following text into the file:
#!/usr/bin/env bash
FILE=/tmp/calibration
XSETWACOM=/usr/bin/xsetwacom
function store_value()
{
value=`$XSETWACOM --display :0.0 get $1 $2`
echo "$XSETWACOM --display :0.0 set $1 $2 $value" >> $FILE
}
# Store calibration of all devices
function store_devices_calibration()
{
>$FILE
store_value "stylus" "TopX"
store_value "stylus" "TopY"
store_value "stylus" "BottomX"
store_value "stylus" "BottomY"
chmod +x $FILE
}
# Store calibration of all devices
function restore_devices_calibration()
{
if [[ -e $FILE ]]
then
( sleep 2; $FILE )&
fi
}
MODE=$1
case "$MODE" in
hibernate|suspend)
store_devices_calibration
;;
thaw|resume)
restore_devices_calibration
;;
*) exit $NA
;;
esac
- Save and close.
chmod +x 10_calibrate.sh
mv 10_calibrate.sh /etc/pm/sleep.d/
Make a screen rotation script.
gedit rotate
- Enter the following text into the file:
#!/bin/sh
if [ -n "$(xrandr | grep 768x1024)" ]; then
xrandr -o normal
xsetwacom set "stylus" Rotate NONE
else
xrandr -o left
xsetwacom set "stylus" Rotate CCW
fi
- Save and close.
chmod +x rotate
mv rotate /usr/bin/rotate
This will be used later on after we patch the drivers for the stylus buttons. You must have applied the above xorg.conf and installed the nvidia driver for it to work properly.
Prevent the screen from locking.
It sucks when the screen becomes locked, you don't have a keyboard attached, and you can't access cellwriter.
**NOTE: These commands must be run as your normal login user, not as root/sudo. So if you are in the terminal as root, just type "exit" or open a new terminal to run these.
gconftool -s /apps/gksu/disable-grab -t bool true
gconftool -s /apps/gnome-power-manager/lock/suspend -t bool false
gconftool -s /apps/gnome-power-manager/lock/hibernate -t bool false
Fix the headphone jack.
In the Sound preferences, make sure "jack sense" is enabled. Otherwise sound will still play from the speakers if you have headphones plugged in.
Other notes
Thanks to everyone who made this tutorial possible!
Bug reports:
Tablet input is screwed up after rotation and subsequent suspend/hibernate on thinkpad x61
TI PCI1620 SD card reader not working
[intrepid] suspend/resume with wacom pointers rotated loses calibration
[Hewlett-Packard HP Tablet PC TC1100] hibernate/resume failure [non-free: nvidia]
Tablet stylus right-click not recognized
Was this guide helpful to you? Please see how you can help us.