Linux on the Toshiba Satellite 1905-S303

Author: Michael Minn (see for current contact info)

August 9, 2003

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

1. Introduction

2. Before You Start

3. Disk Partitioning

4. Installing Red Hat Linux

5. The Windoze Partition

5.1 Booting to Windoze
5.2 Accessing the Windoze Partition
5.3 Accessing the Linux File System from Windoze
5.4 Wine
5.5 True Type Fonts

6. Power Management and Fan

7. Modem/Internet/Network Setup

7.1 Internal Modem

7.2 Other Modems
7.3 ISP Setup
7.4 E-mail/Browser
7.5 Flash Player
7.6 Ethernet
7.7 Networking Two PCs

8. Using Window Managers and the Console

9. Sound

10. Printer

11. Scanning

12. Digital Camera

13. CD Writing

13.1 Data CDs
13.2 Audio CDs
13.4 CD-RW Problems

14. Applications

14.1 Open Office
14.2 Rhyming Dictionary
14.3 Real Player
14.4 Real Producer
14.5 MP3 Encoding
14.6 DVD Viewing

1. Introduction

The following document describes how I set up a Dual-Boot Red Hat Linux 8.0 system 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 generally involve 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.

I provide no guarantees for any procedures stated in this document. I performed most of these tasks only once and wrote all this down as I went along. As such, there are probably inaccuracies. Although some of the instructions given hereafter may be unnecessary (or perhaps not the best way to perform a given task), they worked for me and I'm not going to mess with a good thing.

The definitive source for Linux laptop information is the Linux on Laptops Page. Much of this information was gleaned from pages linked by this site.

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

Prior to starting installation, you will need to download the NTRESIZE utility:

You should get the statically linked binary, which is precompiled and ready to rock.

The file is posted on the web as a zipped TAR archive. You should be able to extract the single executable file "ntfsresize" from Windoze or Linux. You should copy this program to a floppy.

To boot from the Red Hat installation CD, you will need to change the order the BIOS uses to find devices to boot from. As you reboot, quickly press F2 when the Toshiba screen comes up. If you wait too long the Windoze boot process will start and it can't be interrupted.

Arrow over to the boot menu

Use the F5 and/or F6 keys to change the boot order so the CD-ROM drive and Removable devices (i.e. floppy) come before the hard drive

Press F10 to exit the BIOS configuration program and reboot

3. Disk Partitioning

The Toshiba 1950-S303 comes with Windoze XP Home Edition preinstalled on a single NTFS partition. Since the supplied installation CD will only contains a ghost image to completely rebuild the drive the way it shipped from the factory, you will have to use NTFSRESIZE and FDISK to get the existing partition resized and space freed up for the Linux partitions.

This the most precarious and unpleasant set of tasks in Linux installation on this machine. If you want to have a Linux-only, Windoze-free system, you can skip this section.

For a brief shining moment, it was possible to reject the Windoze licensing agreement and get a modest refund for the Windoze software you never used. However, the Beast discovered what was going on and now Toshiba puts the OEM software license acceptance as a sticker on the outside of the shipping bag for this machine. So, there is no way to buy this machine and not buy Windoze. If only the Beast was as good at debugging as he is in forcing you to buy his shit software.

Boot up into Windoze and from a DOS window, run the defrag utility to defragment your hard drive. If you haven't done much on your Windoze partition, this should complete in under 10 minutes.

	defrag c:

Insert Red Hat installation CD #1 in the CD drive and reboot. The computer will boot into the Red Hat installation program. The program will prompt you for graphical or text mode installation. Type "linux text" to run the graphical installer. A Linux kernel will load from the CD and when you get a welcome screen, press CTRL-ALT-F2 to get a console. Use text mode install or the display may give a jittery distorted view.

Insert your floppy with NTFSRESIZE and mount it from the console:

	sh-2.05b# mkdir /floppy
	sh-2.05b# mount /dev/fd0 /floppy

Verify with FDISK that Linux is seeing the hard drive.

	sh-2.05b# fdisk -l /dev/hda

You should get something like this, showing the single bootable NTFS partition:

	   Device Boot    Start       End    Blocks   Id  System
	/dev/hda1   *         1      4864  39070048    7  HPFS/NTFS

Use NTFSRESIZE to find out where you can split the partition:

	sh-2.05b# /floppy/ntfsresize -i /dev/hda1

If everything is good, you will get a message indicating where you can split:

	You could resize at 9479790592 or 9480MB (freeing 30528MB)

NTFSRESIZE will warn you if there is a problem. Also, if the free space isn't more than 5GB or so, you should probably go back to Windoze and free up some disk space by deleting files or programs.

Do a test run...

	sh-2.05b# ./ntfsresize -n -s9480M /dev/hda1

If everything is good, you will get the message...

	The read-only test run ended successfully.

I didn't have a problem, but if you get one, you should probably not ignore it, or you will mess up your Windoze installation.

Resize the partition. The -s option is the size in MB of the new partition. You should use whatever number you got from the earlier run of ntfsresize.

	sh-2.05b# /floppy/ntfsresize -s9480M /dev/hda1

You will get one additional prompt to verify you want to continue and you should get a completion message in a minute or so.

Finally, we repartition with FDISK. Be careful here as a mistake will corrupt your hard drive, forcing you to have to reinstall Windoze and start from the beginning.

