Linux on the Toshiba Satellite 335CDS

Author: Michael Minn (see www.michaelminn.com for current contact info)

February 14, 2004


Describes how to set up a Red Hat 8.0 Linux system on a Toshiba Satellite 335CDS notebook computer.


1. Introduction

2. Splitting Your Windoze Partition

3. PCMCIA Problems

4. Installing Red Hat Linux

5. Sound

7. Internet Connection

8. Accessing the Windoze Partition

9. True Type Fonts

10. Open Office

11. Gimp

12. Some Console Commands You May Need to Know

13. Returning to Windoze

14. System Specifications


1. Introduction

The following document describes how I set up a Red Hat 8.0 system on a Toshiba Satellite 335CDS notebook computer. I am providing this information to help others avoid the problems I encountered when installing Linux on a 335CDS or similar Toshiba notebooks.

The Toshiba 335CDS is a mid-range laptop built in late 1998 running an Intel 200Mhz Pentium II. It has a 4 GB hard drive and built-in DVD/CD-ROM drive. It comes with the standard 32 MB of RAM which I subsequently upgraded to 64 MB. Upgrades to the maximum of 162 MB are no longer commercially available.

WARNING: This machine will run Linux extremely slowly unless you have the full memory upgrade. If you have access to an older distribution, that is probably the best course of action for this machine. I am quite happily running Red Hat 7.2 (2.4.7-10 kernel), which is about as far back as you probably want/need to go. Earlier versions with 2.2 kernels work fine, but lack modern amenities like USB support and sometimes have flaky drivers. Older versions of Slackware are available on their website. You can see my installation pages for these older Red Hat distributions.

Under contemporary distributions, a standard X session uses around 100MB with no user applications running, meaning you are constantly running in virtual memory from a slow, old disk drive. Applications take a long time to load...OpenOffice can take up to two minutes to start. Mozilla takes over a minute. Booting also takes a couple of minutes and windows take awhile to pop up. Freedom from the Evil Empire has it's price.

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 world...you'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. 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
	scandisk

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:

	RESTORRB.EXE
	FIPS.EXE
	ERRORS.TXT

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.

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.

References:


3. PCMCIA Problems

Unfortunately, the dreaded PCMCIA services problems which plagued 6.2 and went away for 7.0, returned for 7.2 and remain for 8.0. As initially installed, the PCMCIA services will cause an unrecoverable kernel fault both on installation and when booting. During installation, the installer will freeze at the "Initializing PC Card Devices" screen. Since you can't even install 8.0 with this bug, the boot problem is irrelevant. 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.


4. Installing Red Hat Linux

Prior to Linux installation 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 you Linux system.

Once you've dealt with the PCMCIA problem described above, Anaconda, the Red Hat Linux 8.0 installation program, works much more cleanly than previous versions. You are given some relatively simple prompts. The following are my choices:

Language Selection: English (default)

Keyboard Configuration: U.S. English (default)

Mouse Configuration: 3 Button Mouse (default)

Installation Type: Workstation

Disk Partitioning Setup: Automatic Partitioning will not work if you are keeping a Windoze Partition (dual-boot system). Use Disk Druid and edit the existing partitions.

The Windozs partition is /dev/hda1. Edit it and make the mount point "/windoze". Obviously, you should leave the data unchanged.

Delete the new partition you created with FIPS (/dev/hda2). You should then add the following new new partitions. The "hdax" may come up as different numbers, but the size and configurations should be the same.

	/boot (98MB) - becomes /dev/hda2. You should probably check for bad blocks

	Linux Swap (197MB - Linux swap) - becomes /dev/hda4 and /dev/hda5

	/ (root - 2859MB - ext3 - Select "Use Remaining Space")

Boot Loader Configuration: GRUB (default)

Firewall Configuration: Medium (default)

Additional Language Support: English only (default)

Time Zone Selection: Choose the appropriate one for your area.

Account Configuration: enter a root password. You should also add at least one user account since it is safer to run Linux as a non-root user.

At this point, the installer said it was reading package information and appeared to freeze. I moved the mouse and the next screen popped up.

Workstation Defaults: Customize the set of packages to be installed.

