|
> Linux on a Toshiba Satellite Pro 6000 laptop <
In this article, I will share my experience related to installing and running Slackware Linux 10.0 on
a Toshiba Satellite Pro 6000 laptop. Slackware 10 runs fine on this particular Toshiba model, after some
configuration adjustments and tweaking.
I bought this laptop on Ebay in April 2004. Although being 2 years old, it arrived in perfect condition and came
with all the goodies : an USB external floppy drive, AC-adapter and power cord, a brand new laptop bag, all manuals and CD's.
The battery life is a good 2 Hrs (full power).
I also submitted this document on the Linux on Laptops site
and on Tuxmobil.org.
As of May 2005, I also installed FreeBSD 5.4 on this laptop. The article about FreeBSD can
be found here.
As of October 2006, my trusty Toshiba found a new owner on Ebay. This most likely also marks the end of updates for this article.
Technical overview
| CPU type |
Intel Celeron |
| CPU speed |
1.06 GHz |
| BIOS |
version 1.60 |
| Memory |
384 MB PC-133 SDRAM (1x128 + 1x256) |
| Harddisk |
Toshiba MK2018GAP, 20.0 GB, 4200 rpm |
| CDROM |
Teac CD-224E-BA, 24x |
| Display |
14" Color TFT, 1024x768, 16M colors |
| Video card |
Trident Cyberblade XPAi1, AGP, 16 MB (shared) |
| Network card #1 |
Intel EtherExpress Pro/100 (onboard) |
| Network card #2 |
SMC 2835W V2, 54 Mbps Wifi Cardbus adapter |
| Network card #3 |
Benq AWL100, 11 Mbps Wifi PCMCIA adapter |
| Sound Card |
Ali M5451 Audio Accelerator |
| Keyboard |
full size Qwerty with Euro symbol |
| Pointing device |
"joystick" in keyboard + 4 buttons |
| I/O ports |
1 x serial, 1 x parallel, VGA, TV-out, 2 x USB, 1 x PS/2,
RJ-45, RJ-11, 2 x PCMCIA/Cardbus, Mic in, Line out, Ir,
SD-Card reader |
| Installed OS |
Slackware 10 |
| Linux kernel |
2.6.8.1 (at date of article) |
The 2 wireless cards did not come with the laptop. Since I bought the SMC card, I obviously no longer use the slower Benq card.
Both cards work fine.
Pictures
Installation
When I got the laptop, it came with Winblows 98 installed. I booted the laptop, hit F12 to change the
boot device to CD, popped the Slackware Disc 1 in the CDROM drive, hit Enter and was greeted by the Slackware setup.
I repartioned the entire harddisk with cfdisk for use with Linux. All partitions are formatted with Ext3.
Here is the partition table :
Filesystem Type Size Used Avail Use% Mounted on
/dev/hda1 ext3 177M 43M 125M 26% /
/dev/hda5 ext3 30M 9.6M 19M 35% /boot
/dev/hda6 ext3 221M 15M 195M 7% /var
/dev/hda7 ext3 986M 55M 878M 6% /tmp
/dev/hda8 ext3 4.0G 1.7G 2.1G 46% /usr
/dev/hda9 ext3 11G 381M 9.2G 4% /home
/dev/hda10 swap 690M 0M 690M 0% swap
/dev/hda3 vfat 2.2G 1.2G 991M 55% /mnt/windows
As you can see, most of the disk space is devoted to /home. Since I don't use KDE nor Gnome, 4GB is largely enough for /usr.
The Slackware setup application completed the installation without problems. After the initial installation, it was necessary
to configure X11 and sound manually.
Update : I devoted some 2GB to install Win2K, makes it easier to test stuff that really doesn't work on Linux.
Harddisk/IDE controller
The IDE controller is an Ali Corporation M5229 rev c3 (195). It is supported by the
ALI15X3 UDMA driver, present in Linux kernel 2.4 and 2.6 series. Although the harddisk is ATA-100 compliant,
this controller enables it at only UDMA33. Nevertheless, it works just fine, although a faster harddisk would be nice.
Here are the hdparm benchmarks :
[root@porty /home/david]# hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads: 392 MB in 2.00 seconds = 195.74 MB/sec
Timing buffered disk reads: 68 MB in 3.08 seconds = 22.10 MB/sec
Well, I guess 22 MB/sec is not too bad after all. BTW, the CDROM drive works fine too.
X11/Framebuffer
The video controller is a Trident Cyberblade XPAi1. It is supported by XFree86 4.3.x and Xorg, using the
trident driver. It is connected to the AGP bus and uses 16MB of the main memory. This amount of memory is not
configurable, that is, there is no BIOS option of any kind that would allow to do so.
Performance is good for 2D, fast enough for MPlayer anyway, but really pathetic for 3D stuff.
I run X11 in 1024x768, the native resolution of the LCD panel, in 24bit colordepth. The quality of the LCD panel is
very good : very bright, good contrast and rich colors.
The X11 trident driver seems to have problems with OpenGL : that is, OpenGL based screensavers often crash. I ended up
disabling the glx driver.
Update : glx problems seem to be solved in Xorg 6.7, the OpenGL screensavers keep working now. However, this laptop
does not have the computational/graphics power it takes to run them smoothly, so I ended up disabling most of them.
The Trident chip is also VESA compliant, so I use 1024x768x8 VESA framebuffer mode in console, giving me a full screen
console, with 128 colums x 48 rows of sharp text. If you don't use the VESA framebuffer, you're stuck with 80x25 text mode, and
a thick black border.
The "LCD Display Stretch" option in the BIOS is not worth trying in that case : it works, but the result is very ugly.
Shame on Toshiba. To summarize, just use VESA for the console.
Here is my xorg.conf, so you can use it too.
Sound
The sound controller is an Ali Corporation M5451 PCI Audio Device. This sound controller
gives you full duplex sound, so you don't need Esound or Arts. It is supported by the OSS trident driver
and by the ALSA ALi PCI Audio M5451 driver. Both work fine, but they have 1 problem :
If you use APM + the OSS driver, sound playback is distorted and too slow when the laptop runs on battery power.
Plugging in the AC adapter solves the problem immediately. That sucks.
If you use ACPI + the ALSA driver, sound will not work anymore after a suspend/resume, asof kernel 2.6.7. This
did not happen in older 2.6 kernels. This sucks even more.
So, currently, I use ACPI + the OSS driver : sound playback is always correct, also after a suspend/resume or on battery.
Update #1 : the ALSA resume problem should be solved since 2.6.8, it was mentioned in the Changelog anyway. Did not bother
to test it, since I'm happy with the OSS driver.
Update #2 : Running kernel 2.6.12-rc2 now (April 2005), and tried the ALSA driver again. It works fine, also after
resume.
Networking
The onboard Ethernet controller is an Intel Corporation 82557, better known as Intel Pro/100.
This controller gives you 10/100Mbps full duplex networking. The connector is a regular RJ-45.
It is supported by the eepro100 driver and by the e100 driver. The choice is yours.
Currently, I use the eepro100 driver. No problems at all, it just works fine.
I also use an SMC2835W Wifi Cardbus adapter. It gives me 54Mbps wireless networking.
It is supported by the Prism54 driver. Performance is very good, with Tx rates up till 3.3MB/sec.
Unfortunately, this device too does not handle a suspend/resume properly : no wireless network anymore after resuming.
I opened a bug report (#97) on the Prism54 Bugzilla list.
For now, I "solve" this problem by deactivating the card on suspend (cardctl eject) and activating it again
on resume (cardtcl insert).
Update : I use Ndiswrapper now to drive the SMC, suspend/resume works fine now and as an added bonus,
I can use WPA-PSK, which is still not supported by the prism54 driver.
My older Wifi card is a Benq AWL100 PCMCIA adapter. It provides 11Mbps wireless networking.
It is supported by the Orinoco/Hermes driver. Tx rate is limited to 650-700KB/sec, without WEP.
That's very good for an 11Mbps card, and in general fast enough, but it is kind of slow when transfering large files.
However, this card handles a suspend/resume properly, it just works again after a resume.
USB
The USB controller is an Ali Corporation USB 1.1 controller rev 03. This controller powers
2 USB ports. It is supported by the OHCI USB driver and works fine, but has 1 problem :
it fails to suspend, meaning that the whole laptop fails to suspend if the USB driver is loaded.
This sucks big time.
Solution : unload the USB modules on suspend. Hotplug will reload them on resume. So far, this fix
works fine, but it shouldn't be necessary.
Update : USB suspend/resume problems are history since kernel 2.6.10. The laptop no longer
fails to suspend and after resuming, USB devices work nice.
I use 4 USB devices with this laptop :
- a Microsoft Optical WheelMouse (Microsoft makes great hw ;-)
- an external floppy drive
- a 64MB Memory Stick
- a Canon Powershot A75 digital camera
For the mouse to work, you need the usbhid driver.
For the floppy and the stick, you need the USB Mass Storage driver and SCSI Disk support.
Cardbus/PCMCIA controller
The Cardbus controller is a Toshiba ToPIC 95 PCI to Cardbus bridge. This controller powers
2 slots. It is supported by the Yenta Cardbus driver and works fine with all the PCMCIA or
Cardbus adapters I have at my disposal. No problems detected.
Mouse/Pointing Device
I use 2 mice on this laptop : an external Microsoft Optical USB WheelMouse and the built-in joystick thingie.
The joystick mouse is recognised as a regular PS/2 Mouse. For the USB mouse, the usbhid driver is
needed. Both mice work fine simulteanously, both in console and X11.
for the console, I start gpm like this:
/usr/sbin/gpm -m /dev/psaux -t imps2 So, it surprises me that the USB mouse too works in console, apparently
gpm considers it to be a PS/2 mouse ? Anyway, it works.
for X11, here are the relevant parts of xorg.conf:
Section "InputDevice"
Identifier "Mouse1" #external USB scrollmouse
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Mouse2" #internal joystick mouse
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/psaux"
Option "ZAxisMapping" "4 5"
EndSection
. . .
Section "ServerLayout"
Identifier "Simple Layout"
Screen "Screen 1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Mouse2" "AlwaysCore"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
APM/ACPI
The laptop supports both APM and ACPI. That's nice but you can use only 1 of them. If your kernel has support for
both, it will use ACPI.
APM
This laptop supports APM very well : it "automatically" suspends when you close the laptop lid, it resumes when
you open it, it powers off and reports battery status correctly. There are 2 minor problems however :
sound is not OK when running on battery (see the Sound section)
system time is wrong on resume, it is still at the time of suspend
ACPI
ACPI support is very good too, but requires quite some tweaking to get it right. Status reporting of the
batteries, AC adapter, fan, etc . . . , work fine. The ACPI driver reports that this laptop supports
sleep states S0, S3, S4 and S5.
S0 (laptop is powered on) and S5 (powered off) seem obvious.
S3 (suspend to memory) works, but needs unloading USB drivers prior to suspend.
I haven't tried S4 (suspend to disk) yet.
ACPI is configured by a so-called ACPI event handler which is invoked by the acpid daemon, whenever this
user space daemon receives ACPI events from the kernel. Frankly, this means you must run acpid in order
to make your laptop do something usefull with those event notifications, without manual intervention. The default
acpi handler from Slackware doesn't do much, except initiating a shutdown sequence when you hit the powerbutton.
Well, it's a start. Here is my acpi_handler.sh script, which does a bit more.
The laptop also supports the Toshiba ACPI extensions, allowing you a.o to alter the LCD brigtness level and toggle the
fan on/off trough the /proc/acpi interface. To get/set the ACPI status, you can use an ACPI client I developped, called
AcpiTool.
Update : since kernel 2.6.10, Linux ACPI support has inmproved in such a way that this laptop
suspends and resumes (sleep state S3) without any problem at all. My acpi-handler script looks pretty empty now :)
Other hardware
internal modem : never used it, so I can't say if it works
SD-Card reader : idem as above
Ir receiver : idem as above
serial port : OK, tested with a serial mouse
parallel port : OK, tested with a printer
Some files
kernel config, kernel 2.6.8.1
kernel config, kernel 2.6.12-rc2 (April 2005)
dmesg, kernel 2.6.8
dmesg, kernel 2.6.12-rc2
lspci
see X11 section for xorg.conf
|