Andy Schofield - Linux on an HP TC1100 Tabletpc
This records my experience in using linux on a tc1100. Any use you make of these resources as done purely at your own risk.
News
- 5th July 2005: Now running CentOS4 as a long term solution to the upgrade treadmill. Specific instructions for hardware setup are here.
- 21st Mar 2005: updated the patches for linux 2.6.11.
- 2nd Nov 2004: updated the patches for linux 2.6.9.
- 28th May 2004: Installed Fedora Core 2. Did fresh install. ACPI works much better out of the box (it uses a 2.6 kernel). Have still compiled a custom kernel to get the pen to work using the patches below.
- 11th May 2004: RF kill switch can be toggled. Big thanks to Jamey Hicks.
- 7th May 2004: Pen is now working! Big thanks to Chris Kemp for this.
- 14th April 2004: Kernel 2.6.5 recognizes acpi battery and allows the wireless/bluetooth to work (inheriting the RF status from windows).
- More news...
Quick links to kernel patches
- Patch to enable the wacom pen: linux-2.6.11-wacom_acpi.patch (more details).
- Additional patch for post 2.6.10 kernels: linux-2.6.11-wacom_acpi_enable_future_usage.patch.
- RF switch on the TC1100: linux-2.6.11-tc1100-wmi.patch (more details). An alternative has been provided another user which I have not tested: linux-2.6.11-tc1100-wmi-jsw.patch
The specification of the tc1100
The TC1100 is a centrino tabletpc capable of acting as a hybrid laptop with a detachable keyboard and pointer. The full spec and details can be found here.
What works and what doesn't under linux
| Device | My Current Status | Comments |
| Graphics card | Works |
Some flickering issues when switching back to VGA mode after an X session making the VGA unusable afterwards. This can be cured by using framebuffers (see below). Note: Issue is solved using nvidia drivers release (5336). |
| Sound card | Works | Module i810_audio and ac97_codec under 2.4 kernels and snd-intel8x0 under 2.6 kernels. |
| Keyboard and pointer | Works | A usb-hid device (Jing-Mold USB K/B+Mouse) |
| Ethernet card | Works | Broadcom - kernel module b44. Alternatively the broadcom supplied one (bcm4400) which seems to work better if you have updated the broadcom windows drivers. |
| WiFi (wireless) | Works | Requires kernel 2.6.5 or greater. (For more details see below). |
| Bluetooth | Works | See above. Device is recognized and works. |
| Pen | Works | Needs a kernel patch to initialize the device under acpi. See below for the details. |
| InfraRed | Works | This uses the nsc-ircc module. Note setserial finds /dev/ttyS1 first and this needs to be undone before loading the module (see below). |
| ACPI | Mostly works | This is off by default in FC1. Activate it by adding acpi=on to the kernel boot parameters. It will then power down correctly. Battery status requires kernel 2.6.5 or greater. ACPI sleep states suspend, mem and disk are not stable (suspend and disk restart immediately, and suspend stops but does not restart correctly). |
| Modem | Works | The newer smartlink drivers (for example, 2.9.6) work perfectly. Just follow the README. |
| Jog dial | Works | At least it works as an up/down arrow and enter key. |
Installation of Fedora Core 1
Creating partitions. I
use partitionmagic to shrink the single 37GB NTFS partition that this machine
comes with. Now, on arrival my machine had a filesystem error which caused
problems for partitionmagic. Use the command prompt under XP to check your
C drive:
chkdsk c:
If this reports any errors,
run it again but now with the option to fix. It will run check and fix the
file system at the next reboot:
chkdsk c: /f
I had to
do this four times before the error (in the volume bitmap file) was fixed.
Then you can resize the partition.
Performing the installation: I used a Sony MPD-AP20U usb2 portable CDRW/DVD. The tablet booted off the installation disks without problems. However, if you perform a graphical install, the keyboard and pointer no longer works. The tablet buttons (but not pen) do work and you can get along way in the installation using the jog dial - until you have to enter the root password and then you are stuck. So you need to do a text install. This works without problems.
Getting the pen to work: While there have been reports (Mika Salminen) that this works out of the box with XFree version 4.3.0.1, I have had to perform the following steps to get the device working.
- Download and apply
this kernel patch (based on
a driver from Chris Kemp). The patch is for kernel 2.6.11. You also need
to apply this
patch for post 2.6.10 kernels.
[There is an older patch made against kernel 2.6.9 and an even older patch made against kernel 2.6.6 which should work with 2.6.5].
You need to select the wacom_acpi driver in the list of serial drivers. - Install the linuxwacom drivers.
- To test the pen is
working:
- Load the module
(
modprobe wacom_acpi) if it is not compiled into your kernel. - The port
needs some more initalization which can be achieved by doing
echo "1" > /dev/ttyS4 - Then execute
wacdump -f c100 /dev/ttyS4
- Load the module
(
- To get the pen to work as a point device you need to modify your /etc/X11/XF86config file as described in the linuxwacom howto. There are two steps: add the input device and tell the server to use the devices.
- Getting the VGA screen to work: (Update: nvidia drivers release 5336 solve this issue making the rest of this section unecessary unless you want a 1024x768 text mode). While the VGA screen works initially, it flickers and becomes unreadable on quitting the X-windowing system. Restarting X and/or using an external monitor worked fines. Using the nvidia drivers makes no difference and it looks like a refresh rate under VGA is too high. The only way round this I found is to use VESA framebuffers (and even then not all modes avoid this problem). If you compile only the vesafb modules into the kernel and add vga=792 to your kernel boot parameters you will get a 1024x768 screen with 24bit colour and the mode will work on leaving X. Other VESA modes exist but some seem to have the flickering problem.
- My XF86Config file
for screen rotation. It was based on that used by many on a TC1000.
- The default screen
layout is in landscape mode using the nvidia drivers with the pen enabled
as an input device. This is started using
startx - The alternative
is the screen in portrait mode using the nv drivers (nvidia
ones won't do rotation). Using these drivers will give the VGA flickering
issue discussed above unless you use framebuffers. The pen is also
enabled and some calibration has been done but your mileage may vary.
This
is started
using
startx -- -layout "Rotate" - The randr driver which allows the screen to be rotated while X is running only works with the Vesa driver and I have not bothered with this. Enabling the option seems to break the nv driver rotation.
- The default screen
layout is in landscape mode using the nvidia drivers with the pen enabled
as an input device. This is started using
About
the wireless device:
Its an IntelPro LAN 2100 mini PCI card which is not supported in Fedora
core
but there are various drivers now available.
Some use the windows drivers.
I have tried:
- the linuxant one (it finds and apparently initializes the card but no power to the device. (Version 1.52).
- ndiswrapper. Similar to the above. (Version 0.5).
There is now an intel supported development driver which is in early stages but is more promising for the long run. Versions 0.40 and later seem to work without problems.
However, for any of the above drivers (and the bluetooth) to function there is an RF kill switch which needs to be switched on. This is what the Qmenu in windows does for you. Your kernel also needs to have enough ACPI functionality to inherit whatever state the RF kill switch was in under windows. As of writing this now works in vanilla kernel 2.6.5 but not earlier kernels.
RF
switch: Alternatively you can download and apply the following
patch to a 2.6.9 kernel - (it should still work for 2.6.11 kernel but
for older kernels try
this one). This is based
on a driver written by Jamey Hicks
and you will find it in the ACPI section of the kernel configuration. With
this driver loaded you can toggle the state of the wifi in linux using the
command:
echo "on" > /proc/acpi/wmi/WMID/wlan
to swtich it on and you can switch
it off with the obvious
echo "off" > /proc/acpi/wmi/WMID/wlan
Windows will inherit the state you leave the wifi in under linux.
Getting the Infrared
to work: You need to disable the serial port found on /dev/ttyS1 by adding a
line like
setserial /dev/ttyS1 uart none
somewhere in your init scripts. (In Fedora
core you can create a file /etc/rc.serialconf which contains this line. It
is then sourced in /etc/rc.sysinit.) You then need to load the module. You
can do this with
modprobe nsc-ircc
irattach irda0 -s
irdadump will then show infrared devices in the vicinity.
Diagnostic information
Here is how the fedora core 1 kernel sees this machine as well as some other diagnostic info:
- Output of dmesg for fedora core 1 stock kernel.
- Output of lspci -v for fedora core 1 stock kernel.
- Output of dmesg for kernel 2.4.25 with acpi patches (20040220) and acpi debugging on.
- Output of lspci -vv for kernel 2.4.25.
- Output of acpidmp for kernel 2.4.25
- Output of dmidecode for kernel 2.4.25
Older news
- 12th March 2004: tried out the ipw2100 wireless driver but "Radio disabled by RF switch".
- 8th March 2004: Infrared works, the modem works and I have cured the flickering issue in console mode. Not much other news. I am using 2.4.25 and will wait until Fedora Core 2 comes out before switching properly to the 2.6 kernel.
- 16th December 2003: Tried out kernel-2.6.0-test11 in an attempt to get more devices working but this produced no more functionality than I had with the out-of-the-box FC1 below. I am in the same position that I was earlier - it is a functioning fine as a laptop but without many whistles and bells.
- 29th November 2003: Installed Fedora core 1. No customizations done yet and that is unlikely to change until after term finishes.
Useful Links
Other sites that may help include:
- TuxMobil - Linux on laptops, PDAs and mobile phones
- Linux on a TC1000 (the previous version of the TC1100. Note it has a transmeta processor unlike the TC1100 which is centrino).
- Tabletpcbuzz is a useful discussion group for tabletpc related issues.