FreeUnix.Dyndns.Org Sat, 21 November 2009 - 10:17:34 CET
Home ·  AcpiTool ·  Howto ? ·  Links ·  Hardware ·  FTP Archive ·  Search ·  Contact ·  About
>  Linux on a Toshiba Satellite Pro 6000 laptop   <
Intro
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. 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 Top

 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 Top

Toshiba SP6000 Toshiba SP6000
Installation Top
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 Top
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 Top
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 Top
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 Top
    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 Top
    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 Top
    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 Top
    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 Top
    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 Top
  • 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 Top
  • 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
  • Top