Start fdisk and use the "p" command to list the current partitions:

	sh-2.05b# fdisk /dev/hda

	Command (m for help): p

You should get a listing of the first and only partition: /dev/hda1. Delete it with the "d" command. If any other partitions are listed, delete them as well.

	Command (m for help): d
	Partition number (1-4): 1

Create a new primary partition for the Windoze partition you resized earlier. It should be the same size as the resize value. Note the + before the size.

	Command (m for help): n
	Command action
	   e   extended
	   p   primary partition (1-4)
	Partition number (1-4): 1
	First cylinder (1-4864, default 1): 1
	Last cylinder or +size or +sizeM or +sizeK (1-4864, default 4864): +9480M

Modify its type to NTFS (type 7) and make it the boot partition ("a" command)

	Command (m for help): t
	Partition number (1-4): 1
	Hex code (type L to list codes): 7
	Changed system type of partition 1 to 7 (HPFS/NTFS)

	Command (m for help): a
	Partition number (1-4): 1

Then, create a new partition for the remaining free space on the drive. You need to create this partition, or Windoze will undo your resizing and stick it back onto the first partition.

	Command (m for help): n
	Command action
	   e   extended
	   p   primary partition (1-4)

	Partition number (1-4): 2
	First cylinder (1046-4864, default 1): (choose default)
	Last cylinder or +size or +sizeM or +sizeK (1-4864, default 4864): (choose default)

	Command (m for help): t
	Partition number (1-4): 2
	Hex code (type L to list codes): 7
	Changed system type of partition 2 to 7 (HPFS/NTFS)

List the partitions with the "p" command. You should see a listing of the two partitions with the dimensions you specified. If you're satisfied, make the committment and write the new partitions:

	Command (m for help): w
	The partition table has been altered!

	Calling ioctl() to re-read partition table.
	Syncing disks.

CTRL ALT DELETE to reboot to Windows to check everything is right

Install new devices will run at startup to assign the new drive letter

CHKDSK will automatically run when you reboot.

If everything is good in Windoze, you can move on to the installation.

4. Installing Red Hat Linux

Red Hat will boot directly from the installation CD. However, you will need to set the CD-ROM as a primary boot device ahead of the hard drive. See above for instructions on changing the boot order.

If the display gets a strange jittery look, just reboot (CTRL ALT DEL) and it will probably go away. I assume this is a sporadic problem with the X driver for the video chip on this machine.

Once you finally get Anaconda (the Red Hat installer) running (see above), installation is relatively straightforward. The Red Hat installation program will start in VGA mode and give you a boot: prompt. You can hit return or if you wait, it will automatically start in this mode.

After an initial minute or two of activity, the installer will start And give you some prompt screens. The following are the choices used on my installation and may be slightly different depending on your particular situation.

You will get a welcome screen that contains no useful information.

Language selection: since I'm an ugly American I chose English. (default)

Keyboard model: is the default: Generic 105-key Intl PC, U.S. English with Enabled dead keys. (default)

Mouse configuration: Generic 3 Button Mouse (PS/2). (default)

Installation type: Workstation

Disk Partitioning Setup: Choose "Manually partition with Disk Druid"

You will see /dev/hda1 and /dev/hda1, the NTFS partitions you created with FDISK.

Delete /dev/hda2

Add the following NEW partitions. The "hda" device names may come up as different numbers, but the size and configurations should be the same.

	/boot (100 MB - ext3) - becomes hda2
	/exchange (1024 MB - VFAT) - becomes hda3
	Linux Swap (1024 MB - Linux swap) - becomes hda4
	/ (root - 2651 MB - ext3 - Select "Use Remaining Space" - becomes hda5 and hda6)

The 1GB /exchange VFAT partition is used to exchange data between Linux and Windoze. Red Hat does not include support for NTFS file systems and Windoze can't read Linux EXT3 formatted partitions, so exchanging files on the same computer with Windoze will not be possible unless you put an VFAT partition accessible from both Windoze and Linux. If you are not setting up a Windoze partition or are desperate to have that extra 1 GB in your regular file system, the partition is not essential.

You will get a warning about "Boot disk may not meet booting constraints for your architecture Creation of a boot disk is highly encouraged." You can ignore the message because there is no problem on this machine.

Boot Loader Configuration: accept the defaults for GRUB (Grand Unified Boot loader) You probably don't need a GRUB password on a normal single user installation.

Network Configuration: accept defaults for /dev/eth0 (the installed network port)

Firewall Configuration: Medium and Use Default Firewall Rules. "High" security will not permit FTP or RealAudio.

Additional Language Support:English (USA) (default). Yours may differ if you have a different primary language.

For Time Zone Selection choose the appropriate zone for your area.

Account Configuration: you will be asked for a "Root Password". If you will be the only user and system security is not an issue, chose something easy to remember. Otherwise, it is best to chose some arbitrary combination of letters AND numbers. You may want to write this down someplace as there is not a simple way of breaking into a Linux system without the superuser password.

At least one Account Name should be added at this time. You can add or modify them later, but you need at least one because for system safety since it is best not to do most user level work as superuser.

Package Group Selection: Go all the way to the bottom and select Everything. It's 4.6GB, but it's a huge hard drive and you can pull off anything you don't want later. FYI, a server installation only needs 800MB. This one, of course, is largely up to your preferences.

Kick off the install process. About 15 minutes into the installation, you will be prompted to insert installation CD #2 - Red Hat Linux is bloating nicely, thank you very much. Total installation time for "Everything will be about 50 minutes and messages from the installation be logged in /tmp/install.log.

