Linux on the Toshiba Satellite 335CDS

Author: Michael Minn (see for current contact info)

May 27, 2006

Describes how to set up a Fedora Core 3 Linux system on a Toshiba Satellite 335CDS notebook computer.

1. Introduction

The following document describes how I set up a Fedora Core 3 on a Toshiba Satellite 335CDS notebook computer, a mid-range laptop built in late 1998:

Linux is a reasonable choice for this machine, not only for the virtues of going open source, but because the machine is too small and underpowered to run contemporary Micro$oft operating systems. However, you should not expect 3Ghz Xeon performance and you might find the performance of Windoze 98 more satisfying.

While this document references a recent distribution, an older kernel and distribution may be more appropriate for your situation if your primary concerns are disk space or speed. My installation pages for older distributions are archived:

The following instructions assume some rudamentary knowledge of Linux and/or Unix systems, although installation on this particular machine is relatively simple. You will need to know how to edit a text file - vi is an old standard console editor, although it's rather confusing to learn.

I provide no guarantees for any procedures stated in this document. You're more than welcome to e-mail me if you've got a problem, but I can't guarantee a prompt or helpful reply. Like many things in the Linux're on your own. I would, however, appreciate any errata that you can point out so I don't mislead anyone else.

The definitive source for Linux laptop information is the Linux on Laptops Page.

2. Hardware Issues

Memory: By contemporary standards, this machine will run very slowly. A memory upgrade is essential and inexpensive. Trying to run Linux in 32MB RAM will force the machine to run continuously in virtual memory from an old, slow and noisy hard drive. 64MB RAM upgrades (to a total 96MB) are still available as of this writing. Upgrades to the maximum 162MB require specially configured packages (to fit in the tiny memory slot) that are expensive and difficult to find.

Hard Drive: The hard drive in this machine is small, noisy and slow. An upgrade to a newer hard drive will give you more space for software and user files. However, unlike some other machines, a new hard drive will not radically improve operating speed since the major bottlenecks are the slow CPU, system bus and drive controller. Large applications, like OpenOffice, can take up to two minutes to load.

The hard drive is located in a small compartment on the bottom front of this machine and uses standard 2.5" laptop ATA/IDE hard drives.

PCMCIA ProblemsWith default BIOS settings, PCMCIA services may cause an unrecoverable kernel fault both on installation and when booting. During installation, the installer will freeze at the "Initializing PC Card Devices" screen. RH 7.2 issued the following message at boot time before crashing:

	PCI: No IRQ known for interrupt pin A of device 00:13.0.
	Please try using pci=biosirq
	PCI: No IRQ known for interrupt pin B of device 00:13.0.
	Please try using pci=biosirq

This problem can be fixed by changing the BIOS setting for the PC Card. AS THE COMPUTER IS BEING REBOOTED OR TURNED ON, hold the <ESC> key down. The computer will prompt you to press the F1 key - do so. This will bring up the System Setup utility.

Press the <PgDn> key to go to page 2/2 of values. Press the Down Arrow key to advance the cursor to the "PC CARD" Controller Mode value. It probably will be set to "Auto-Selected". Press the space bar until it reads "CardBus/16-bit".

Then press the <End> button to exit the utility and respond "Y" when asked "Are you sure?". The system will reboot and you should have no problems with PCMCIA services.

Many thanks to Chad Wood for providing this fix.

3. Splitting Your Windoze Partition

The Toshiba 335CDS came with Windoze 98 preinstalled on a single partition. As such, FDISK can't be used to create a partition for Linux. However, Red Hat (and most other distributions) ship with FIPS (a DOS utility) that permits you to split your single partition into two partitions.

Linux Only? Since the hard drive on the 335CDS is only 4GB, you may want to consider making your system a Linux only system, as opposed to a dual-boot system that allows you to use Windoze or Linux. Linux keeps getting more bloated with each release and a reasonable installation will take up around 2GB of disk space. With around 1GB needed for Windoze and some space for Windoze user files, that leaves you only 1GB of space for Linux user files. Not much.

Backup: Make sure to perform a backup of any important files on your Windoze system. Although this partitioning process should leave your Windoze files intact, it's better to be safe than Republican. To conserve precious disk space, you should then delete any files you don't need and remove any programs you don't plan to use in the future.

Fonts: If you are creating a Linux-only system, you may want to include the c:\Windows\fonts directory in your backup so you have a selection of TrueType fonts to install later. For copyright reasons, Red Hat does not include any TrueType fonts with the distribution.

Cleanup: Empty the recycle bin before starting the partitioning process. You may also want to consider completely reinstalling Windoze 98 from the recovery disk so your Windoze size is as small and clean as possible

