Linux on a Toshiba Portege 3300CT

3300 A colleague at work passed an old laptop to the department – the intention being that we put it with the other Waste Electrical and Electronic Equipment for disposal. It’s an old Toshiba Portégé 3300CT which would originally have been supplied with Windows 95 but which was now running Windows 98. “Running” like a three-legged dog. It’s a sweet little laptop though and I couldn’t quite bring myself to consign it to the scrap heap, particularly when it seemed to be fully functional. “It needs Linux!” I thought to myself.

I’ve installed Linux on a few older machines, to drag a bit more life out of them. VectorLinux has been my distribution of choice in the past, but on this occasion I really struggled to get it to install. There were a few problems:

  • The laptop has limited ports and no docking station. We’re stuck with PCMCIA, a single USB 1 port, a modem, a proprietary floppy drive port and not much else.
  • There is an external PCMCIA CD-ROM drive. Eventually I discovered that you can boot from this if you hold down “C” during startup. Unfortunately driver support for this CD-ROM drive is limited. During the VectorLinux install, it could boot from the CD but subsequently could not find the CD in the installation process.
  • It is possible to boot from floppies. Tracking down a floppy-initiated install for VectorLinux is a challenge, but I found that some of the archived Slackware distributions have a three-disk set floppy boot process that loads sufficient drivers to enable installation to continue from an ISO image stored on the existing Windows partition.
  • Unfortunately, the VectorLinux install didn’t seem to recognise any of the PCMCIA or USB network cards I threw at the laptop. I searched for manually installable drivers (and indeed found some – source code only) but the Linux environment was unable to make the drivers.

In my wrangling with VectorLinux, I removed as much bloat as possible from Windows 98. Having installed a USB network card I was able to transfer an ISO image for the install onto the Windows partition. I then shrank this using FIPS (you have to restart in DOS mode). VectorLinux is able to install from an ISO image on the hard drive, once you’ve got the kernel and ram disk loaded up.

Because VL didn’t recognise any network card, I started to cast my eye wider – tried booting from a Knoppix Live CD (no dice) and finally settled on attempting a Debian install. I’ve had good results with Debian in the past, particularly with hardware support, but I didn’t consider it to start with because I think of it more as a “full blown” distribution – not necessarily one best suited to older, slower hardware.

To give Debian “room to breathe”, I thought it best to place the ISO image (for CD 1) on a partition more or less on its own. To do this, I removed the hard drive from the laptop (a bit of a fiddly job, but do-able). I popped it into a USB hard drive caddy and then used another PC to clear out and defrag the Windows partition and copy across the ISO, Linux and initrd images. Having done that, I attached the USB caddy to a laptop, booted the laptop with a GParted CD and resized the Windows partition leaving just a little bit more space than the ISO required. That done, I returned the laptop drive to its normal location.

Using a Windows 98 boot floppy (DOS wouldn’t work since the parition was FAT32) I copied loadlin and the Windows 98 “system files” onto the hard drive – it could now be booted from again.

Finally, I booted from the hard drive and issued the command “loadlin vmlinuz /dev/ram rw initrd=initrd.gz”. The installer fired up, found my ISO image and most importantly recognised my USB network card. The system is now fully installed and up and running.

I’m not quite sure what I’m going to use it for – possibly as a network monitoring system or for some web development testing work. For sure, it’s not going in the bin – just yet.

Feel free to comment if you would like me to expand on any of the points above.

Image copyright © Inverse Net. All rights acknowledged.