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.
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.
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 2.6 works fine. Currently I am running the Debian flavour of kernel 2.6.5. Some information about my setup:
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
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)
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:
Scorpio AC 97 soft modemproduced by Agere.
lspci
listing:
00:1f.6 Modem: Intel Corp. 82801DB AC'97 Modem (rev 02) (prog-if 00 [Generic]) Subsystem: Toshiba America Info Systems: Unknown device 0001 Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin B routed to IRQ 10 Region 0: I/O ports at 2400 [size=256] Region 1: I/O ports at 2000 [size=128] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME-
slamr: SmartLink AMRMO modem. slamr: probe 8086:24c6 ICH4 card... slamr: mc97 codec is SIL27 slamr: slamr0 is ICH4 card.
ATI3 TOSHIBA V.90 Data+Fax Software Modem Version 3.1.116 ATI4 Built on 09/17/2002 16:12:37 ATI5 3.1.116, AMR Intel MB, AC97 ID:SIL REV:0x27, 06
Windows identifies the infrared port as an SMC IrCC - Fast Infrared
Port
.
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.
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/
.
There are some minor things which do not work:
hw_random: cannot enable RNG, aborting
atkbd.c: Unknown key pressed (translated set 2, code 0x10f, data 0x59, on isa0060/serio0). atkbd.c: Unknown key released (translated set 2, code 0x10f, data 0xd9, on isa0060/serio0).
Fn-F6 gives no such messages. Fn-F9 to toggle the mouse
works
fine. Fn-ESC emits the scan code for the F13 function key.
/usr/sbin/gpm[971]: oops() invoked from gpn.c(205)
Copyright © 2012 Jochen Voss. All content on this website (including text, pictures, and any other original works), unless otherwise noted, is licensed under the CC BY-SA 4.0 license.