The Toshiba dynabook SS SX (mostly the same as the Toshiba Portégé R200) makes a great ultra-portable Linux laptop. It weighs only 1.29kg (2.84lb) with battery and has the latest, as of Spring 2005, hardware including the Intel 915GMS Express chipset and a 1.2GHZ Pentium-M processor. I get about 3 hours of battery life with CPU frequency scaling and 802.11g wireless on, or about 3.5 with wireless off.

This guide was last updated on 2006-07-11 and supports Linux 2.6.17.4.

Hardware

Linux supports the majority of the hardware on this laptop as-is, but some features require patches to the kernel or to userland programs. Here is my complete kernel configuration. All mentions of Linux aside from the kernel refer to my local installation of Debian unstable.

HardwareSupported?
Pentium-M 753 CPU yes
Intel 915GMS Express Chipset yes
Intel GMA 900 Graphics yes
AC97 Audio yes
ALPS Touchpad yes
Marvell Yukon Gigabit Ethernet yes
Atheros 802.11B/G Wireless yes
Toshiba Bluetooth yes
ACPI Hotkeys and Suspend yes
Infineon TPM yes
AuthenTec Fingerprint Scanner no
Toshiba SD Card Slot yes

CPU

The Pentium-M 753 (1.2GHZ) is fully supported by Linux, including CPU frequency scaling and No-Execute protection.

CPU Frequency Scaling

I use the kernel "conservative" governor rather than one of the available daemons like cpufreqd or powernowd, and this requires adding the conservative governor to the kernel configuration and then writing "conservative" to /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor at runtime. I added the following line of code in the start case of /etc/init.d/laptop-mode:

      echo -n "conservative" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    

No-Execute Protection

The Pentium-M 753 supports the NX bit for marking pages of memory as not executable, thus preventing certain types of buffer overflow attacks. To use this functionality it must be enabled in the BIOS and the kernel must also be configured with 64GB High Memory support. When enabled the following kernel message will be displayed:

      NX (Execute Disable) protection: active
    

Chipset

Not much to say about the 915GMS Express chipset, it works and the integrated audio and video are covered elsewhere.

Video

The GMA 900 graphics chipset supports both a VGA framebuffer console as well as the various X Windows acceleration features.

VGA Console

To get the VGA console working the following "Graphics support" kernel features must be selected:

The bootloader must also be told to pass the correct option to the kernel. I added the following vga=0x318 option to the kopt entry of /boot/grub/menu.lst:

      # kopt=root=/dev/hda1 ro vga=0x318
    

X Windows

XFree86 4.3.0 does not support the GMA 900 graphics chipset, but XOrg 6.8.2 does. The xorg.conf must also contain a Driver directive for the i810 driver. Here is my xorg.conf which also includes the touchpad settings.

The following kernel module is also needed:

DRI

To get DRI working you will need the following character devices:

Audio

The AC97 audio chipset works well with ALSA. However after ALSA is configured via alsaconf, "Line Jack Sense" and "Headphone Jack Sense" must be turned off or the internal speaker will not work. This can be accomplished via alsamixer.

The following Sound related kernel modules are needed for audio support:

Touchpad

The ALPS touchpad does not require any patches with Linux 2.6.14+. When using the xorg-driver-synaptics package, the touchpad supports taps, scrolling, etc.

Wireless

The Atheros 802.11B/G wireless card is supported by a driver from the madwifi project. The following kernel option is also needed:

Originally the madwifi driver would also cause a complete system lockup when bringing the interface up and down, or some time after waking from sleep. This has been resolved since the BSD->HEAD merge.

Unfortunately the new "madwifi-ng" branch suffers from a loss of connectivity after resuming from suspend. I use the old pre-ng source from CVS, dated 2005-06-23.

Ethernet

The Marvell Yukon Gigabit Ethernet NIC is not supported by the version of the sk98lin driver in Linux 2.6.14. Fortunately an updated version is available from SysKonnect and can either generate a patch for the kernel or be compiled as a module.

Bluetooth

The Toshiba Bluetooth adapter is supported by Linux which includes BlueZ, however it is a USB device which must be turned on by a Toshiba ACPI call. Doing so requires this patch which I derived from an older patch, as well as the following kernel module:

I also added the following functions to /etc/init.d/bluez-util and call them on start and stop.

      enable_toshiba_adapter()
      {
          echo -n " [toshiba BT = on]"
          echo "power: 1" > /proc/acpi/toshiba/bluetooth
          echo "attach: 1" > /proc/acpi/toshiba/bluetooth
      }

      disable_toshiba_adapter()
      {
        echo -n " [toshiba BT = off]"
        echo "attach: 0" > /proc/acpi/toshiba/bluetooth
        echo "power: 0" > /proc/acpi/toshiba/bluetooth
      }
    

ACPI

ACPI sleep (state S3) works by writing to mem to /sys/power/state. I haven't tried software suspend since ACPI sleep is faster.

This patch is my updated version of the original patch to make acpid recognize hotkey events generated by modifying F1-F12 with the FN key. Doing so allows you to use FN-ESC for mute, FN-F3 for suspend, etc, just as the keys are labeled. Acpid must also be configured properly, so I created /etc/acpi/events/toshiba with the following content:

      event=button/toshiba
      action=/etc/acpi/actions/toshiba.sh %e
    

and /etc/acpi/action/toshiba.sh with:

      #! /bin/bash

      case "$2" in
          0x0101) amixer set Master toggle;;
          0x013d) echo mem > /sys/power/state;;
      esac
    

0x0101 is the hotkey code for FN-ESC and 0x013d is the code for FN-F3. You can run acpid in debug mode to see which codes the various keys generate.

TPM

The Trusted Platform Module is supported by Linux, which allows you to encrypt and sign files with keys that are protected inside the module's hardware. The following character devices are required:

SD Card Slot

The SD card slot is supported by Linux as of 2.6.17. The following devices are required:

The End

I believe that is everything!

email address