Turn off Virtual Memory: The first trick is getting all of your Windoze files on the lower part of the partition so it can be split. Start your computer and allow it to boot into Windoze. Disable virtual memory from the Windoze control panel. I believe the Windoze swap file is kept on the high part of the partition and that's the section that's going to be moved to Linux

	control panel->system properties->performance tab->virtual memory

Defrag/Scandisk Run the Windoze defrag and scandisk utilities from an M$-DO$ prompt (so you can use the command line options). This will move everything down to the lower part of the partition. When the defrag window comes up, click the SETTINGS button and uncheck the buttons so you DO NOT rearrange so programs start faster and DO NOT check drive for errors. Using these command line options speeds up the process: a full defrag normally takes a few hours, but this one only takes around ten minutes.

	defrag /p /q

Boot Floppy: Before you leave the M$-DO$ window, you need to create a boot floppy and copy the FIPS program to that floppy. This must be done with a floppy since M$-DO$ does not mount the CD-ROM drive. Insert a blank floppy and create a bootable floppy:

	sys a:

FIPS copy: Insert your Red Hat distribution CD # 1. From the MS-DOS prompt or the Windoze Explorer copy the following files from d:/dosutils/fips20/ to your floppy:


Start FIPS: Remove the Red Hat distribution CD, but leave the FIPS floppy in the drive and restart your system. The computer will boot to a DOS prompt. Type FIPS to start the FIPS utility. You will pass through a Welcome screen to a Partition screen. You will get a warning about physical start/end sector not matching logical start/end sector. This is okay, press any key to accept.

Table Adjustment: You will be told Partition table adapted to current drive geometry. Press any key to accept. This will take about five minutes. At this point, the first time I ran FIPS, I got an Error...last cylinder not free message. After I turned off virtual memory and reran defrag, this problem was solved. Hopefully it won't happen to you. Obviously, if it does, FIPS stops here and doesn't split your partition. There is a help file in the d:/dosutils/fips20/ directory on the distribution disk that may be of help. There is also a program called "Partition Magic" that supposedly you can use to create disk partitions. But if FIPS works, you can save yourself $60.

Backup Root Sector: Provided you don't have the last cylinder problem, you will be asked to make backup of root & boot sector. Type 'Y' to accept. Also type 'Y' when asked if you have a bootable floppy in the drive. I have received reports that sometimes FIPS freezes at this point. In that situation it might be easier to just type 'N' and forgo the sector backup. You can probably recreate the boot sector with some kind of disk utility later if you get in a jam or want to restore the machine to Windoze only.

Partition Split You will then be asked to enter start cylinder. You can use the left and right arrow keys to move the partition split around. I chose to give Windoze 756MB, about 200MB over the 500MB consumed by Windoze:

	old: 756.0 MB, cylinder 192, new 3153.9 MB

Accept: FIPS will gives you new partition table. Type 'c' to continue.

Commit: Ready to write new partition scheme to disk: Do you want to proceed:. Type 'y'.

ScandiskAs befits a DOS application, FIPS will crash with a memory allocation error. You can ignore it. Remove the FIPS boot floppy and press ctrl-alt-delete to reboot. Run scandisk (from DOS or the program launcher) and turn your virtual memory back on.

You now have two partitons on your disk and you can start the installation of Linux.


4. Installing Linux

Prior to Linux be sure to backup any files on the hard drive that you may need later. You might also consider making a backup of your Windoze fonts directory (c:\Windows\fonts) so you can use those TrueType fonts with your Linux system.

Once you've dealt with the PCMCIA problem described above, Anaconda, the Fedora installation program, works effortlessly with simple prompts. The following are my choices:

Media Check

Welcome Screen

Language: U.S. English

Keyboard: U.S. English

Installation Type: Custom

Partition: Automatic

Automatic Partitioning: Remove all partitions on the system. I edited the defaults to have /home on a separate logical volume. I also increased my swap space to 256MB

	LVM Volume Groups
		LogVol00			swap	256
		LogVol01	/home		ext3	27520
		LogVol02	/		ext3	10240

	Hard Drives
		/dev/hda1	/boot		ext2	102
		/dev/hda2	VolGroup00	LVM PV	38052

You may get a dialog, "As you don't have much memory in this machine, we need to turn on swap space immediately..." You don't have a choice and you have to commit to install at this point.

Boot Loader Configuration: Default GRUB options are usually fine

Firewall Configuration: Enable firewall (default)

Additional Language Support: (none)

Time Zone Selection

Set Root Password

(reads package info)

