Linux Installation notes - Toshiba Tecra 550CDT laptop

1. Introduction

This document describes various points and procedures connected with the
installation of Linux on a Toshiba Tecra 550CDT laptop computer. It was
desired to have a dual-boot Linux/Windoze-95 system. At the time of
writing there was little information available regarding this laptop and/or
the installation of Linux on it. This document was written to partially
remedy the situation.

11 April 2002: there is now another page describing Linux on this laptop
(URL was http://mobilix.org/toshiba_tecra550cdt_e.html, observed to be
broken on 3 Dec 2012). It is based on more recent experience than this
document (I no longer have access to the laptop and so cannot provide such
updated information). In particular, this new document seems to suggest
that PCMCIA now works in CardBus mode under Linux and that the IrDA port is
functional under Linux. Note that I cannot give any assurances about this
since I cannot test it myself.

3 December 2012: this document is now very old and the information in it
has been largely superceded: the hardware and Linux software it refers to
is over 10 years old. If ever there was a desire to run Linux on this old
laptop now I expect more recent versions require far less hacking and may in
fact work out the box. Even so, I intend to keep the page active for
historical reference.

Keep in mind that since this document no longer has practical use I am
not personally checking the validity of URLs and email addresses on a
regular basis, and haven't done so for many years. However, if broken links
and addresses are noticed by others I'm more than happy to update or remove
them - please let me know of such breakages via email (my address is
elsewhere in this document).

1.1. Acknowledgements

Most of the information for this document comes out of my own experiences.
Several other people have provided extra information:

1.3. Feedback

1.4. Distribution policy

(c) Copyright 1998 Jonathan Woithe.

This document is free documentation; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

This document is distributed in the hope that it will be useful, but without
any warranty; without even the implied warranty of merchantability or
fitness for a particular purpose. See the GNU General Public License for
more details.

You can obtain a copy of the GNU General Public License by writing to the
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

2. Hardware notes

This section describes a few notes regarding the hardware settings which are
mildly useful when installing Linux.

Please note! In late February 1999, Toshiba announced that it was
not going to release any details regarding the chips used
inside their laptops. The immediate result of this is that the IrDA port
will never be supported unless Toshiba changes its mind. There are also
implications for the CardBus mode of the PC Card controller.
Dag Brattli,
developer of Linux/IrDA
is now recommending that no one wanting to run Linux on their laptop
should buy a Toshiba Laptop. Make sure you let Toshiba know exactly why
you are not purchasing their product!

Support for Toshiba's ToPIC bridges was hindered for a long time by a lack
of sufficiently detailed technical documentation. While some datasheets
have been available, a few idiosyncracies of the ToPIC chips were not
adequately explained. Toshiba has now started giving direct technical
help on some of these issues and I expect that the major ones will soon
be resolved.

It would therefore appear that (32-bit) CardBus mode is likely to be
supported on the 550CDT with recent versions of the Linux PCMCIA package.
In addition,
a more recent page
regarding Linux on this laptop appears to indicate that IrDA is functional,
at least in SIR mode and possibly also in FIR mode.

2.1. BIOS settings

The BIOS settings can be accessed by holding ESC during power-on, and then
pressing F1.

In order to be able to use the PCMCIA slots, the "PC Card controller mode"
(2nd page of BIOS setup) option should be set to "PCIC" (aka PCMCIA).
Although the inbuilt Toshiba controller (ToPIC95 and friends) chip does
support the newer 32 bit CardBus interface, programming details have not yet
been attainable by the Linux CardServices author. Until that happens,
CardBus cards will not be supported in Toshiba laptops which use these
chips. By setting the PC Card option to "PCIC", the controller emulates a
standard Intel i82385sl-B.

I have had success in setting the "PC Card controller mode" option to
"Auto-Selected". What I think happens is that the controller adapts to
whichever mode is being assumed by the operating system at the time. This
would enable CardBus cards to be used under (say) windoze-95 while the
16 bit PCMCIA cards would still work under Linux.

Setting "PC Card controller mode" to "CardBus" will prevent any operation
under Linux.

It is worth taking note of the "Sound" settings (also on the 2nd page) to
avoid having to reboot later. The settings I used were:

WSS I/O Address = 0x530

SB Pro I/O = 0x220

Synth I/O = 0x388

WSS/SBPro/MPU401 irq = 5

WSS (play) DMA = 1

WSS (rec) & SBPro DMA = 0

Ctrl I/O Address = 0x370

MPU401 (MIDI I/F) = 0x330

2.2. Booting from Floppy Disk

I have not confirmed whether the 550CDT can boot from the newer bzImage
compressed kernel images. Other Tecra laptops do apparently suffer this
problem so there is every likelihood that the 550CDT does too. The solution
is to use the gz compressed kernel images instead.

A successful install from CDROM can be done using the Slackware bare.i
kernel image since the CDROM is a standard ATAPI drive. Make sure that
the CDROM is plugged into the appropriate port BEFORE applying power to the
computer.