Boot Diskette Creation: At the conclusion of the install you will be asked to create a custom boot disk. This is completely optional. You can use the FIPS floppy (or boot floppy) you created earlier because you shouldn't need it again unless you have to rebuild this or another system. REMOVE THIS DISK after it is created so you boot from it on your initial system boot. The one time I actually needed one of these things, it didn't work (kernel panic) so you may not want to waste your time.

X Interface Configuration: accept the default of ATI Radeon Mobility M6

Monitor Configuration: Unprobed Monitor with horizontal sync of 31.5-48.5khz and vertical sync of 50-70Hz. (default)

For "Custom Graphics Configuration", chose "True Color (24 Bit)" for color depth and "1280x1024" (not the default) for Screen resolution. I RECOMMEND USING TEXT LOGIN TYPE. This makes it much easier to log in to a console in case there is a problem with X Windows. It also makes it easier to see console messages printed by problematic programs.

You will then be prompted for a reboot. Be sure to remove the boot disk and installation CD before rebooting.

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.

Within a few minutes of booting Linux, you may notice a flurry of disk activity. This is normal. 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. I believe the program that is most disk intensive is updatedb, a program that cleans updates a central database for slocate. Since I never use slocate, I deleted the /etc/cron.daily/slocate.cron file. I also deleted /etc/cron.daily/tetex.cron, which deletes unused TeX fonts (since I never use TeX). However, I left tmpwatch (which cleans out unused files in the /tmp directory), and logrotate (which cleans up old system logs).

Another annoying feature of the GNOME desktop is an automatic mounter for CD-ROMs that pops up a graphical browser when you insert a CD or turns on the CD player. You can turn it off in: preferences->CD Properties.

Video Card Problems the driver for this video card is buggy and when starting XWindows and putting the card in SVGA mode, the display will occasionally get a jagged flickering pattern. This can be eliminated by getting out of XWindows (<CTRL><ALT><BACKSPACT>) and restarting X (startx). That is why you should chose the TEXT login rather than the GRAPHICAL login - since graphical login will not allow you to simply kill X Windows.

5. The Windows Partition

5.1 Booting to Windows

The setup described in this configuration is a dual boot configuration. By default, GRUB (the GRand Unified Boot loader) loads Linux at boot time. However, you will get a Red Hat 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.

5.2 Accessing the Windows Partition

To avoid legal issues with The Beast, Red Hat has chosen not to ship NTFS file system support in their distributions. There is an open source project out that provides NTFS support, but you will have to download and install it.

If you choose not to install NTFS support, you may want to provide a separate VFAT partition for sharing data between Linux and Windoze. Such a scheme is given in the partitioning section above.

5.3 Accessing the Linux File System from Windoze

Frank Wilson notified me that there are a couple of utilities that permit access to the Linux partitions from Windoze. I rarely have to go to my Windoze side anyway and I don't want The Beast corrupting my precious Linux file systems. 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/Windows. However, this is certainly less safe than read-only access.

5.4 WINE

My past experiences with using WINE (a Linux Windoze emulator) to run Windoze programs (including office suites) were largely unsuccessful. If you need to run Windoze programs like M$-Weird, 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 byOpen Office (see below) and I suggest you make an attempt to divorce yourself from the Evil Empire.

5.5 True Type Fonts

Linux's XFree86 supports True Type fonts. You can copy the fonts from your Windoze partition and use them in Linux. Since you will be making a system configuration change, you must be SUPERUSER to perform these commands.

Copy the whole c:\windows\fonts directory to /usr/X11R6/lib/X11/fonts/Windoze. If you do not have NTFS support, you will need to either use a VFAT partition for exchanging data or some removable media.

The X font server requires some information files in the TrueType font directory. Run the TTMKFDIR & MKFONTDIR utilities to build the fonts.dir and fonts.scale files used by XFS:

	$ cd /usr/X11R6/lib/X11/fonts/Windoze
	$ ttmkfdir > fonts.scale
	$ mkfontdir

Paths to XFS font files are specified in the configuration file, /etc/X11/fs/config. Modify the "catalogue" section of this file to point to the Windoze font directory. Modify your "catalogue" section to look like this. The only change is the bottom line:

catalogue = /usr/X11R6/lib/X11/fonts/korean,

Log out of your X Windows desktop (KDE or GNOME) and restart the X font server, xfs. Then type the following commands As Superuser:

	$ killall xfs
	$ xfs &
	$ startx

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 ttmkfdir, mkfontdir, xfs steps.


6. 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. There is some Alpha level support at ACPI4Linux, although it requires Kernel patching and I'm leery of messing with my kernel.

The mighty 2.4Ghz Pentium IV in this machine generates ALOT of heat and the internal fan for cooling it is REALLY loud. The fan has two speeds and is controlled by a thermostat. The intake is on the bottom of the machine and the output vent is on the left rear.

If you block the intake or the vent and the processor overheats, the machine will shut down with NO WARNING to protect itself. This can be an unpleasant surprise when you are actually using the laptop on your lap and accidentally block the intake.

7. Modem/Internet/Network Setup

7.1 Modem Setup

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. And, unfortunately, there is a bit of work needed to get this driver working. Say the word "Winmodem" to a Linux laptop owner and you'll hear alot of four letter words...none of them "Love".

