Linux on the HP/Compaq TC1100 Tablet PC

I purchased a HP/Compaq TC1100 tablet PC as a replacement for my TC1000, which had numberous techincal issues I didn't like, and problems running Linux quickly and easily. Since then, I have been helping to get Mandriva Linux 2006 as TC1100-friendly as possible. Things are almost all go!

The following tips should help you get the beta or release candidate versions working well. If you have any problems, please report them to http://qa.mandriva.com so we can have everything tip-top for 2006.

Note: Throughout, "# command" means: run this command as root, and "$ command" means: run this command as user.
Install

Installation should be relatively painless. You have several options.

* network install, CD boot
* CD install
* PXE install
* USB install

If you plan to keep Windows XP, I would suggest shrinking the partition with Partition Magic. I have experienced problems (like losing everying) while resing NTFS patitions with linux utilities in the past. Either way, back up everything before continuing. My 260 GB USB/FireWire hard drive is my best friend in the world. Anyway, either shrink your NTFS partition or be prepared to delete it completely.

My favorite is a network install, since I have a 5 Mb/s network connection at home. In this case, you simply download boot.iso from one of the Mandriva mirrors, and burn it to a CD-RW using a USB CD-RW drive or another machine. Uninett is probably the favorite mirror, but there many listed on the Mandriva Linux homepage. You can select stable or development versions of Mandriva there. Since 2006 was not release at the time of writing, I used development/cooker. Unfortunately, Intel has decided to make the firmware for their Centrino wireless chip non-free, so you'll have to use ethernet to connect to the net for this one. :-(

Alternatively, you can download the latest set of ISO's and burn them to several CD's. Also, if you are a Mandriva Club member, you can download a 4.7 GB DVD with almost every application you'll ever need on it. This is a bit more foolproof than a net install, but requires more bandwidth and preparation. The choice is yours.

The TC1100 has no CD-ROM drive, so if you don't have a USB drive, you'll have to use PXE to boot it from another linux machine, or use a USB hard drive.

Once you've booted into the installer, it is important to get ACPI and native resolution working, so at the "boot:" prompt, be sure to enter vgahi acpi=on.

Install is pretty much up to you. Since I had 50% of my hard drive devoted to Windows (required for school; shaddup!) I made a 800 MB swap space, and made the rest a ReiserFS partition for linux. You may also want to make a separate /home partition. With my adorable USB hard drive as backup for /home, this was an unnecessary waste of space for me.

Be sure to select the automatic login feature. None of the available display managers (gdm, kdm, mdk-kdm) have an on-screen keyboard option. If for some reason you have multiple users, you can use gdm; don't give any of the users passwords, and change the gdm theme to "icons", so you can simply click on a username to login.

Other than that, install whatever you want. I'd suggest the GNOME desktop over KDE, since GNOME has the amazing GOK on-screen keyboard, and gnome seems a bit "bubblier" to me... easier to click small widgets with a pen. There are lighter desktops as well if you want increased speed... I'd suggest IceWM simply for it's user-friendly layout. FVWM, WindowMaker and Fluxbox are also popular, but these require more click-and-drag combos and more middle-button use than IceWM. Fluxbox also has really small widgets - not great for pen use.

If you really want something fast, light, and full-featured, I've added the Matchbox Desktop. It's snazzy and super-fast - similar to the Rox Desktop. Both are only in the contribs repositories, so you will have to install them after rebooting if you wish.