3. Software versions used

PCMCIA-cs version

I installed pcmcia-cs version 3.0.3. I did not encounter any problems aside
from those mentioned previously in connection with the controller mode.

Graphics

The 550CDT uses an S3-Virge/MX graphics chipset. This is directly supported
in XFree86 3.2.2 and later in the SVGA server.

Linux kernel

2.0.30 was installed in this instance. I suspect that any version
>= 2.0.0 would work fine. I installed the latest ppa driver for the
IOMega Zip drive since it seemed like a good idea.

Sound

OSS/Free 3.8s9 was installed into the kernel tree before compiling the
kernel.

4. Installation notes

The 550CDT i had access to was shipped with Windows-95 build 4.00.1111
(OSR2); it is therefore possible that these laptops could use a FAT32
filesystem. Therefore, fips15c was used to shrink the windoze-95 partition
since it has FAT32 support. In the case of this laptop, though, a standard
FAT16 had been employed with 2 partitions - a 2Gb and a 1.8Gb (making up the
3.8Gb HDD size). The first partition was shrink slightly to 1.5Gb and the
second one was deleted using Windoze's fdisk.

The bare.i kernel booted without any dramas and without any special boot
flags. A standard Slackware installation proceeded without problems.

Out of the box, the CMOS clock was very wrong (it thought it was 1990).
This was rectified before beginning any compiling to prevent complications
with make.

4.1. Kernel compile options

Code maturity level options

I didn't use any development drivers

Loadable module support

To facilitate PCMCIA operation loadable module support was enabled, as
was Kernel daemon support.

General setup

Floppy, IDE, and other block devices

"Normal floppy disk support" and "Enhanced IDE/MFM/RLL disk/cdrom/tape
support" and "Include IDE/ATAPI CDROM support" was enabled. There's no
need to include support for bugfixes in some IDE chipsets since the 550CDT
doesn't have them.

Networking options

TCP/IP networking was enabled (along with a few defaults which come with
it).

SCSI support

SCSI support was activated with SCSI disk and tape support included.
The "IOMega Parallel Port ZIP drive SCSI" support was included as a
module. SCSI support was desired since a PCMCIA SCSI card was to be used
with this laptop. The kernel SCSI details were not compiled as a module
only to simplify the setup of the PCMCIA utilities. I can't see any reason
why the SCSI support couldn't be modularized.

Network device support

Only "Dummy net driver support" was included. A PCMCIA network card was
also to be used with this laptop, so no further devices were included.

This was enabled. The "accu-point" device on the Toshibas is seen as a
PS/2 mouse.

"Advanced Power Management BIOS support" was enabled with "Make CPU Idel
calls when idle" and "Power off on shutdown" suboptions active. If
"Enable console blanking using APM" is enabled, the LCD will be
inexplicably turned off whenever there is a switch to graphics mode (when
an X server is started, for example). It can be turned on again using
Fn-F5 but this is a pain. It's better to forego this APM feature IMHO.

"Enhanced Real Time Clock support was included".

Sound

The sound driver was compiled as a module. The Crystal CS4232 support
was activated along with the "FM Synthesizer (YM3812/OPL-3) support".
With the BIOS sound settings detailed earlier, the kernel was configured
thus (all I/O bases are in hex):

CS4232 audio I/O base = 534

CS4232 audio IRQ = 5

CS4232 audio DMA = 1

CS4232 second (duplex) DMA = 0

CS4232 MIDI I/O base = 330

CS4232 MIDI IRQ = -1

If the CS4232 is set to 5 (as one would think necessary based on the BIOS
wording), the MPU401 component complains at module startup that it can't
get IRQ5 (IRQ5 already in use) accompanied by a message to the effect that
port 0x330 is already in use. Things seem to work with the above
settings. I have only tested Audio though.

Kernel hacking

Not enabled

4.2. Booting arrangements

The choice of which OS to boot is made using Windoze's config.sys menu
mechanism. If 'linux' is chosen, loadlin is used to load linux. In
msdos.sys set BootMulti=0 and BootGUI=0. There has been talk that the
appearance of the windoze logo can upset Linux but i did not observe any
strange side effects. However, setting Logo=0 in msdos.sys won't hurt.
If automatic startup of the GUI is desired, "win" can be placed in the
autoexec.bat file.

4.3. PCMCIA details

Version 3.0.3 of PCMCIA-cs (card services) was installed as per
instructions. It seems that interrupt-based card insertion/removal
detection was reliable barely 20% of the time. As a workaround, the

PCIC_OPTs="poll_interval=100"

line was added to /etc/rc.d/rc.pcmcia to enable polled mode. This method
was 100% reliable.

/etc/rc.d/rc.M had a call to rc.pcmcia inserted so CardServices would
be installed automatically at startup:

if [ -x /etc/rc.d/rc.pcmcia ]; then
. /etc/rc.d/rc.pcmcia
fi