The modem uses a Lucent chipset connected to an Intel 82801BA/BAM (ICH2/ICH2-M) AC'97 Modem Controller. Other Lucent drivers (such as the Connexant driver) don't work because they were made for the MC97, not the AC97

You must have kernel source loaded to compile this driver.

Smart Link has a slmdm driver that will work with this chipset. You need to download an older version (2.7.10 or earlier). Later versions (including the ones currently posted on their site) will only work with SmartLink chips, not "Foreign" chips like the Intel/Compal combination in this machine. You can download a tarball from here.

Decompress the tarball and go into the created directory

	tar -zxvf slmdm-2.7.10.tar.gz
	cd slmdm-2.7.10

Edit the Makefile and set the include path to point to kernel source. Find the following two separate lines:

	KERNEL_INCLUDES:= /usr/src/linux/include
	MODULES_DIR  = /lib/modules/$(shell ./kernel-ver)/misc

...and modify them to...

	KERNEL_INCLUDES:= /usr/src/linux-2.4/include
	MODULES_DIR  = /lib/modules/$(shell ./kernel-ver)/kernel/misc

Make and install

	make install-amr

Add the following lines to the bottom of your /etc/modules.conf file. Country depends on where you live and I'm not sure exactly what the legit values are if you live outside my beloved USA.

	alias char-major-212 slmdm
	alias slmdm slamrmo
	options slmdm country=USA

