Linux on the Toshiba Satellite 1905-S303

Author: Michael Minn (see for current contact info)

May 11, 2005

Describes how to set up Fedora Core 2 Linux on a Toshiba Satellite 1905-S303 notebook computer.

1. Introduction

The following document describes how I set up Fedora Core 2 Linux on a Toshiba Satellite 1950-S303 notebook computer. The Toshiba 1950-S303 is an excellent mid-range laptop manufactured in late 2002 with the following specs:

Toshiba's frequent offerings have often involved multiple extremely similar models and incremental (rather than revolutionary) changes from earlier models. As such, various parts of this document may apply to a wide variety of Toshiba models. I am providing this information to help others avoid the problems I encountered.

The definitive source for Linux laptop information is the Linux on Laptops Page. I have additional pages for installing Red Hat 8.0 and SuSE 9.0 on this machine.

This document assumes some minimal UNIX/LINUX knowledge. 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.

2. Heat Sink

The mighty 2.4 Ghz Pentium IV in this machine is really a desktop processor and generates ALOT of heat. Correspondingly, the internal fan for cooling it is REALLY loud. The fan has three speeds and is controlled by a thermostat. The machine will shut down with NO WARNING to protect itself if the CPU gets too hot.

If you have overheating problems, you probably need to clean your heat sink. Because this machine sucks so much air and has no air filter, the heat sink will get clogged with dust (especially if you live in a dusty environment or have pets) and the subsequent reduction in air flow will cause a once happy system to shut down at times of high processor load.

Cleaning the heat sink on this machine is not a trivial operation, requires some special tools/supplies and should not be attempted unless you are cognizant of correct PC service techniques. I did not observe adequate static abatement techniques and blew out my motherboard - turning the machine into a $1,700 door-stop. You've been warned.

There are a couple of articles online here and here detailing procedures for cleaning the heat sink. Note that the CPU in this machine uses a zero insertion force socket and is relatively tightly adhered to the heat sink with thermal compount. Provided you can safely get the screws out (without them falling into the machine and causing electrical havoc), you should be able to easily lift the sink/CPU from the socket, blow out the dust with canned air (not a vacuum cleaner) and return the CPU safely to its nest. No cleaning solution or additional thermal compound should be needed. I think my problems started when a couple of screws fell into the machine and rolled around before retrieval, so be careful with those screws.

Also note that the fan intake is on the bottom of the machine and the output vent is on the left rear. If you block the airflow and the processor overheats, This can be an unpleasant surprise when you are actually using the laptop on your lap, you accidentally block the intake and the machine shuts down, causing you to lose hours of work.

If you live/work in a dusty environment, the air intake on the bottom of the machine can become clogged and cause overheating. You may want to inspect it occasionally and clean it with a cotton swab.

There are commercial laptop cooling pads available, although they won't compensate for a clogged heat sink. Before I was aware of the heat sink problem I bought a small 120V box fan from Radio Shack and placed it directly adjacent to the vent slots on the far left corner of the machine...sucking air out of the machine. The fan must be flush with the vent and the corresponding load on the fan makes it even louder than it normally would be. However, this proved inadequate as the restriction of air flow by dust became too great.

3. Installing Fedora

The Fedora installer (Anaconda) is relatively straightforward and should require no special concerns if you have some basic Linux knowledge. I am including my choices here for your reference

NTFS Partition: If you want to keep an NTFS partition for a dual-boot Windoze/Linux system, you can split the monolithic NTFS partition that comes with normal XP installation with the NTFSRESIZE utility. I last split my partition when I first bought this machine and I have detailed my experiences on my Redhat 8.0 Page. The SuSE installer includes this capability natively, but Fedora does not.

Media check: May be advisable since you don't find out disk 3 has a problem after your old OS has been blown away

Graphical installation: Works fine with this video chip

Welcome screen

Language selection - English

Keyboard configuration - U.S. English

Monitor Configuration

Unable to align partition properly: You can ignore this error message

Installation type: Custom gives you the most flexibility

Disk partitioning setup: Manually partition with Disk Druid

Disk setup: I was upgrading this box from SuSE 9.0, so these changes reflect that older installation.

Boot Loader Configuration (default)

Network Configuration (default): eth0 with DHCP

Firewall Configuration: Defaults are appropriately stiff

Additional Language Support: only English USA

Time Zone

Set root password

