Installing Linux on the Toshiba Satellite Pro 4320 Laptop

Alex Butcher, July 22 2000

1.0 Introduction

The Toshiba Satellite Pro 4320 is a recent, discontinued model. It is not terribly friendly towards current Linux distributions, but with replacement of a number of key components (i.e. The kernel, pcmcia-cs Card Services, the SVGA X server and the ALSA sound drivers) it can be made into an acceptable mobile workstation. It is assumed that the reader is familiar with DOS, the Red Hat Linux installation process, as well as building and installing Linux software (such as the kernel).

1.1 Key Features

The key features of the 4320 include:

2.0 Installing Linux as a dual-boot alternative to Windows 2000

The only Windows installation media supplied with the 4320 is the recovery CD, which, by default, will re-partition and reformat the hard disc. By interrupting the recovery process and manually performing some of the steps, it is possible to use the recovery CD to install without removing existing partitions.

2.1 Creating Partitions

Boot your Linux installation media (either from floppy or CD) and create a partition for Windows on /dev/hda1. Make it active and set the filesystem type to 'c' [Win95 FAT32 (LBA)]. The partition type of /dev/hda1 will need to be different in order to install Windows NT 4. Create any other partitions you require.

My partition table follows. Note that the Extended Partition on /dev/hda4 is type 'f' rather than the default of type '5'. Whilst this isn't important for a disc with less than 1024 cylinders, when Windows refers to partitions on discs larger than this, it will use Cylinders-Heads-Sectors (CHS) definitions of partitions rather than Logical Block Addressing (LBA) definitions and this can cause disc corruption (due to the 1024 cylinder limit of the CHS scheme).

[root@ajblaptop /root]# fdisk /dev/hda
Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 730 cylinders

Units = cylinders of 16065 * 512 bytes
Device    Boot Start End Blocks   Id System
/dev/hda1 *    1     255 2048256  c  Win95 FAT32 (LBA)
/dev/hda2      256   574 2562367+ 83 Linux
/dev/hda3      575   591 136552+  82 Linux swap
/dev/hda4      592   730 1116517+ f  Win95 Ext'd (LBA)
/dev/hda5      592   611 160618+  83 Linux
/dev/hda6      612   618 56196    83 Linux
/dev/hda7      619   682 514048+  c  Win95 FAT32 (LBA)
/dev/hda8      683   730 385528+  c  Win95 FAT32 (LBA)

2.2 Installing Windows 2000

Boot from the Toshiba Recovery CD and follow the requests through until it asks whether it's OK to repartition and reformat. If you say no to this, you will be left at a DOS prompt on a ramdrive (F: in my case, as letters C: through E: are assigned to partitions on the hard disc.

Follow the following steps to install Windows 2000. A similar process can be used to install Windows NT 4 but this is left as an exercise for the reader. The Toshiba utilities (MBR, NTBBP, F3Dchk) do have informative (but quirky!) usage notes.

2.3 Installing Red Hat Linux