Create a soft link between /dev/modem (a standard modem device file) and /dev/ttySL0 (the device file used by the SLMDM module:

	rm /dev/modem
	ln -s /dev/ttySL0 /dev/modem

You can now proceed to internet setup to test and use the modem.

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- SERR- 

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


Much love to the Italian Linmodem Page for their EXCELLENT SEARCH ENGINE for helping me find this Critical Page in getting this damn thing to work.

7.2 Other Modems

Rather than fighting with the internal modem, you can spend $90 on a PCMCIA modem. Before buying one, consult a Linux Hardware Compatibility List. I chose the Actiontec DataLink V.90 56K, SKU# MDV9012-01. You can buy it online right now at the Actiontec Store.

The card is supported with the serial_cs.o kernel module and requires no additional configuration other than being plugged in to the PCMCIA socket. It will be visible as /dev/ttyS1.

Add the modem to your network configuration with the GNOME configuration program (neat) from the start menu:

  • System Settings->Network Configuration
  • Hardware Tab
  • Choose Hardware Type: modem
  • Modem Configuration: Modem Device is /dev/modem. Set dialing volume as you prefer.

The MAJOR drawback of this PCMCIA device is the VERY flimsy dongle used to connect the cable to the card. Be careful, they're $10 to replace.

I've also had a problem with the modem simply stopping, even though it is still connected to the ISP. Not sure what the problem was, although I suspect that there was a baud rate issue in wvdial.conf. It should be "Baud = 115200". I had this problem with another PCMCIA card I used to use. The workaround is to remove the card from the PCMCIA slot and replug it - extremely annoying. Suddenly, the internal modem looks better all the time.

There are also USB modems out there, but, again, be sure to consult a Linux Hardware Compatibility List. I've never used one, so you're on your own with this one.

7.3 ISP Setup

  • System Settings->Network Configuration
  • Device Tab
  • Click Add
  • Select Modem Connection and click next

With my provider (Earthlink), I simply needed to set the Provider settings. Earthlink logins have the form ELN/user_name.

The program for connecting to the internet is hidden under System tools->Network Device Control. The Activate button will connect.

7.4 E-mail/Browser

You can use Mozilla Mail to get your e-mail. I tried using the much promoted Ximian Evolution, but couldn't get it to send. Again, with Earthlink, the incoming and outgoing mail server is

Mozilla is also the browser of choice. Not as speedy as KHTML (upon which the KDE konqueror browser is based) but it does OK.

A very cool feature of Mozilla is the native ability (unlike Internet Exploder) to stop pop-up ads! The feature is under Edit->Preferences->Advanced->Scripts & Plugins. Under "Allow webpages to," unhighlight the check box next to "Open unrequested windows". I can't believe I've lived my whole web life without this feature.

7.5 Flash Player

You can get the Flash Player Plug-in from If you do this download with Mozilla on your Linux system, the download page will automatically detect that you have a Linux browser and give you a tarball of the plugin and an installer script. You do not need to run the installer. Just copy the plugin .so file into /usr/lib/mozilla/plugins. You must be SUPERUSER to copy into this system directory.

	tar -zxvf install_flash_player_6_linux.tar.gz
	cd install_flash_player_6_linux
	cp /usr/lib/mozilla/plugins

7.6 Ethernet

The internal ethernet (RJ-45) NIC will be detected at installation and associated with device eth0.

If, for whatever reason, you need another ethernet NIC, there are numerous devices out there supported by Linux. I use a Belkin USB 10/100 Ethernet Adapter (F5D5050). Plug it into the USB port. It works right out of the box, connecting to device eth0. I've also used a Linksys PCM100 ver. 2 EtherFast Integrated PC Card. (Which identifies itself as a D-Link DE-650/Linksys NS 8390).

Ethernet cards can be easily configured with the Red Hat network configuration tool: System Settings->Network. Click "Add" and "Ethernet Connection", then select your card from the list given. If your card was plugged in and detected, it should be visible. The rest of the settings are dependent on your particular network situation. When you're done, you click "Activate" to connect.

7.7 Networking Two PCs

I occasionally need to share files between two different laptops. One easy way to do that is to network the two together...a peer-to-peer network. For hardware, each computer needs an ethernet card (10/100BaseT) and an RJ-45 CROSSOVER cable. Note that this is a crossover cable and not just a regular CAT-5 patch cable. Unless you're using a hub, the wires have to be "crossed over" to directly connect two PCs.

As specified above the internal NIC will be detected and installed by the Linux installation program. The Red Hat network configuration tool can be used to configure: type neat on a console. Edit the configuration for eth0. System Settings->Network. Click "Add" and "Ethernet Connection", then select your card from the list given. If your card was plugged in and detected, it should be visible.

Under "Statically Set IP Addresses", you need to give a static IP address. For this example, I use the Class C addresses and on my two machines, respectively. To provide mutual access between both machines, you will need to set both machines up as NFS file servers and clients.

All these operations must be run AS SUPERUSER.

The /etc/exports file tells NFS which directories to make visible to network systems. To make the /home directory visible to both machines with the IP addresses given above, the /etc/exports file on both machines would have one line:


Export these file systems after modifying /etc/exports and enable and start the NFS daemons. The file systems will subsequently be exported each time the system is rebooted. Also, make a directory in /mnt as a mountpoint for the network file system - this /mnt/network name can be any name you like.

	/usr/sbin/exportfs -a -v
	/sbin/chkconfig nfs on
	/sbin/chkconfig nfslock on
	/etc/init.d/nfs start
	/etc/init.d/nfslock start
	mkdir /mnt/network

Make sure the portmap daemon is running on both machines.

	/etc/rc.d/init.d/portmap restart

To tell the Linux file system how to mount the network, edit the /etc/fstab file and add the following line on the machine, pointing to the machine. On the machine, the address would be changed to point to the machine. The options in fourth column indicate not to try to mount at boot time (noauto), to allow a regular user (not just superuser) to mount the drive (user) and to timeout rather than retrying indefinitely if there is a problem accessing the device (soft).

  • Device file name
  • Mount point
  • File system type
  • Mounting parameters
  • A pair of numbers I don't understand	/mnt/network	nfs	noauto,user,soft	0  0

Activate your network card (in Network Device Control, the same utility that you use for dial-up access). Use the following command to test mount the local NFS on what will be the network mountpoint. The ls command should list the contents of your /home directory. Then unmount the directory so you can use that mountpoint to mount the file system on the other computer.

	mount /mnt/network
	ls /mnt/network/home
	umount /mnt/network

NFS uses TCP/IP port 2049. The Red Hat default firewalls will cause mounting a drive on a remote machine to fail with the message "RPC: Port mapper failure - RPC: Unable to receive". If the firewall is left on the receiving machine, the mount will delay and finally issue the message "RPC: Timed out"

On both machines, add a new iptables rule that accepts all input on the eth0 interface from both and List the new table and if everything looks good, save it to the /etc/sysconfig/iptables file.

	/sbin/iptables -I INPUT -p ALL -i eth0 -s -j ACCEPT
	/sbin/iptables -I INPUT -p ALL -i eth0 -s -j ACCEPT
	/sbin/iptables -L
	/sbin/iptables-save > /etc/sysconfig/iptables

Finally, try mounting the network and you should be able access the other machine through /mnt/network.

	mount /mnt/network

If you are still having problems, you should try pinging the other machine and doing an rpcinfo to get connection information. Failure on the ping indicates a TCP/IP connection problem. Problems with rpcinfo indicates and NFS problem.

	/usr/sbin/rpcinfo -p

If all else fails, you can simply stop the firewall. It can be restarted by replacing stop with restart.

	/etc/init.d/iptables stop

FYI, the important line in /etc/sysconfig/iptables is the rejection of port 2049, used by NFS:

	-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT


8. Using Window Managers and the Console

One of the stellar features of UNIX/Linux systems is the availability of a very robust console/text interface. Although the world seems to prefer the point-and-click way of getting around their computers, I, like many developers, find the console a faster way of getting my business done. However, it is nice to have multiple windows and X windows support for inherently graphical tasks like graphic editing (i.e. gimp) and web browsing.

I have discarded GNOME and KDE completely and use Motif Window Manager (MWM). I have also used the Windowmaker. You don't get the Start Menu, but you don't have the associated screen clutter and performance hit either.

To use MWM, create a .Xclients file in your /home/(user) directory and add three lines:

	xterm &
	xclock -d -update 1 &
	exec mwm

To use Windowmaker, replace mwm with wmaker.

If you use the GNOME desktop, a terminal window can be popped up from the Start Menu at System Tools->Terminal. A comprehensive tutorial on the console would occupy a rather large volume, but listed below are a few frequently used console commands. Further information on each command can be found by typing man (command) on a console.

poweroff: power down the system

reboot: reboot the system

df: find free disk space

du: find the amount of space used in a particular directory

find [directory] -name "[file name (with wildcards)]": find a file in a directory

xpdf: view an Adobe Acrobat (tm) PDF file

gimp: graphic file editor

gqview: image viewer - good when dealing with a directory of multiple graphic files

ooffice: Open Office

mozilla: browser and e-mail program

kppp: KDE's graphical dial-up network connection program

neat: GNOME's graphical network connection program

/sbin/mkdosfs -cv -F 32 /dev/fd0: format a floppy

ln -s: create a soft link

date: print date and time

date 03221610: set date and time to 4:10PM on March 21 (must be superuser)

su: change to superuser login

cdda2wav -JD /dev/cdrom: list audio CD track data

cdda2wav -D /dev/cdrom -t 2: rip track 2 from an audio CD to the file audio.wav

ps2pdf output_file.pdf: convert postscript (.ps) files (which can be created from the office applications or browsers) to .pdf (Adobe Acrobat) format

9. Sound

The internal sound chip is detected by the Red Hat installation program and no additional configuration should be necessary. This chip provides capability for wavetable systhesis but does not have an FM synth for MIDI playback.

The internal sound chip is supported with the i810_audio and ac97_codec kernel modules. The soundcore module is also needed to provide OSS sound functions needed by these modules. You can verify that they have been loaded with the /sbin/lsmod command. You can manually load them AS SUPERUSER:

	/sbin/modprobe i810_audio

You can control the volume of the various mixer channels with a mixer such as kmix (a KDE graphical mixer) or aumix (a command line mixer program).

MIDI output/input is available through a variety of USB devices. The cheapest (around $50) is the Roland UM-1, available through Edirol, Roland's distributor of desktop music products. Another more expensive Roland USB device, the UA-100, supports both MIDI and high quality digital audio with an extensive array of effects. This is supported by my MMUSBAUDIO driver.

High quality 16-bit digital audio is also available through USB devices. The aforementioned Roland UA-100 and the Roland UA-5 (with balanced inputs and support for 96Khz/24-bit recording) are supported by by MMUSBAUDIO driver. The Roland UA1-A, a small self-powered USB device with RCA (unbalanced stereo plug) connectors, uses the standard audio.o USB Audio Device Class kernel module driver that is part of the Linux kernel. I haven't personally used it, so I'm not sure what setup is involved.

See The Linux USB project for more information about USB audio devices.

The XMMS (the X multimedia system) is a graphical file player similar to winamp that comes with most standard Linux distributions. Unfortunately, the xmms that ships with RH 8.0 needs ARtS (Analog Real Time Synthesizer), which is used for creating annoying warning beeps. It also does not come with MP3 support. It's better to just recompile from source. Note that you need to have included GLIB/GTK+ with your installation packages to compile. The source code can be downloaded from the XMMS Website.

You will need to set the XMMS configuration or the player will lock up when you try to use it. Click the right mouse button on the player in the area just above the control buttons and chose "Options->Preferences". For the output plugin, choose "OSS Driver". Chose the button to "Cconfigure" the driver. Under the "Devices" tab, chose "use alternate device" and type in /dev/dsp. OK everything and try playing a .wav file.


10. Printing

The HP Deskjet 350CBi makes the perfect portable printing companion to the Toshiba 2755DVD. This printer is very compact and while it is slow and the print quality isn't fantastic (images look pretty bad in black and white), it is certainly within the parameters of acceptability for a portable printer. Hewlett-Packard is one of the "Good Guys" that has happily provided the open-source community with access to their standards and protocols. I highly recommend giving them your business whenever you have a choice.

The printer configuration program can handle setup: type printconf on a console.

  • Click the NEW button to add a printer - an add printer wizard will start
  • When asked for "Print Queue Name", type hp350cbi. This can be anything, but it might as well be descriptive.
  • For "Configure a Local Printer", accept /dev/lp0 (the default).
  • For "Select a Print Driver" Under Deskjet 350C you have four choices: cdj500, hpdj, hpijs, pcl3. Choose pcl3.
  • At the printconf main window you will see your newly defined print queue.

    If you are planning on using black-and-white cartridges, select Edit and Driver Options and in color mode, choose Greyscale. If you fail to do this with a b/w cartridge installed, Your printer will overlap attempting to print color and make your images fuzzy.

  • In the file drop-down menu, click Save Changes and Exit. You will get a message that the print queue daemon was restarted.

Some notes:

  • The sheet feeder is a little precarious. If the paper is not loaded all the way into the feeder, the rubber feeder wheels may not be able to grip the paper. The paper will not feed and the printer error light (above the middle page eject button) will flash indicating an out-of-paper condition. Make sure the paper is loaded correctly and press the middle page eject button and the print will continue. You may have to press the button multiple times.
  • I have only tested this with black & white printing
  • Netscape prints fine
  • You can print text files with the "lpr [filename]" command. You cannot simply cat to /dev/lp0.
  • The "lpq" command will list the files currently in the print queue
  • The "lprm" command will delete a file from the print queue - using the print job number given by lpq


11. Scanning

11.1 Epson 1240U USB Scanner

I would join others on the web in recommending that you purchase an Epson scanner. Epson has supposedly been very supportive of Linux driver development and once I figured out how to configure SANE (i.e. Linux scanner support), my experience has been trouble-free. The configuration was problematic only because the online documentation does not provide clear setup instructions appropriate to Red Hat 7.1.

SANE (Scanner Access Now Easy) contains basic scanner handling capabilities, but separate "backends" are needed to handle the wide variety of hardware protocols used by different scanners. I assume the name SANE is a take-off on TWAIN, the standard Windows scanner interface.

PRIOR TO PLUGGIN IN YOU SCANNER, AS SUPERUSER you need to modify the SANE configuration file in the /etc/sane.d directory. Edit /etc/sane.d/epson.conf and remove the # from the bottom line (i.e. uncomment) and change it to:

	usb /dev/usb/scanner0

You should now plug in your scanner to the USB port. Linux should recognize the new device and automatically load the scanner module. You can verify this with the following. The Epson scanner should be listed

	$ scanimage -L

You can also verify correct driver loading by listing the USB devices:

	$cat /proc/bus/usb/devices

At the end of this rather cryptic listing, you should see the following. The important thing to verify is that the "Driver" is "usbscanner"

	I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
	E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
	T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  7 Spd=12  MxCh= 0
	D:  Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
	P:  Vendor=04b8 ProdID=010b Rev= 1.14
	S:  Manufacturer=EPSON
	S:  Product=Perfection1240
	C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  2mA
	I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbscanner
	E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
	E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms

One rather annoying feature of the Epson 1240U is that it is impossible to turn off the scanning lamp under any operating system. There is no on/off switch and apparently the scanner was designed to leave the lamp on - perhaps the lifetime of the lamp is greater than the useful life of ever-changing technology. If you don't like that eerie glow filling the room at night, it is easy enough to simply pull the power cord out when not in use, although I read somewhere that one guy actually clipped the power cord and inserted a small inline switch.

You can scan either from the command line with scanimage or from GIMP. In GIMP's File->Acquire dropdown, you should see an entry for epson:'dev'usb'scanner0 that will magically appear when the scanner is plugged in.

When you initally start GIMP, you will be prompted for a swap directory. The default will place it in your /home directory. I prefer not to keep any large system files in my /home directory to facilitate quicker backup. So the better place is /tmp. The trick is that you will have to create that directory. Otherwise, you will get a nasty message box containing:

	Unable to open swap file...BAD THINGS WILL HAPPEN SOON

AS SUPERUSER, create the swap directory with the following commands. You can name it anything you wish, but whatever name you choose should be the name you give GIMP as a swap directory.

	$ mkdir /tmp/.gimp-1.2
	$ chmod 0777 /tmp/.gimp-1.2

There are some GNU OCR programs out there, although the last time I tried them they weren't even close in quality to the ones provided by OEMs. One I have tried is a command line program called GOCR.

	$ rpm -iv gocr-0.3.2-1.i386.rpm

It reads a variety of file formats as input and outputs text to stdout:

	$ gocr -i inputfile.jpg > output.txt

Another package with an X Windows interface is ClaraOCR, although I've been unable to figure out how to get it to work.


12. Digital Camera

I chose to buy a Kodak DX3500 Digital Camera based on the listing of support on the Linux USB Web Site. The Kodak DX3500 and many other digital cameras use the non-proprietary Picture Transfer Protocol (PTP, AKA PIMA15740) standard. Note that PIMA has merged with DIG to form the International Imaging Industry Association (I3A) and the PTP standard is available from their site...for a $35 fee, or free to students with .edu e-mail addresses.

Red Hat 8.0 distributes GTKAM, accessible from the start menu under Graphics->Digital Camera Tool. It allows you to preview, delete and download photos from the camera. The only configuration is selecting the camera from a pulldown list.

There is also a Java program, Jphoto, that requires Java and JUSB, a java library for accessing the USB port. I avoid Java and have never tried it.

Since GTKAM was not available when I bought the camera and I chose not to install Java with my Linux installation, I wrote MMPTP, a small and simple kernel module and command line program for listing and downloading images from the camera. The primary advantage of MMPTP is that it downloads the files quickly with unique names based on the time the photo was taken, rather than the useless and arbitrary sequential numbers by which they are stored in the camera. More information is available here.

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

13.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=1 dev=0,0,0 -data /home/cdimage

Although the writer is capable of 2x writing, I received the following errors and wasted a disk when I tried burning with "speed=2"

	Sense Key: 0x3 Medium Error, Segment 0
	Sense Code: 0x0C Qual 0x09 (write error - loss of streaming) Fru 0x0
	write track data: error after 2424832 bytes

13.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=1 dev=0,0,0 -pad -audio *.wav



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

13.4 CD-RW Problems

I have been unsuccessful at recording CD-RW under the 2.4 kernel. Attempts to record have resulted in the following message:

	Track 01:   2 of  20 MB written (fifo  67%).
	cdrecord: Input/output error. write_g1: scsi sendcmd: retryable error
	CDB:  2A 00 00 00 04 85 00 00 0D 00
	status: 0x2 (CHECK CONDITION)
	Sense Bytes: F0 00 03 00 00 00 00 19 00 00 06 28 0C 09 00 00 00 00
	Sense Key: 0x3 Medium Error, Segment 0
	Sense Code: 0x0C Qual 0x09 (write error - loss of streaming) Fru 0x0
	Sense flags: Blk 0 (valid)

You can, however, use cdrecord to erase a CD-RW using the "blank=fast" option to erase the old content. Read the man pageto learn more about the other options available to erase a CD-RW.

	cdrecord -v -force blank=fast dev=0,0,0

But then you'll have to take a trip back to Windoze to actually write the CD-RW.

14. Applications

The following is are some experiences I have had with some Linux application software packages.

14.1 Open Office

For now there is essentially only one decent Office Suite for Linux, OpenOffice (and it's proprietary sibling, StarOffice). Everything else was generally unacceptable, including Koffice, Corel Office and Graphics Suites, Applixware 5.0, Abisuite, Siag Office, and Ted. Admittedly, I haven't tried anything else for awhile, but I can basically do what I need to with OpenOffice. In fact, I have resorted to markup languages like HTML and TeX when formatting isn't too complicated.

OpenOffice is the open source version of StarOffice. Since it is not associated with set releases of StarOffice and the associated bureaucracy, it apparently can be upgraded, built and released more often. My experiences with it have been better than with any released versions of StarOffice. It comes ready to go as an installed package with the Red Hat installation.

One trick...OpenOffice starts with a logo screen that stays up during the (long) program load time. To get rid of it, edit /usr/lib/openoffice/program/sofficerc and change "Logo=1" to "Logo=0".

14.2 A Rhyming Dictionary

RHYME is a simple rhyming dictionary that supports about 127,000 words. It supports syllable counting and perfect rhymes.A must for every Linux songwriter.

Download the source. Running RPM or KPACKAGE (i.e. the Redhat Package Manager for KDE) will copy the source tarball to /usr/src/redhat/SOURCES. It won't tell you this, it just does it with no confirmation. You can then make the executable.

	cd /usr/src/redhat/SOURCES
	tar -zxvf rhyme-0.5.tar.gz
	cd rhyme-0.5
	make install

On another machine the compilation of the word database file took awhile to complete, but on the 2755 it was pretty quick. "make install" installs the executable in /usr/bin. See the readme file "INSTALL" in the source directory for more information on configuring the makefile to place things in different directories (if desired).

The rhymer is a command line program that you invoke with "rhyme". Other options are listed by "rhyme -h". The minimal specifications file is in "/usr/src/redhat/SPECS/rhyme.spec".

14.3 Real Player offers a Linux (alpha test) version of the RealOne Player (RealNetworks) for playing streaming audio and video from the web. You can download it from the community supported realplayer download page. After going through the download form, you will be downloading an executable installer (.bin) program file. You can put the file anywhere you like, although you might want to save it after installation in case you need to reinstall at some time in the future.

Unfortunately, there are problems with the install program when trying to do a system install. You will have to do a single-user install for each user on your system. This will also create a Real and RealPlayer9 directory in your /home/<user> directory.

1) As a user, NOT SUPERUSER, execute the installation file:


2) Choose "Typical Install".