Package Group Selection: Choices are your own. Because I upgraded my hard drive, I was able to use selections that take up around 3.5GB. Obviously, if you do not upgrade the hard drive, you will need to make spartan choices to fit on the 4GB drive.

About to Install: Go!!!

Red Hat Linux used to fit comfortably on a single CD. Those days be gone with the dot-com boom. Around 1:15 into the installation, you will be prompted to insert installation disk #2. Around 1:55 into the installation, you MAY be prompted to insert installation disk #3. The complete installation will take almost two hours.

When prompted you can create a boot floppy disk. This is optional and since you can boot from the install CD for system recovery, there's no need anymore.

Post-Install: Fedora now includes a number of self-explanatory post-install steps including an End-User Licensing Agreement (sad echoes of Micro$hit) and configuration of a non-root user.

5. Installation Tweaks

The following are some tweaks I have done to my installation to reflect my personal preferences. Not essential, but given here for your consideration.

Text Login. I prefer to see what's going on with my machine rather than have the boot messages hidden behind a glitzy bitmap. Therefore, I have configured my machine to boot in run level 3 (text mode) rather than run level 5 (X windows mode). This will give you a command line prompt for login. The configuration above (with no KDE or GNOME) will do this automatically, but you can do this at any time. As superuser, edit the /etc/inittab file and change the line:




If you chose text login mode, you will be given a VGA login prompt when you initially boot Linux. After you login, you type startx to start the X Windows desktop. Be aware that the screen will go completely black for a few seconds while X starts.

mwm. It is nice to run under X Windows so you can use multiple terminal windows and so you can use graphical programs like mozilla and gimp. However, the desktops are superfluous for power users. I have discarded GNOME and KDE completely and use Motif Window Manager. You don't get the Start Menu, but you don't have the associated screen clutter and performance hit either. Create a .xinitrc in your home directory (/home/<username>) and type the following lines. This creates a single terminal window, puts a clock window at the bottom of the screen, sets the "desktop" color to blue and starts the window manager. When you type startx, from the text login, it will start. You can create additional terminal windows from a popup menu when you right-click on the desktop.

	xterm &
	xclock -d -update 1 -geometry +819+710 &
	xsetroot -solid navy
	exec mwm

Cron Scripts. Within a few minutes of booting Linux, you may notice a flurry of disk activity. If your system stays on for an extended period of time, you may notice similar activity early in the morning (mine starts at 4:02AM). A program called anacron runs system administration programs on a daily, weekly and monthly basis. The configuration file is /etc/anacrontab runs the script /usr/bin/run-parts, which in turn points to the directories containing other scripts, /etc/cron.daily and /etc/cron.weekly. makewhatis.cron can be very disk intensive, but it is helpful for keeping the database used for the man -k or whatis commands up to date. I deleted /etc/cron.daily/tetex.cron which deletes unused TeX fonts (since I never use TeX). I left tmpwatch (which cleans out unused files in the /tmp directory), and logrotate (which cleans up old system logs).

Unneeded Services. To reduce boot time, improve system performance and enhance security, unneeded services should be turned off. chkconfig can be used to list active services and to turn services on or off:

	/sbin/chkconfig --list
	/sbin/chkconfig <service> on
	/sbin/chkconfig <service> off