At the configuration step, be sure to set video resolution to 1024x768@70 Hz or else the video looks horrible. You can make the fonts larger later if you want to. To speed bootup, I disabled nDNSresponder, nifd, harddrake, and iptables/shorewall (if you're brave) in the System Services configuration. Also disable the numlock service. DrakX obviously doesn't know you don't have a keypad.

Reboot. Damn that's hot. A beautiful GNOME desktop before your eyes in high resoltuion on a sexy computer.

As soon as you reboot, be sure to add a contrib repository to your rpm sources. (update: this may not be necessary if you network installed) You can find a list of mirrors at http://www.mandrakelinux.com/en/ftp.php3. The contribs directory is called RPMS2. Be sure to use packages from the same version of Mandrakelinux you are using! You can add the repository graphically through the Control Centre or on the command line with urpmi.addmedia. ("$ man urpmi" is your friend)
PLF
To have a decent working desktop, you'll need some packages that are not included with Mandriva. Most of them are in the Penguin Liberation Front project. If you're in the US or Japan, you may want to think twice about adding the PLF repository, as some of the packages may be only semi-legal or less where you live. Then again, you may want to think twice about why this is the case and do something about it. Anyway, I'd add the plf sources now. Surf to http://easyurpmi.zarb.org and it will tell you how to add plf-free and plf-non-free sources for the version of mandriva you've installed.
Speeding up LILO

For some reason LILO reads the kernel very slowly by default. For some other reason Mandriva doesn't offer the compact option in drakboot anymore. You may notice that lilo take 10-15 seconds to load the kernel. By addind the line "compact" to the main part of /etc/lilo.conf (after the timeout= line maybe) and then running "# lilo" you will get much faster boot. While you're at it, you may want to change splash=silent to splash so you can see what's going on (or going wrong) during boot.
Windows Parition

If you left an NTFS partition on there, Mandriva will have automatically mounted it as /mnt/windows. It's read only, but that's a lot better than nothing. If you absolutely require write access to it, you can try captive. I've never tried.
Desktop Setup

To make things look a bit better on a laptop, I made some changes to GNOME. This may be totally different on other desktops, and I can't help you with it. ;-) Under Desktop -> Preferences -> Menu and Toolbar, I changed toolbar button labels to "icons only" to save some desktop real estate. I know what the icons mean. Desktop -> Preferences -> Font is also a great place to go. Changing font rendering to subpixel smoothing will make the fonts look much clearer. My young eyes can deal with 10 point on this 10" screen (although just barely), but you can increase the font size here if you want.
Hardware

I'll admit that a few things will not work out-of-the-box, but very little tweaking is required.
Pen

I've had all of the drivers for the pen added to the default kernel, but you will have to activate by adding those lines to the end of /etc/rc.local .

modprobe wacom_acpi
modprobe wacom
sleep 1
echo 1 > /dev/ttyS4

You will then have to add some lines to your X config file. You can find information on this from the Linux Wacom project, or you can just add these lines to /etc/X11/xorg.conf .

Section "InputDevice"
Driver "wacom"
Identifier "cursor"
Option "Device" "/dev/ttyS4"
Option "Type" "cursor"
Option "ForceDevice" "ISDV4"
Option "Mode" "Absolute"
Option "Button2" "3"
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/ttyS4"
Option "Type" "stylus"
Option "ForceDevice" "ISDV4"
Option "Mode" "Absolute"
Option "Button2" "3"
EndSection

And add the following lines to the Server Layout section.

InputDevice "cursor" "SendCoreEvents"
InputDevice "stylus" "SendCoreEvents"

Accelerated Video

Under the default setup, glxgears runs at around 240 fps. This is called not-good. Download the latest NVIDIA IA32 driver from http://nvidia.com. It may go to ~ or to ~/Desktop. Be careful. Move it to /root. Open a terminal and run "# init 3".

Install some pacagages needed to build the drivers.

# urpmi kernel-source-stripped-2.6

Then run the installer. Your version number may be different. Instruct it to build the driver from source.

# sh NVIDIA-Linux-x86-7676-pkg1.run

It should be successful. If so, edit /etc/X11/xorg.conf, and change Driver "nv" to Driver "nvidia". Get back into X by running "# init 5". Now watch glxgears run at 1280 fps. Not bad for a tablet!
Screen Rotation

The NVIDIA driver finally supports randr, but rotation doesn't seem to work for me. I suggest using profiles to get rotation setup. Read about profiles further down.

Here's an old portrait mode XF86Config file. Once I get my profiles set up, I'll post a better one.
Video Out

NVIDIA TwinView makes video out quite simple. I'll soon post my config file for video out.
Wireless

The Centrino drivers and the TC1100's RF switch commands have also been added to Mandriva. HardDrake should detect the hardware and set it up for you, but you will have two extra tasks.

Install the firmware. (assumes PLF)

# urpmi ipw2100-firmware

You can activate and deactivate the radio with some awkward commands. The switch remembers its position,, so if you leave it on, these commands are not needed.

echo "on" > /proc/acpi/wmi/WMID/wlan
echo "off" > /proc/acpi/wmi/WMID/wlan

Use drakconf or drakconnect to set up the wireless configuration. WEP encryption works perfectly. I haven't made WPA work yet. It either fails to associate, or it hard locks the machine.
Bluetooth

Bluetooth works very well. Simply installing gnome-bluetooth or kdebluetooth should install everything you need to make it work. Otherwise, you can manually install bluez-utils and any bluetooth software you plan on using. You should immediately edit /etc/bluetooth/pin to set your own four digit pin.

As a tip, you can activate or deactivate the bluetooth device with the following commands:

echo "on" > /proc/acpi/wmi/WMID/bluetooth
echo "off" > /proc/acpi/wmi/WMID/bluetooth

Modem

We cannot ship the SmartLink modem driver since it is not free software. You can get the source code from SmartLink, or an RPM from Mandriva Club.
MMC/SD Card Reader

As far as I know, although this is a PCMCIA device, it does not work at all with linux. It's a TI device, so I assume it's a firmware issue. Please let me know if I'm wrong.
Extra Keys

The scroll wheel should work by default. GNOME 2.6 comes with a handy utility to configure all of those extra buttons. You should be able to find it in the GNOME Configuration menu. I assume there is a similar utility for KDE. There are also ways to map the keys directly into X. I've never been interested.
Power Management

If for some reason you're mildly insane, and you only use the TC1100 on AC power, you can ignore this section. Without power management, the battery will last considerably shorter than under Windows, but this is easily fixed.

First, enable cpu frequency throttling.

# urpmi cpufreq
# service cpufreq start

Then install the laptop mode tools.

# urpmi laptop-mode-tools

Edit /etc/laptop-mode/laptop-mode.conf . The defaults are pretty good, but you can set things like how long to work in ram before sync to disk, how long to wait before spinning down the HD, and how much data to read ahead into ram (good for playing MP3's). Enable CONTROL_CPU_GOVERNOR and choose a mode for battery operation. Powersave will use 600 MHz only. Ondemand will scale depending on X usage. Conservative will scale depending on cpu usage.

With these features enabled, battery life should be similar to what it was under Windows, about 3.5 hours.

Software suspend is a problem. The machine goes to sleep, but wakes up immediately. Anyone with advice on this is free to contact me or the ACPI project. Suspend to disk works great though. To enable sleep functions in GNOME, extra scripts need to be installed.

# urpm suspend-scripts-force

A reboot here is probably the best way to make sure all the modules and daemons we've added are running and loaded in proper order.
Profiles

Since tablet PC's have a habit of being on-the-go, it's convenient to have several different configurations you can pop into. Frederic Lepied's wonderful netprofile will do all of that for you. You can change your current profile in the Mandrake Control Center menu bar. You can also add a new profile, which will appear as a mirror of your current profile.

Since netprofile was originally intended for network configurations only, add any other config files you want to the profile manager. You can add video settings to your profile if you want.

# add-to-netprofile /etc/X11/xorg.conf

You can quickly change profiles from the Mandrake Control Centre, or you can simply execute the following as root:

# set-netprofile [name of profile]

Keep in mind that video settings won't take effect until you restart X.

You can also select these profiles directly at boot-time! Luckily the scroll button on the side of the machine works during LILO. See these instructions on setting that up. Very handy.
Software Setup
Applets

I like to know what's going on. Especially on a latop. I added the load monitor applet, the battery charge applet, and the CPU scaling applet. You may want to consider gkrellm instead. (The battery and scaling applets won't work until later. Don't worry.)

The Mandriva net_applet is installed to the notification area by default, and it works great. It allows for easy ethernet/wireless switching, network monitoring, firewall configuration, and even wireless roaming.
Push-Button Control

Since there was no utility quite like the Q-Menu for Windows, I wrote a similar utility called Tabatha. You can install tabatha with rpmdrake or urpmi as usual. It's not setup for the TC1100 by default. You can set it up to have buttons to control whatever system settings you want. Be careful though; all commands run as root. (read docs in /usr/share/doc/tabatha-0.6). You can also use my configuration by setting the following (as root):

ln -sf /usr/share/tabatha/tc1100.xml /etc/tabatha

I use it mainly to start/stop the wireless card, to change battery-saving options, and to rotate the screen.
On-Screen Keyboard

Since there is no handwriting-recognition support for Linux yet, I use the removable keyboard most of the time. However, when I want to go ultra-ligt (like reading Bloglines in bed), I have to use an on-screen keyboard for data entry. GNOME comes with the wonderful GOK. To enable it, you'll have to enable assistive technologies and on-screen keyboard in Desktop -> Preferences -> Accessability.

I do not believe that KDE or other desktop environments have an on-screen keyboard. I have added xvkbd, so you can use that, but I find that window focusing is not handled as well as with GOK. Gtkeyboard is also available by urpmi.
Gesture Handwriting

If you prefer to write with gestures that with an on-screen keyboard, you can use xstroke instead.

# urpmi xstroke

You'll probably have to read the documentation to figure it out though. Personally, I find it even more annoying than an OSK.
Extra Software

I've added a few handy applications to Mandrakelinux for tablet users. Gournal is a great pen-based note-taking program. I also couldn't live without the gnome sticky-notes applet, gjots, gnome-bluetooth, GIMP 2.0, and drakroam. See my fairly complete listing of tablet software. Additions welcome. ;-)
Final Words

Everything I haven't mentioned (sound, USB mouse, USB keyboard, CD burning, PCMCIA, etc.) should work out-of-the-box. Even my USB digital camera pops up on the desktop and asks whether the photos should be imported.

Posted on 09.04 by daffast and filed under | 0 Comments »

0 komentar:

Posting Komentar