3) Accept the License Agreement (as if you really had a choice)

4) Choose the appropriate Internet connection speed (I use 56.6 Kbps for my dialup connection)

5) AS SUPERUSER, create a soft link to the executable file. Delete any existing link.

	rm /usr/bin/realplay
	ln -s /home/<user>/RealPlayer9/realplay /usr/bin/realplay

You should now be able to use the RealPlayer either standalone or with the browser of your choice.

Attempting to do an installation as superuser into a system directory will result in a segmentation fault and an inoperable realplayer. For some reason, when doing a custom installation, the Real directory is left in the /root directory and is inaccessable when not superuser. If you attempting to start the realplayer in this configuration is will simply terminate with no error message.

Supposedly, it is possible to do a system install by manually moving the Real directory to a system area and change the paths in each user's /home/<user>/.realnetworks directory. But this is a pain and I'll wait for the people to fix their installer.

If this doesn't work for you, the older Real Player 8 is still available. However, attempting to access some streaming sites with the older player will result in the bogus error message: " You cannot receive this content. You do not have enough network bandwidth." That error message does not occur with the RealOne Player.

14.4 Real Producer

A Linux version of Helix Producer Basic (formerly RealProducer) is available free from Real Networks for creating Real Media files. While it is a command line encoder and does not have a convenient X-Window interface, it is all you need to create Real Audio files. It also apparently can encode Real Video, but only the Windows version can handle .avi files and I have never tried it with other formats.