Package Group Selection

	X Window System
	(no Gnome or KDE)
		Engineering & Scientific
		Graphical Internet
		Text-based Internet
			lynx (browser)
			mutt (mail user agent)
		Sound and Video
			Base Packages
		Authoring and publishing
			linuxdoc-tools (SGML)
			xhtml1-dtds (DTD for XHTML)
			xmlto (XML conversion tools)
		Games (none)
		Server Configuration Tools
		Web Server
		Mail Server
		Windows File Server
		DNS name server
		FTP server
		SQL database server
		News server
		Network Servers
		Development tools
		Kernel development
		X Software development
		(Gnome software - no)
		(KDE software - no)
		Administraton tools
		System tools
		Printing support
	Miscellaneous (Everything/Minimal - No)
	Total 2,847Mb

About to install: Installation with the above configuration used disks 1-3 (not 4) and took about 20 minutes.

User Account: The custom configuration does not include creation of a user other than root. To preserve system security and integrity, you should spend as little time as possible logged in as root. Therefore a new user should be created. Log in as root and from the command line:

	useradd <username>
	passwd <username>

Motif Window Manager (MWM). As an old-school Unix guy, I've never found desktops to be the most comfortable way to work. I actually prefer typing commands rather than using the mouse to hunt and peck. Helps the carpal tunnel in my right hand as well. However, X Windows is still useful for graphical applications and having multiple terminal windows.

Therefore, I use the very simple Motif Window Manager instead of KDE or Gnome. 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 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

4. 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.

Touchpad. My personal opinion is that the touchpad is the worst laptop innovation of the last five years. Aside from the fact they're hard to use, I began developing significant wrist problems in the months immediately after getting this machine. Unfortunately, almost all laptops are equipped with touchpads nowadays. I purchased a USB trackball mouse that largely alleviated the wrist problems. If a supported mouse is plugged in when installing Linux, it will probably be detected and configured during installation. However, the touchpad will also be enabled. Input devices are located in the /dev/input dirctory and the /dev/input/mice entry apparently aggregates all connected pointing devices. /dev/input/mouse0 is just the touchpad and /dev/input/mouse1 is dynamically assigned to the USB mouse. Edit your /etc/X11/xorg.conf file and change: (reference)

	Section "InputDevice"
		Identifier  "Mouse0"
		Driver      "mouse"
		Option	    "Protocol" "IMPS/2"
		Option	    "Device" "/dev/input/mice"
		Option	    "ZAxisMapping" "4 5"
		Option	    "Emulate3Buttons" "yes"


	Section "InputDevice"
		Identifier  "Mouse0"
		Driver      "mouse"
		Option	    "Protocol" "IMPS/2"
		Option	    "Device" "/dev/input/mouse1"
		Option	    "ZAxisMapping" "4 5"
		Option	    "Emulate3Buttons" "yes"

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.

	messagebus (application communication)
	mdmonitor (RAID)
	autofs (automount)
	mdmpd (device monitoring?)
	cups (printer)
	irqbalance (multiprocessor support)
	kudzu (hardware changes)
	netfs (automount network file systems)
	gpm (some kind of mouse server)
	rawdevices (needed for Oracle)
	rhnsd (Red Hat network)

5. Power Management and Fan

Older laptops used BIOS driven APM power management but newer laptops (such as this one) use the OS driven ACPI (Advanced Configuration and Power Interface). This handles hibernation/standby as well as the fan and disk shutdown.

A kernel module is available for viewing and setting custom functions (like fan and battery status) in this system's Phoenix BIOS. Despite the name, you need the omnibook kernel module, available here. When installed, this module provides system files in the /proc/omnibook system directory. Download the kernel module, make install and modprobe omnibook to get it up and running. Full details on the /proc/omnibook/* files are given in the README with the kernel module.

This module can be loaded at boot time by adding the following line to /etc/rc.local:

	/sbin/modprobe omnibook

When diagnosing overheating issues, listing /proc/omnibook/temperature will list the current CPU temperature. The CPU automatically shuts down when it gets over 70°C for a few seconds.

The toshiba_acpi module is written for a different BIOS and DOES NOT WORK on this machine.

There is some Alpha level support for ACPI (ACPI4Linux), but it doesn't seem to handle the fan very well. Other features like suspend to disk are not yet supported, so I don't see any reason to have the ACPI daemon (acpid) running. Because the kernel and file system have daemons that frequently write to the disk drive, the disk drive is never inactive long enough to spin down.

