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.2. Revision history

Version 1.0 - 3 June 1998

Version 1.1 - 13 August 1998

Version 1.2 - 18 August 1998

Version 1.3 - 21 August 1998

Version 1.4 - 30 October 1998

Version 1.5 - 11 April 2002

Version 1.6 - 3 December 2012

1.3. Feedback

If you have any comments, suggestions or additions to the information in this document, please send them to me, jwoithe@physics.adelaide.edu.au.

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!

Update: 11 April 2002: To quote from the latest PCMCIA howto available from the Linux PCMCIA information website:

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:

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
I enabled everything except "Kernel math emulation" and "Limit memory to low 16Mb". The processor type is "Pentium".
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.
ISDN subsystem
Not used.
CD-ROM drives (not for SCSI or IDE/ATAPI drives)
Not used.
Filesystems
Included "Second extended fs support", "DOS FAT fs support", "MSDOS fs support", "VFAT (Windows-95) fs support", "/proc filesystem support", "NFS filesystem support" and "ISO9660 cdrom filesystem support".
Character devices "Standard/generic serial support", "Parallel printer support", "Mouse support (not serial mice)" and "PS/2 mouse support"
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): 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.

  Section "Monitor"
    HorizSync   31.5-48.5
    VertRefresh 55-90
    Modeline "1024x786" 65.00 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
    Modeline "800x600"  50.00  800  856  976 1040 600 637 643 666 +hsync +vsync
    Modeline "640x480"  36.00  640  696  752  832 480 481 484 509 -hsync -vsync
  EndSection

  Section "Device"
    :
    # XF86Setup puts a number of commented out options in here.  They don't
    # seem to be necessary.
  EndSection
Pietro Terna (pietro.terna@torino.alpcom.it) has noted:
  My monitor choice has been Custom: 
    "NonInterlaced SVGA, 1024x768 @ 60 Hz,
    800x600 @ 72 Hz".
  I'm using version 3.3.2 of the XFree86 stuff.
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.

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
  CTRL-ALT-Fn-;   (aka CTRL-ALT-Numeric_+)
  CTRL-ALT-Fn-p   (aka CTRL-ALT-Numeric_-)
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
  Bus  0, device  10, function  0:
    Communication controller: Toshiba Unknown device (rev 20).
      Vendor id=1179. Device id=701.
      Slow devsel.  IRQ 11.  Master Capable.  Latency=64.  
      I/O at 0xffc0.
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.
/usr/X11R6/lib/X11/doc/README.S3V
distributed with XFree86 3.2.2.