To install download the tarball from into a temporary "/home/[username]/realproducer" directory. You need a temporary directory because the tarball does not create a subdirectory when it uncompresses

Decompress the tarball, run the install script and follow the prompts:

	$ tar -zxvf realproducer_8.5_linux.tar.gz.
	$ ./install

Both Real Producer Basic (free) and Real Producer Plus (not free) are included in the tarball, but Real Producer Basic has met all of my needs. A complete list of the extensive command line options can be listed by typing "realproducer --help".

My primary usage of Real Producer has been to create streaming audio from .wav files. The following example creates a real audio file titled "My Song" from the mysong.wav file specifically for 56K modems.

	realproducer -i mysong.wav -o mysong.rm -b "My Song" -h "Michael Minn" -c "(c) 2001 by Michael Minn" -t 1 -a 2 -f 0

To stream the audio from a website, you need to create a .ram file that contains one line that is a link to the .rm file. For the above my_song.rm example, if you were posting it to an "audio" directory under and saved as "my_song.ram":

Links to the audio should then refer to ""

14.5 MP3 Encoding

One of the best and most popular MP3 encoders for Linux is L.A.M.E. Red Hat has chosen to stay completely out of the MP3 inquisition by not shipping any MP3 capability in their distribution. No matter. More information is available from the L.A.M.E. website.. Downloads can be made from the L.A.M.E. FTP directory. The most current stable version when I last downloaded was 3.70.

Compilation is simple - just download the tarball, decompress and make. This creates a single executable file called "lame":

	tar -zxvf lame*
	cd lame*
	make install

The numerous options can be displayed with the --help option, although in it's simplest default form it works fine:

	./lame input_file.wav output_file.mp3

14.6 DVD Viewing

There are a number of sites devoted to DVD support under Linux.