Package Group Selection: Since I had previously used KDE with all my Linux installations, I decided to try Gnome for awhile. I added the "Engineering and Scientific", "Authoring and Publishing" and "Kernel Development" packages. I deselected "Games", "GNOME Software Development", and "Text-Based Internet". This provided a total install size of 1,992MB.

About to Install: This is your last chance to abort before starting the install process. When you're ready...(next)

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 you can do it later.

Graphical Interface (X) Configuration: Chips & Technologies CT65555 (default)

Monitor Configuration: Choose GENERIC->GENERIC LAPTOP DISPLAY PANEL 800x600. The Horizontal Sync and Vertical Sync values should automatically change to type "31.5 - 37.9" and "40-70", respectively. (next)

Custom Graphics Configuration: Choose "High Color (16 bit)", "800x600" screen resolution and "Text" login type. You can press "Test Setting" if you don't believe me.(next)

  • Installation is complete. You will need to remove the boot CD after you hit (next) but before the system begins rebooting.

    6. Sound

    6.1 Internal Sound Chip

    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. Since the old sndconfig program is no longer distributed with Red Hat, you'll have to configure it by hand, which is actually easier than the old way. 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 midi opl3
    	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-1  opl3 # /dev/sequencer
    	alias sound-service-0-2  opl3 # /dev/midi
    	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 opl3 io=0x388
            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.

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

    6.2 MIDI

    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.

    Numerous USB MIDI convertor options exist (including most Roland desktop MIDI products) and can use the USB-MIDI kernel module.

    5.3 Real Player

    A Real Player 7 is available for Linux. You have to register to get it, and you download a RPM file that can be installed with RPM. Note that you have to use the --force option because the Real Player will take over as the default application for WAV files and there is a conflict in MIME types.

    	$ rpm -i --force rp7_linux20_libc6.i386.cs1.rpm
    

    As of this writing, Real Player 9 (i.e. RealONE Player) is available for Linux as an alpha test. I haven't actually tried installing it on this machine.


    7. Internet Connection

    The Toshiba Satellite 335CDS shipped with a Xircom CreditCard Modem CM-56T, a 56K PCMCIA modem that is no longer manufactured or supported by Xircom. Red Hat 7.2 will automatically detect the modem.

    GNOME provides an internet connection setup utility under System Tools->Internet-Configuration Wizard

    After starting the utility, you will be prompted for the superuser password. Enter it.

    Select Device Type: Modem connection

    The utility will scan all normal modem device files and should find the Xircom Credit Card modem on device /dev/ttyS3.

    You will then be prompted for a Phone Number, user name and password as provided by your internet service provider.

    Apply the profile and you're ready to go.

    To connect to the internet, use the System Tools->Network Device Control and chose to activate the connection.

    On previous versions the modem worked, but very slowly. With Red Hat 8.0, everything is so slow on this box it's hard to tell where the bottlenecks are. Dave Looney has some experience with the CM-56T and sent me the following tip to configure the modem port to a higher speed. As SUPERUSER execute the following console commands. You also should edit the /etc/rc.local file (as SUPERUSER) and add this command to the bottom of the file.

    	$ setserial /dev/ttyS3 spd_vhi
    

    He also suggested that there may be a problem related to inetd. I've never had time to investigate.

    The browser given on the start menu under Internet is is Mozilla. The e-mail program is Ximian. Both take forever to load.

    8 Accessing the Windoze Partition

    The Windoze partition 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
    

    Frank Wilson notified me that there are a couple of utilities that permit access to the Linux partitions from Windoze...a terrifying thought. I have not tried either of the two schemes he mentioned and I can not endorse or reject them.

    fsdext2 is a utility that will mount the Linux partition read-only on the next available Win95 drive letter (D:, E:, etc).

    explore2fs (no URL given) will let you both read and write to your Linux filesystem from DOS/Windoze. However, this is certainly less safe than read-only access.

    9. True Type Fonts

    Linux is notorious for it's ugly fonts. One of the things Micro$oft actually has done well (and there are a few things) is true type fonts. Linux includes support for true type fonts in the font server XFS. However, true-type font files are proprietary so they can't be distributed with the Linux CDs. Since you are making a system configuration change, you must be SUPERUSER to perform these commands.

    Paths to font files are specified in the configuration file, /etc/X11/fs/config. The easiest place to find True Type fonts is the Windoze partition of your hard drive. You will need to modify the "catalogue" section of this file to point to your Windoze fonts directory. Your modified "catalogue" section should look something like this. The only change to the file should be the last line and the comma separator on the next-to-last line.

    	catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
    		/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
    		/usr/X11R6/lib/X11/fonts/misc,
    		/usr/X11R6/lib/X11/fonts/Type1,
    		/usr/X11R6/lib/X11/fonts/Speedo,
    		/usr/X11R6/lib/X11/fonts/75dpi,
    		/usr/share/fonts/default/Type1,
    		/windoze/windows/fonts
    

    Run the TTMKFDIR & MKFONTDIR utilities to build the fonts.dir and fonts.scale files used by XFS:

    	$ cd /windoze/windows/fonts
    	$ ttmkfdir > fonts.scale
    	$ mkfontdir
    

    Since Gnome will not allow you to log back out to the VGA shell, you need to reboot. Once upon a time, you could just go back to the shell, killall xfs and restart XWindows. Red Hat becomes more and more like The Beast every day.

    If you want to add new true type fonts, you can copy the .ttf files to the /windoze/windows/fonts directory and rerun the ttmkfdir/mkfontdir sequence above.

    References:

    	http://www.linuxdoc.org/HOWTO/Font-HOWTO.html
    	http://www.linuxdoc.org/HOWTO/Font-HOWTO-4.html
    	http://www.redhat.com/mirrors/LDP/LDP/lame/LAME/linux-admin-made-easy/x613.html
    	http://www.frii.com/~meldroc/Font-Deuglification.html.
    	http://www.linuxdoc.org/HOWTO/mini/FDU/index.html
    

    10. Open Office

    By far, the best office package for Linux is Open Office, or it's proprietary twin, StarOffice. That is not to say that it's a great office package, but all the other suites I've tried have had unacceptable limitations and bugs. Open Office now comes with Red Hat Linux and I'll leave it to you to explore further.

    Note that it takes around two minutes to load this bloatware package on this underpowered machine.

    11 Gimp

    Perhaps the nicest piece of end-user software that comes with Linux is GIMP (the Graphics Image Manipulation Program), an excellent image editor similar to Photoshop (tm).

    GIMP is invoked by typing "gimp" on a console or using "gimp" as the target of a new nickname. On your initial startup of GIMP (as each different user) you will be prompted for an install which lasts only fifteen seconds or so.

    My one major issue with GIMP is the absence of a decent native vector graphics facility. Having used Fireworks under Windoze, I got used to having seamless integration between vector design and bitmap effects and in the absence of a high-end vector facility to integrate with GIMP, I ended up spending $200 on Corel Draw, which proved to be too buggy to use effectively.


    12. Some Console Commands You May Need to Know

    Having been away from the Unix world for awhile (and never having been a system administrator), there were a number of things I wanted to be able to do from the console (rather than through a desktop utility). These are here as a reminder to me, but if they're helpful to you, great.

    When you first boot Linux, you will be presented with a text login prompt (in VGA mode). When you log in you will get a text prompt. Type "startx" at the prompt to start X Windows and the graphical desktop.

    	Find available disk space
    
    		$ df
    
    	Find a file in a directory
    
    		$ find [directory] -name "[file name (with wildcards)]"
    
    	Format a floppy
    
    		$ /sbin/mkdosfs /dev/fd0
    
    	Create a soft link (i.e. have /home/user/windows directory point to
    	/windoze/user)
    
     		$ ln -s /windoze/usre /home/user/windows
    
    	To Kill X Windows if it gets locked up
    
    		<ctrl><alt><backspace>
    
    	Reboot
    
    		$ reboot
    
    	Power off
    
    		$ poweroff
    

    13. 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 my new computer to certify the recovered Windoze on my old machine.


    14. System Specifications

    CD-ROM: TEAC CD-220EA
    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