Perform an ordinary installation of Red Hat Linux. Make your Linux root partition (/dev/hda2 in my case) active using fdisk and remove the active flag from /dev/hda1. You will need to specify a 2-button PS/2 mouse in order to use the AccuPoint II pointing device (I don't know what purpose the smaller AccuPoint buttons serve, nor how to use them as a third/fourth/fifth button). Specify Generic 16-colour VGA and a 1024x768 multisync monitor during X configuration for the time being. Install LILO on the bootblock of the root partition. Reboot when the installation is complete and you should now be able to boot to Linux by selecting 'Linux' or Windows 2000 by selecting 'dos'.

When you boot Linux, you will probably discover the 4320's first quirk - the keyboard will fail to work unless you tap a (printing character?) key during startup, or boot directly to X by making runlevel 5 the default in /etc/inittab. It is not known what causes this behaviour.

3.0 Upgrading Red Hat Linux components

A few key components (the kernel, the pcmcia-cs Card services and the X server) need to upgraded in order to get the best out of the video capabilities and also to make usage of PCMCIA devices reliable. In addition, the ALSA sound drivers need to be installed in order to be able to use sound and the Lucent Software Modem kernel module will need to be installed in order to be able to communicate with the modem.

3.1 Upgrading the X server

A binary-only X server that supports the S3 Savage/IX chipset can be found at http://www.probo.com/timr/savagemx.html

This should be expanded and the server binary should be placed in /usr/X11R6/bin

I suggest renaming it from XF86_SVGA to XF86_savage before installing it.

Red Hat Linux runs Xwrapper, which in turn runs /etc/X11/X which is normally a symbolic link to the real X server. Move the old symlink out of the way and create a new symbolic link using

cd /etc/X11
mv X X.vga16
ln -s ../../usr/X11R6/bin/XF86_savage X
You may need to create or modify a /etc/X11/XF86Config file. You can do this using the normal tools (XF86Setup, xf86config, Xconfigurator). Alternatively, my own XF86Config is included in the supplementary archive.

3.2 Upgrading the kernel

I had frequent problems with my 3Com 3C575 CardBus ethernet adapter failing to startup, dropping off the network and loading i82365.o kernel module causing a complete system hang during boot. These problems seem to have gone away now that I've upgraded the kernel to 2.2.17pre13 and the pcmcia-cs package to 3.1.18. I prefer to do this using RPM and my own hacked version of Red Hat's original .spec file, but you might have your own approach. My kernel configuration file and .spec file is included in the supplementary archive.

It is recommended that you always keep the Red Hat kernel installed as a safety measure. You will need to rename it in /etc/lilo.conf and re-run lilo after adding your own section to boot your new kernel. My own lilo.conf is included in the supplementary archive.

Sources for pcmcia-cs and the Linux kernel can be found at
ftp://pcmcia-cs.sourceforge.net/pub/pcmcia-cs/ and ftp://ftp.uk.kernel.org respectively. The 2.2.17pre patches can be found at ftp://ftp.uk.kernel.org/pub/linux/kernel/people/alan/2.2.17pre

3.3 Installing the ALSA sound drivers

The ALSA project was started to provide a better API for sound applications under Linux than OSS, but along the way, it's added support for some sound chipsets that OSS does not support. This includes the Yamaha DS-1 (aka DS-XG or YMF744) chipset that the 4320 uses.

Again, I prefer to upgrade this package using RPM and have included my own .spec file based on SuSE's package in the supplementary archive.

Please note that there seem to be several ways of adjusting the volume level on the 4320 (Fn+F4, ALSA's amixer, the volume wheel at the front-left of the case and GNOME's gmix). I'm not entirely certain as to how these interact, but I've included my configuration files for amixer and gmix in the supplementary archive.

Sources for ALSA can be found at http://www.alsa-project.org/download.php3

3.4 Installing the Lucent Software Modem kernel module

I initially experimented with both versions 5.65a and 5.68 of the binary kernel module that Lucent supply to drive the modem under Linux. I found that both versions tended to drop the connection at inopportune moments, panic, and in the case of the 5.68 driver, hang the machine. I eventually gave up and borrowed a Psion 56K PCMCIA Gold Card modem and suggest you do the same.

The Lucent driver is linked from http://www.close.u-net.com/ltmodem.html

Tony Curtis says in http://www.tony-curtis.cwc.net/toshiba/linux-news.html that his problems were eliminated by turning V.90 off, but I had no such luck. Tony also believes that the driver stopped working from kernels 2.2.14 and up (<rant>which is the perfect demonstration of why closed-source, binary drivers are a bad idea</rant>).

3.5 Tuning the IDE interface

The hard disc and CD-ROM drive support DMA, unmasked IRQs and 32-bit IO. The hard disc also supports 16-sector multi-sector mode. These features can be enabled using hdparm, which I run from an initscript 'tuneide' (included in the supplementary archive).

3.6 Universal Serial Bus (USB)

I have no USB devices to test, therefore, I haven't configured USB.

3.7 IrDA Infra-Red port

I have no IrDA devices to test, therefore, I haven't configured IrDA.

4.0 Other Information

Supplementary archive - as referred to throughout this document
 
http://www.assursys.co.uk/people/alex/toshiba/supplementary.tar.gz


Linux Laptop Page - The bible, as far as Linux on Laptops goes. Do your research before buying and it'll make life a lot easier!
 

http://www.cs.utexas.edu/users/kharker/linux-laptop/


Jonathan Buzzard's toshiba utilities
 

http://www.buzzard.org.uk/toshiba/index.html


Toshiba's own semi-official Linux page
 

http://newsletter.toshiba-tro.de/linuxfr.htm


Winmodems
 

http://www.o2.net/~gromitkc/winmodem.html

http://linmodems.org/

5.0 Revision History

Saturday July 22 2000 - Initial revision.