This was inserted after the call to ldconfig but before sendmail was
started. When called like this rc.pcmcia does not appear to require the
"start" argument.

The network card used was a "Xircom Creditcard Ethernet Adapter IIps".
Once inserted it worked without a problem. The IP address (and all other
details pertaining to the configuration of the ethernet device) are
contained in /etc/pcmcia/network.opts.

An Adaptec APA-1480 SCSI card did not work. This card is a (32 bit)
CardBus card which, for reasons already discussed, do not currently work
in Toshiba laptops utilising the ToPIC95 controller. It didn't even appear
to trigger a card insertion event. However, an Adaptec APA-1460 SCSI card
worked without a problem.

4.4. Xwindows setup

The 550CDT uses the S3 Virge/MX graphics chipset. Support for this was
added in XFree86 3.3.2. I don't know if its possible to get it to work with
earlier XFree86 versions; personally I think it's easier to simply obtain
this (or a later) XFree86 version.

The following are various strategically chosen bits from my working
XF86Config file. I am sure it is not optimal but it works and is a good
starting point. I would still recommend using XF86Setup to do the
configuration, using the following information where necessary; for
instance, i haven't managed to find any reference to the sync rates for the
LCD yet.

My experience has indicated that 16bpp support is buggy. Your milage may
vary.

A number of people have asked for the
complete XF86Config file. This is provided with no warrantee
at all. Note that it was generated using XF86Setup from XFree86 3.3.2 and
has not been modified in any way. It will probably not work at all
with any earlier versions of XFree86, although I have not tested this.
Note that if choosing to use this XF86Config you will have to make sure
that /usr/X11R6/bin/X (or /var/X11R6/bin/X if /usr/X11R6/bin/X is a symlink
to /var/X11R6/bin/X) is symlinked to XF86_SVGA, the SVGA server. XF86_S3 or
XF86_S3V will not work.

Garret Cotter (garret@mrao.cam.ac.uk
) has supplied this XF86Config
file. It was also generated from XF86Setup and reportedly works well.

RedHat 5.1 (and earlier) users please note: it seems that the version
of Xconfigurator shipped with at least these versions of RedHat is broken with
respect to the S3Virge/MX chipset as used in this laptop. Specifically it
attempts to use the S3V server to drive the video which, as noted above, will
not work. Since RedHat 5.1 ships with Xfree86 3.3.2 the problem must lie
in Xconfigurator itself. If you are installing using one of these RedHat
distributions, my recommendation is to do one of the following.

Obtain X332set.tgz from the XFree86 binaries directory linked from
www.free86.org (to install, should
be ok to just untar this file as root from the /usr/X11R6 directory) and
use XF86Setup to generate your XF86Config file

Start Xconfigurator with the server option to force it to use the
correct server:

Xconfigurator --server SVGA

Use one of the afore-mentioned XF86Config files.

If Fn-F5 is used to switch output devices, the right quarter of the screen
may contain an image of what is further to the left. This is caused when
various screen timings are set by the switching software but presumedly not
restored. The X server does not know about the switch and so carries on as
if nothing has happened. To restore the proper appearance, do

to switch to a different resolution and then back to the desired one. This
requires that you have at least 2 resolutions defined for the colour depth
being used.

4.5. Internal modem

The 550CDT can be fitted with an optional internal modem. This device shows
up as COM2 under windows. However, at the hardware level the modem is a
Toshiba modem port and only appears as COM2 under windows due to the
use of a VxD. That is, the modem does not implement a true RS232
communication port; rather it is a proprietory port on the ISA bus. As
a side note, the PCI device identified as

in /proc/pci is actually the infrared port controller, not the modem device.
(Toshiba also told me that the Tecra 750/780's built in MARS modem chip is
not a PCI device either, which contradicts other sources of information on
the web. In any case it's not all that important).

The upshot of this is that the 550's internal modem will not work
under Linux. If you wish to use a modem you will have to use either an
external modem plugged into the COM1 port or obtain a PCMCIA
modem. In either case it would probably be a good idea to disable the
internal modem (using the BIOS settings).

Some people will notice that Linux does seem to detect COM2 during bootup
and identifies it as an 8250 UART. According to Toshiba, the Toshiba modem
port does actually have a control port at 0x2f8; this is probably the reason
why the COM2 probe identifies something and why it only "detects" an 8250
UART.

5. Other sources of information

"Linux on the Toshiba Tecra series laptops"

available as the link
Toshiba Tecra 710CDT and 720CDT via the Linux Laptop Homepage.
This used to be found at
http://www.cs.utexas.edu/users/kharker/linux-laptop/, but as of December
2012 (and probably much earlier) the URL no longer works. The Linux
Laptop homepage content may be been partially transferred to
http://www.linux-laptop.net/, but the pages referred to above (plus a link
to the present Tecra 550CDT document) do not appear to be present.

PCMCIA-HOWTO

distributed with pcmcia-cs-* distribution. Also available whereever
the Linux Howtos are found.