Below is a list of things I have turned off.

	kudzu (hardware changes)
	rpcgssd (RPC secure shell daemon)
	rpcsvcgssd (RPC secure shell daemon)
	netfs (automount network file systems)
	haldaemon (some kind of hardware monitor)
	cups (if you don't have a printer)
	irqbalance (multiprocessor support)
	nifd (Howl client network monitor)
	mDNSResponder (Howl DNS client)
	messagebus (application communication)
	mdmonitor (RAID)
	autofs (automount)
	acpi (advanced power mgmt. not available on this machine)
	mdmpd (device monitoring?)
	gpm (some kind of mouse server)
	rawdevices (needed for Oracle)
	rhnsd (Red Hat network)

6. Sound

The Yamaha OPL3-SA sound chip in this machine has always been a problem with Linux because the chip cannot be auto-detected and the documentation for OSS really sucks. Oddly enough, audio doesn't work with the opl3 module but instead with the cs4232 module. /etc/modules.conf contains the parameters needed to use this module and specifies to the Linux sound system (OSS-Free) what modules to load for specific sound devices. Edit the /etc/modules.conf file and add the following lines

	alias sound cs4232
	alias sound-slot-0 cs4232
	alias sound-slot-1   off
	alias sound-slot-2   off
	alias sound-slot-3   off

	alias sound-service-0-0  cs4232 # /dev/mixer
	alias sound-service-0-3  cs4232 # /dev/dsp
	alias sound-service-0-8  cs4232 # /dev/music
	alias sound-service-0-12 cs4232 # /dev/adsp

        options cs4232 io=0x534 irq=5 dma=1 dma2=0 mpuio=0x330 mpuirq=5

Note that with this configuration, only the PCM (audio) channel on the volume control (mixer) works. CD playback volume can be controlled with the volume control slider on the CD player.

Also note that the IRQ is set manually, which means you may have an IRQ conflict with PCMCIA cards. The card will work fine, but audio playback will behave strangely with chunks of audio being constantly repeated.

As I recall, from previous versions, to access the whimpy FM MIDI synth on the OPL3-SA, the opl3 module is needed. However, the configuration above doesn't load it. I never use the thing, so I haven't spent the time needed to figure it out.

Thanks to Thomas Hood for his info on sound module configuration.

7. Networking / Internet

Dial-Up Modem: This machine shipped with a Xircom CreditCard Modem CM-56T, a 56K PCMCIA modem that is no longer manufactured or supported by Xircom. The card should be automatically detected by the kernel and made availble as /dev/ttyS3. You can configure it directly in wvdial.conf.

Modem Problems: I had problems in the past with this and other PCMCIA modems operating very slowly after a short period of operation. This is apparently some bug in the driver module which will probably remain unfixed due to lack of interest. If you really need dialup, you should probably invest in an external serial port modem that will be accessible via /dev/ttyS0. Avoid USB dialup modems as they are usually Winmodems that require proprietary driver software that is not available for Linux.

Ethernet / Wireless: I use an old Linksys PCM100 ethernet card and a Belkin 802.1b wireless card. Before purchasing any PCMCIA cards, you should Google to verify that Linux drivers are available. Older hardware is more likely to be supported than newer hardware. Some hardware requires drivers that require extensive tweaking to work - be forewarned.

8 Accessing the Windoze Partition

If you left a Windoze partition on the hard drive, it can be read seamlessly from Linux. In the partitioning setup given above, the disk is mounted on the mount point "/windoze". However, the default mounting mode will only allow the superuser to modify it.

You can manually edit the /etc/fstab file and modify the mounting parameters to make the /windoze partition more accessible. If you open the file (as superuser) you will see six columns that should be more or less self-explanatory.

You should find the line with a mount point of /windoze. In the fourth column you should add the following parameters so the line looks something like the following:

/dev/hda1   /windoze   vfat   exec,dev,suid,rw,uid=500,gid=500,umask=0  0  0

The uid and gid should be set to the user that you want to own the partition. You can find a user ID (a three digit number) by typing "id" from a console when logged in as that user. You should then unmount and remount the partition and everything should be accessable:

	umount /windoze
	mount /windoze

There are utilities to read Linux partitions in Windoze...a terrifying thought and something I have never tried.

8. Returning to Windoze

If for some reason you want to return your Toshiba 335CDS to Windoze 98, you can use the recovery CD that shipped with the computer.

When trying to restore my 335CDS from recovery CD, Windoze 98 asked me for an authenticity certification number. Having long ago pitched my Microsoft manuals, I didn't have it. Microsoft now requires a label on the OEM computer with that number. I discovered, much to my delight that I could use the certification number from another Windoze 98 machine to certify the recovered Windoze 98 on my old machine.

9. System Specifications

FLOPPY: Generic NEC Floppy Disk
Hard Drive: Generic IDE Disk Type 01 (Acculogic IDE Controller)
Display: Chips and Tech. 65555 PCI (Toshiba)

PCMCIA: Toshiba ToPIC97 CardBus Controller IRQ 11, Memory 04080000-04080FFF
Toshiba ToPIC97 CardBus Controller IRQ 11, Memory 04082000-04080FFF
Xircom CreditCard Modem CM-56T: I/O 02E8-02EF, IRQ 3

USB: NEC PCI to USB Open Host Controller: IRQ 11, Memory Range FCFFF000-FCFFFFFF
Video Capture: Nogatech-Nogavision
Sound: Yamaha OPL3-SAx Sound System
	I/O Ranges: 0220-022F, 0539-0537, 0388-038F, 0330-0331, 0370-0371
	IRQ 05
	DMA 01, 00
COM1: I/O=03F8-03FF, IRQ 04
LPT1 (printer): I/O 0378-037A, IRQ 07

Partitions: 64M Swap, 16M /boot, 1000M /(root - grow to disk)
Monitor: Generic LCD Panel
X Configuration: Chips & Technologies CT65555

My role as an author is to think about things that the public is indisposed to dwell on, and to present a framework for understanding a particular set of challenges. (James Howard Kunstler)