To turn the ACPI daemon off:

	chkconfig acpid off

6. Internal Modem

The internal modem built into this machine is a Winmodem, which is basically a cheap hardware telephone interface with the actual modem processing provided in software drivers. This machine uses a Conexant SmartMC II (Lucent?) HSF chip connected to an Intel 82801BA/BAM (ICH2/ICH2-M) AC'97 Modem Controller.

The following resources can be helpful for WinModem issues:

The slmdm version 2.9.10 driver from Smart Link works with this modem. Later versions may work as well, although I did have problems with versions between 2.7.10 and 2.9.10.

Download: Download the Linux driver from Smart Link. Decompress and make the tarball

	tar -zxvf slmodem-2.9.10.tar.gz
	chmod slmodem*
	make install

Start: As the name implies, the slmodemd uses a daemon that must be started before dialing. You must load the slamr kernel module before starting the daemon. You can include this in a script to simplify connection.

	/sbin/modprobe slamr
	/usr/sbin/slmodemd --country=USA /dev/slamr0

When you start the daemon, it should issue a message like:

	SmartLink Soft Modem: version 2.9.10 Mar 23 2005 11:52:23
	symbolic link `/dev/ttySL0' -> `/dev/pts/2' created.
	modem `slamr0' created. TTY is `/dev/pts/2'
	Use `/dev/ttySL0' as modem device, Ctrl+C for termination.

As the message indicates, the modem device provided by the daemon is /dev/ttySL0.

Dial: Finally, you need a program to dial out and establish the PPP connection. I use wvdial, an excellent, no-nonsense command line program that can be used to test and use the modem. All you need is one simple config file. Given the modem setup above, the following is my /etc/wvdial.conf file. You should modify the username/password to the one given by your ISP. Note the Carrier Check parameter is necessary to use this driver

	[Dialer Defaults]
	Modem = /dev/ttySL0
	Phone = 1-212-202-6884
	Username = (ISP username)
	Password = (ISP password)
	Carrier Check = no

FYI: to list information on the internal modem, use the /sbin/lspci -vv command, which dumps the following info:

00:1f.6 Modem: Intel Corp. 82801BA/BAM AC'97 Modem (rev 05) (prog-if 00 [Generic])
	Subsystem: Toshiba America Info Systems: Unknown device 0001
	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- 
		VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium 
		>TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Interrupt: pin B routed to IRQ 11
	Region 0: I/O ports at 2400 [size=256]
	Region 1: I/O ports at 2000 [size=128]

Additional info on the modem from Windoze is as follows:

	Driver Provider: Agere
	Driver Date 6/21/2002
	Driver Version
	I/O Range 2400-24FF
	I/O Range 2000-207F
	IRQ 11
	Intel AC97
	Conexant SmartMC II

	Device Manager- >Modems->toshiba Software Modem->Diagnostics
	PCI\VEN_8086&DEV_2446&SUBSYS_00011179\REV 05

	VENDOR ID 8086 (Intel Corporation)
	Device ID 2446


7. Windoze Interoperability

XP Partition. If you left an NTFS partition on the drive at install time it is possible to access it READ-ONLY. Fearing the beast, Red Hat has not included the NTFS driver with Fedora. However, installation is simple.

Download: Download from the Linux-NTFS website. The easiest approach is to download an RPM. Note that Fedora 2 uses the 2.6.5-1.358 kernel. You can verify your kernel version with uname -r

Install the RPM:

	rpm -i kernel-ntfs-2.6.5-1.358.i686.rpm

Verify the Partition: The NTFS partition is usually /dev/hda1, but you can verify that with

	/sbin/fdisk -l /dev/hda

Create a mountpoint:

	mkdir /windoze

Add an entry to /etc/fstab (permits read/execute for everyone)

	/dev/hda1           /windoze                ntfs    defaults,umask=0222 0 0 


	mount /windoze

Sharing Files with XP: Because the NTFS driver does not provide write access, if you want to be able to share files between Linux and Windoze, one strategy can be to create a separate VFAT partition at installation as a shared space.

Accessing Linux partitions from XP. I am told that there are a couple of utilities that allow you to access a Linux partition from Windoze, although that's a scary thought and I've never tried either of them: fsdext2 and explore2fs.

Booting XP. If you left a bootable NTFS partition when you installed Linux you should have no problem booting XP. By default, GRUB (the GRand Unified Boot loader) loads Linux at boot time. However, you will get a screen briefly at boot time that will allow you to use the down/up arrow keys to select Windoze or Linux as the OS. Press RETURN after making your selection.

Wine. WINE is a Linux Windoze emulator that can be used to run Windoze programs (including office suites). My early experiences were largely unsuccessful but I assume it has matured significantly over the past few years. If you need to run Windoze programs like M$-Turd, Exhell and the Windoze Media Player, Crossover Office from Code Weavers has an implementation of Wine that guarantees successful running of specific software. My modest office software needs are met by Open Office and I urge you make an attempt to divorce yourself from the Evil Empire.

8. True Type Fonts

X Windows supports True Type fonts.

Copy Fonts: Create a new directory at /usr/X11R6/lib/X11/fonts/truetype and copy your TrueType fonts into that directory.

Create Font Configuration Files: Create the fonts.scale and fonts.dir

	cd /usr/X11R6/lib/X11/fonts/truetype

Configure font directory: Add the new directory to the "catalogue" section of /etc/X11/fs/config

	catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,

Get out of X Windows and startx again so X loads the fonts. You can verify loading of the fonts by using the xlsfonts command. Times New Roman is a common font and grep does a search on the output piped from xlsfonts:

	xlsfonts | grep "times new roman"

You can also transfer .ttf files from other machines via floppy or CDROM. Note that there are different font files for the italic, bold, bold italic and regular versions of the fonts. Some of the True Type files can be very large so you may need to use multiple floppys. After copying them to the font directory you must run through the subsequent configuration steps again.

OpenOffice: Although the OpenOffice Font Troubleshooting Guide indicates that TrueType fonts that are in a path listed by /usr/sbin/chkfontpath should be available to OpenOffice, that doesn't seem to be true. My fonts installed in /usr/X11R6/lib/X11/fonts/truetype are not visible in the OpenOffice font dropdowns. You will need to copy the .ttf files to /usr/share/fonts/openoffice. You do not need to restart X (reference)

8. CD Writing

The built-in CD-RW drive is detected by the installation program and no further configuration is necessary. cdrecord is the program included with Red Hat for recording CDs.

8.1 Data CD

I use the CD-Writer to perform backups of my /home directory. It can, of course, be used to create any kind of CD, but the following instructions are specific to burning a backup CD for a single directory tree.

You can probably put all these commands in a script to simplify CD writing, but I am including explicit commands here for clarity. Because things can go wrong at any step and waste media, you might want to do things explicitly from the console for awhile.

Create the CD image with the mkisofs utility. mkisofs was created when you compiled cdrecord. See the section above for information on compiling cdrecord and installing mkisofs. Supposedly it is possible to pipe the output of mkisofs directly into cdrecord without using an image file. However, every time I tried to do this I got "loss of streaming" errors.

/home/cdimage is an output file from mkisofs that will be used to burn the CD later. This is an arbitrary can put your image anywhere you like (except the directory you're archiving?) [source_directory] is the root of the directory tree that you want to copy. The -r option sets the permissions of all files to be public readable on the CD and enables RockRidge-extensions. The -J option (MS Joliet extensions) can be used to generate a more Windoze friendly CD, but I have had problems with the option yielding the message "tree sort failed".

This will take a few minutes.

	mkisofs -r -o /home/cdimage [source directory]

Linux has the ability to mount files as if they were disk partitions. This feature is useful to check that the directory layout and file access permissions of the CD image match your wishes. Once you've tested CD-Writing on your system, this step is unnecessary.

	mount -t iso9660 -o ro,loop=/dev/loop0 /home/cdimage /mnt/cdrom

Now you can inspect the files under /mnt/cdrom -- they appear exactly as they were on a real CD. To umount the CD-image:

	umount /mnt/cdrom

CD-writers need to be fed with a constant stream of data. The process of writing the CD image to the CD must not be interrupted or a corrupt CD will result. Don't do anything with heavy disk access while writing the CD. Mechanical shock to the writer can also ruin the write. I would reccommend going away and doing something else while the CD is will take 70 minutes for a full CD.

	cdrecord -v speed=8 --dev=/dev/cdrom -data /home/cdimage

Although the writer is capable of 16x writing, I have had problems with buffer underflow at high speed, but speed=8 seems to work consistently.

	Min drive buffer fill was 95%
	cdrecord: Input/output error. close track/session: scsi sendcmd: no error
	CDB:  5B 00 02 00 00 00 00 00 00 00
	status: 0x2 (CHECK CONDITION)
	Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 2C 00 00 00
	Sense Key: 0x5 Illegal Request, Segment 0
	Sense Code: 0x2C Qual 0x00 (command sequence error) Fru 0x0
	Sense flags: Blk 0 (not valid) 
	cmd finished after 0.002s timeout 480s
	cmd finished after 0.002s timeout 480s
	cdrecord: Cannot fixate disk.
	Fixating time:    0.004s
	cdrecord: fifo had 7474 puts and 7411 gets.
	cdrecord: fifo was 0 times empty and 6772 times full, min fill was 59%.

8.2 Audio CDs

Recording an audio CD is actually a bit simpler than burning a data CD. If you have your audio files all in one directory in .wav format, the following example will burn them all on separate tracks. Since the list will be in alphabetical order, you will need to determine the order of tracks by appending some kind of alphabetical prefix to the track names (i.e. 01_your_song.wav, 02_my_song.wav, 03_his_song.wav, etc.)

	cdrecord -v speed=8 --dev=/dev/cdrom -pad -audio *.wav

The recorder records audio CDs at 16x speed, but as with data CDs I have had underflow problems at 16x. speed=8 works well. I have had problems with audio CDs recorded with the speed=1 and speed=4 options. cdrecord completes successfully but the CDs are then unreadable by the CD drive. I thought lowering the speed might remove the potential for error and buffer underflow, but it appears the drive or the drivers don't handle lower speeds well.



CDRDAO is a command line program for writing CDs in disk-at-once (DAO) mode. CDRECORD on most CD writers will only write in track-at-once mode, turning off the laser between track writes and forcing a 2-second gap between audio tracks (since the stream of pits on the CD stops between tracks). Although this usually does not cause problems, the preferred way to write a CD is disk-at-once as a single stream of pits - to prevent tracking errors and in case you want to send the CD to a duplicator to make bulk copies. CDRDAO provides capability for specifying a number of different parameters for disk writing, including specific timings between tracks, UPC numbers and CD-TEXT (album and track names) for writer drivers that support it.

With this added capability comes additional work in setting up the write. CDRDAO requres a text file that defines what the TOC will look like on the written disk. Although the format for this file is not complicated, it is a bit more work than simply specifying a set of files on the command line, as CDRECORD allows.

The internal CD writer is supported. To write, use the following command. Note that you must be SUPERUSER to write a CD.

	cdrdao write --driver generic-mmc --device 0,0,0 toc_file

9. DVD Viewing

Fedora does not include a DVD player due to fear of the Fascist MPAA and their expensive lawyers. However, numerous players (mplayer, xine, ogle) are available on the web and the DVD drive on this machine plays DVD's beautifully.

Download Viewer Software: Ogle. Comes in easy-to-install RPM packages. The user interface isn't as pretty as Xine, but it is much simpler and more functional (especially chapter selection). You will need four RPMs: libdvdcss, libdvdread, ogle, and ogle_gui. Much love to DVD Jon for enduring all the legal nonsense so the rest of us can play DVDs we bought with hardware we own.

Ogle Installation: Install the RPMs with the rpm command line program:

	rpm -i --force
	rpm -i --force libdvdread-0.9.4-ogle1.i386.rpm
	rpm -i --force ogle-0.9.2-ogle1.i586.rpm
	rpm -i --force ogle_gui-0.9.2-ogle1.i386.rpm

A newer version of libdvdread comes with SuSE 9.0, but I'm not sure if it works with Ogle. The --force flag will ignore any strange dependencies.

DMA Access: This is important. Regardless of what player you choose, it will give you jerky video if you do not turn DMA access on for the DVD drive. By default, this distro of Linux boots with DMA access turned off. You can turn it on with the following command. Note that /dev/hdc, not /dev/sd0, is the raw device name of the DVD drive.

	hdparm -d 1 /dev/hdc

Default DMA: DMA access is turned off by default, and any hdparm changes will will be lost when you reboot. I'm not sure exactly why the defaults are set up that way, but it may have to do with security or operation of the drive as a CD writer. It can be turned on by default by modifying /etc/sysconfig/hardware. Explanatory comments are at the top of the file.


Not everything that can be counted counts, and not everything that counts can be counted. (Albert Einstein)