Linux on Toshiba Portege M200

I had the chance to get a new laptop and decided on Toshiba's 2nd generation tablet. It's a slick machine. It's been a struggle to get Linux working but it's doing pretty well now.

Outstanding Problems

Installing

The machine comes with no removable drives. That can be a problem with Linux. There are ways to netboot (PXE) to get a Linux installer going but I took the easy way out... I took the hard drive out, put an adapter on it, and put it in a desktop machine. I resized XP Tablet using ntfsresize pre-1.9 and copied a working debian system based on woody and a lot of stuff from unstable.

If you want to do it properly, use the Toshiba bootable sdcard utility and give it a file like rescue.bin as the floppy image. Then when the machine boots, you hit the left arrow a couple times and hit enter when the indicator is under the sdcard icon.

I made a snapshot of a 128M sdcard built this way (it's about 3M gzipped). The toshiba tool formats the card and creates the single file $tosfd00.vfd on it which is the floppy image you provided.

You can make a more generic bootable flash by getting something that will fit in the pcmcia slot. The "Delkin" Devices "eFilm" 4-in-1 adapter works fine for making my sdcard available as an ide device. These adapters are all over ebay if you're looking.

Setting up X

The Nvidia chip in this machine requires XFree86 4.4.0. This server was not in any debian packages I could find so I used the binary release at xfree.org and installed over the top of my existing package. A little gross, but it's working and I will try to get a real package as soon as I see one. (May be a while since debian folks don't like the new Xfree license).

I used a config file XF86Config from Chris Debenham. It worked out of the box.

The RandR X extension apparently doesn't allow for rotation. So I have gdm start up two servers, one rotated. It's not ideal, but if I want to read something in portrait mode, I can switch over to it.

If you want to mirror the LCD output on the VGA output, you have to boot with the monitor connected, hit Fn-F5 until the boot screen appears on both, then run the nvidia X driver. I haven't gotten it to work any other way.

There is a workaround for lacking DPMS support... dim the backlight when the screensaver is active. I run this perl script in the background and it keeps the backlight dimmed when the screensaver is running. It uses a little helper script to write the values to change the lcd.

Pen input

Chris Debenham sent me a pen driver to use instead of the Xfree version. The Xfree version was way off when the pen was near the right and bottom edges of the screen. It sounds like the fix will be in the next regular release. See the linuxwacom project.

I decided to try xstroke. The version in debian wants to dock but I can't find a way to get the docker working without a massive gnome upgrade. Instead I compiled it by undefining both USE_SYSTEM_TRAY and USE_PIXMAPS in xstroke.h. That gives you a little window that you can scribble the letters into.

I can't remember exactly how I got the serial stuff set up, but part of it was that I set up the serial ports and had setserial save the configuration once... the result is in my /var/lib/setserial/autoserial.conf.

Mozilla gestures

If you are going to use the pen much, I recommend getting the Mozilla gestures working. They're available in the debian package mozilla-mozgest.

Wifi

I wanted to use a wireless card with 802.11g support and native Linux drivers. Unfortunately, Toshiba only sells the Intel Pro Wireless 2100. I wanted a card that could go into access point mode ("master") and currently this means using Atheros.

I ordered an Atheros-based Minipci card from Netgate. You can put this in if you open the case by removing all the screws on the back (as well as from the battery compartment), lift the case enough to disconnect the power cord for a fan, and find the Intel card under its aluminum shield. It pops out just like a ram sodimm. It has two antenna connectors that snap off. You may have to reroute the antenna leads to get them to reach the connectors on the Atheros card.

The card works fine using Madwifi drivers (I use the cvs version). This kernel module has some parts that aren't open (something I didn't realize until I saw the kernel taint message). The driver works with xsupplicant.

Bluetooth

The internal bluetooth option from Toshiba is a USB adapter. It's supported by the bluez USB bluetooth driver but there's a bit of a trick to get it to connect itself to the USB bus. Apply the Toshiba ACPI patch if you have an old kernel and get toshset (apt-get install toshset) to attach the bluetooth device (via toshset -bluetooth on).

Control Keys

Be sure to install Fnfx so you can control the LCD brightness, switch to external video, etc.

Power Saving

DPMS does NOT work using either the nv or nvidia X drivers. This means the backlight stays on unless I fold the lid down until it's almost closed.

In debian, install the powernowd package to cycle down the cpu. It will require a 2.6 kernel I think.

To spin down the drive, I installed files in /etc/acpi/events/ac_adapter and /etc/acpi/ac.sh and also arranged to get /etc/acpi/ac.sh run at boot time by putting the line /etc/acpi/ac.sh in /etc/default/acpid. (They also say the ac.sh settings need to match your fstab.)

I suspend the computer by installing /etc/acpi/events/powerbtn and /etc/acpi/powerbtn.sh so that /usr/local/bin/dosleep is run when the power button is pushed and held for no more than about 3 seconds. In new kernels, the machine wakes up when you open the lid but on older kernels you will have to push the power button over again.

I was hoping to underclock the GPU using nvclock but it doesn't support this particular GPU.


Brad Midgley
Last modified: Sun Aug 1 00:01:58 MDT 2004