Linux on a Toshiba Satellite 2430-301

By Jochen Voss, last updated 2012-02-18

This text describes the adventures I encountered while installing Linux on a Toshiba Satellite 2430-301 Laptop. If you have questions or additional hints, feel free to contact me.

News. in February 2005, less than two years after I bought it, the laptop described on this page died. The symptoms were:

This might be the problem discussed at the computer hardware forum.

Contents

Summary

I was able to install Debian GNU/Linux without an unreasonable amount of trouble.

component hardware identification status
core components Intel Pentium 4 (2.66 GHz)
512 MB RAM
IDE hard disk
works perfectly +
graphics card NVidia GeForce4 420 Go (rev 163)
32 MB
works perfectly
(using the closed-source NVidia driver)
+
sound Intel 8x0 works perfectly
(I use the ALSA driver)
+
Ethernet Controller RealTeX TRL8139 Fast Ethernet works perfectly +
USB Intel 82801DB USB EHCI works perfectly
(using the usb-uhci driver),
USB 2.0 never tried
+
Power Management APM or ACPI works partially:
Power off works, but
suspend does not
+-
Modem unknown (to me) chipset works
(using the proprietary SmartLink driver)
+
PCMCIA slots works perfectly +
SD card slot never tried
Infrared port never tried

Table 1. This table summarises the hardware support for the Toshiba Satellite 2430-301 under Linux.

BIOS

The pre-installed BIOS version is 1.30. The boot message says

PhoenixBIOS 4.0 Release 6.0

I upgraded to BIOS version 1.60 in the hope that this would involve an ACPI BIOS upgrade. It did not: The new BIOS is for me almost indistinguishable to the old one. The corresponding part of the dmidecode output is

Vendor: TOSHIBA
Version: V1.60
Release Date: 05/19/2003
Address: 0xE5630
Runtime Size: 109008 bytes
ROM Size: 512 kB
Characteristics:
        PCI is supported
        PC Card (PCMCIA) is supported
        PNP is supported
        BIOS is upgradeable
        BIOS shadowing is allowed
        Boot from CD is supported
        Selectable boot is supported
        Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
        Print screen service is supported (int 5h)
        8042 keyboard services are supported (int 9h)
        Serial services are supported (int 14h)
        Printer services are supported (int 17h)
        CGA/mono video services are supported (int 10h)
        ACPI is supported
        USB legacy is supported
        AGP is supported
        IEEE 1394 boot is supported
        Smart battery is supported
        BIOS boot specification is supported

Linux Kernel

Kernel Version 2.6

Linux kernel 2.6 works fine. Currently I am running the Debian flavour of kernel 2.6.5. Some information about my setup:

Kernel Version 2.4

I successfully tried the Linux kernel versions 2.4.20 and 2.4.21.

Warning: I had to disable the Local APIC support on uniprocessors feature in the kernel configuration. With the local APIC enabled the machine hung immediately after LILO passed control to the kernel.

The following link points to my kernel config file: config-2.4.21

Hardware Components

Overview

The output of lspci is as follows:

00:00.0 Host bridge: Intel Corp. 82845G/GL [Brookdale-G] Chipset Host Bridge (rev 02)
00:01.0 PCI bridge: Intel Corp. 82845G/GL [Brookdale-G] Chipset AGP Bridge (rev 02)
00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 02)
00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 02)
00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 02)
00:1d.7 USB Controller: Intel Corp. 82801DB USB2 (rev 02)
00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB/EB PCI Bridge (rev 82)
00:1f.0 ISA bridge: Intel Corp. 82801DB LPC Interface Controller (rev 02)
00:1f.1 IDE interface: Intel Corp. 82801DB Ultra ATA Storage Controller (rev 02)
00:1f.3 SMBus: Intel Corp. 82801DB/DBM SMBus Controller (rev 02)
00:1f.5 Multimedia audio controller: Intel Corp. 82801DB AC'97 Audio Controller (rev 02)
00:1f.6 Modem: Intel Corp. 82801DB AC'97 Modem Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 420 Go] (rev a3)
02:00.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
02:04.0 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (rev 01)
02:04.1 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (rev 01)

Modem

The built-in modem works fine under the Linux kernel 2.6.7 with the proprietary SmartLink driver slmodem-2.9.10 from SmartLink's linux driver page.

I do not know which chipset the modem uses, but the following information is available:

Infrared Port

Windows identifies the infrared port as an SMC IrCC - Fast Infrared Port.

ACPI

The ACPI BIOS has a lot of problems. In short: powering the machine down works, but nothing else.

The file /proc/acpi/ac_adapter/0/status correctly shows whether the machine runs on AC power. But the battery status information at /proc/acpi/battery/0/status seems to always read

Present:                 yes
State:                   ok
Present Rate:            0 mA
Remaining Capacity:      2040 mAh
Battery Voltage:         14800 mV

Under linux 2.4.21 you can only read out these vales two times in a row. Starting with the third time the error message

Present:                 yes
Error reading battery status (_BST)

is displayed and the systemlog shows things like

ectransx-0199 [-3] ec_read               : Unable to send 'read command' to EC.
evregion-0302 [-6] Ev_address_space_dispa: Region handler: AE_TIME [Embedded_control]
 dswexec-0392 [-15] Ds_exec_end_op        : [Store]: Could not resolve operands, AE_TIME
Ps_execute: method failed - \_SB_.PCI0.LPC0.BAT1._BST (c15ae828)

then. I did not investigate wheter this is a kernel bug or an ACPI BIOS bug.

Reading the CPU temperature etc. does not work.

I tried to override my ACPI BIOS with a fixed version, as described in Intel's Overriding your BIOS's DSDT page. Recompiling the disassembled ACPI code uncovers some syntactic bugs (missing return values etc.), but fixing these does not visibly improve things.

The Omnibook Module

Using the Omnibook kernel patch makes several things work better. Despite of its name, the project actually intends to provide kernel support for several classes of notebooks, including Toshiba Satellite ones.

While installing the module I get the following promising kernel messages:

omnibook: module version 2004-01-20.
omnibook: Toshiba Satellite 2430 detected.
omnibook: AC adapter status monitoring is enabled.
omnibook: Battery status monitoring is enabled.
omnibook: LCD display turn off at console blanking enabled.
omnibook: External display status monitoring is enabled.
omnibook: Fan status monitor and control is enabled.
omnibook: Fan policy setting is enabled.
omnibook: LCD brightness handling is enabled.
omnibook: OneTouch buttons are enabled.
omnibook: Temperature monitoring is enabled.
omnibook: module unloading does not work yet on 2.6 kernel.
atkbd.c: Unknown key pressed (translated set 2, code 0xb4 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e034 <keycode>' to make it known.
atkbd.c: Unknown key released (translated set 2, code 0xb4 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e034 <keycode>' to make it known.

Using this patch, the one-touch keys (right of the power button) and CD player controls (at the left hand side of the machine's front edge) actually produce scan codes and can be used with tools like ACME. Also I can read out the processor temperature and current battery status from the files in /proc/omnibook/.

Miscellaneous

There are some minor things which do not work:

Resources

Copyright © 2012, Jochen Voss. All content on this website (including text, pictures, and any other original works), unless otherwise noted, is licensed under a Creative Commons Attribution-Share Alike 3.0 License.