Linux on the Toshiba Satellite 1905-S303
Author: Michael Minn (see www.michaelminn.com for current contact info)
May 11, 2005
Describes how to set up Fedora Core 2 Linux on a Toshiba Satellite 1905-S303 notebook computer.
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:
- 2.4Ghz Intel Pentium IV
- ATI Radeon Mobility M6 video chip with 32MB RAM
- 40GB TOSHIBA MK4018GAP ATA hard drive
- TOSHIBA DVD-ROM SD-R2212 ATAPI CD/DVD-ROM
- Built-in 3.25" floppy drive
- 512MB of RAM
- 2 PCMCIA slots
- Firewire port
- 2 USB ports
- Legacy parallel port (no serial port or mouse port)
- Intel AC97 sound
- Built-in Ethernet (RJ-45) port
- Built-in Conexant SmartMC II Winmodem (via the AC97 chip)
- I bought it for $1,623.62 in March, 2003
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 world...you'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
Language selection - English
Keyboard configuration - U.S. English
- Generic LCD Display 1024x768
- Horizontal 31.5-37.9Khz
- Vertical 50-70Hz
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.
- deleted /dev/hda3: old / (26027MB) and /home (2071MB)
- kept /hda1 (NTFS - 9052MB), hda2 (swap 1004MB)
- New / (hda3 - 5000MB ext3), /home (hda4-5 23098MB)
Boot Loader Configuration (default)
- GRUB on /dev/hda
- Default boot to Fedora Core
Network Configuration (default): eth0 with DHCP
Firewall Configuration: Defaults are appropriately stiff
Additional Language Support: only English USA
Set root password
Package Group Selection
X Window System (no Gnome or KDE) Applications Editors emacs vim-common vim-enhanced Engineering & Scientific blas gnuplot lapack octave units Graphical Internet mozilla mozilla-mail Text-based Internet fetchmail lynx (browser) mutt (mail user agent) ncftp Office/Productivity ggv gpdf openoffice.org tetex-xdvi xpdf Sound and Video Base Packages alsa-utils aumix sox cdda2wav cdp cdparanoia cdrecord dvd+rw-tools dvdrecord xmms xmms-skins Authoring and publishing docbook* linuxdoc-tools (SGML) tetex* xhtml1-dtds (DTD for XHTML) xmlto (XML conversion tools) Graphics dia gimp* gtkcam* netpbm-progs sane-frontends xfig xsane xsane-gimp Games (none) Servers Server Configuration Tools Web Server Mail Server Windows File Server DNS name server FTP server SQL database server News server Network Servers Development Development tools Kernel development X Software development (Gnome software - no) (KDE software - no) System 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:
id:5:initdefault: to id:3:initdefault:
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" EndSection
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mouse1" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "yes" EndSection
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.
sgi_fam rpcidmapd messagebus (application communication) mdmonitor (RAID) autofs (automount) apmd acpi mdmpd (device monitoring?) cups (printer) irqbalance (multiprocessor support) kudzu (hardware changes) netfs (automount network file systems) isdn sshd sendmail nfslock 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:
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 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 184.108.40.206 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 8086:2446 VENDOR ID 8086 (Intel Corporation) Device ID 2446 SUBVENDOR ID 1179 SUBDEVICE ID 0001 REVISION ID 05 VENDOR NAME ICH DEVICE NAME ICH2 SUBVENDOR NAME COMPAL MODEM TYPE HSF WINXP INBUILD SUPPORT NO
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:
Add an entry to /etc/fstab (permits read/execute for everyone)
/dev/hda1 /windoze ntfs defaults,umask=0222 0 0
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 ttmkfdir mkfontdir
Configure font directory: Add the new directory to the "catalogue" section of /etc/X11/fs/config
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled, /usr/X11R6/lib/X11/fonts/75dpi:unscaled, /usr/X11R6/lib/X11/fonts/100dpi:unscaled, /usr/X11R6/lib/X11/fonts/Type1, /usr/X11R6/lib/X11/fonts/Speedo, /usr/share/fonts/default/Type1, /usr/X11R6/lib/X11/fonts/truetype
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 name...you 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:
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 burning...it 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% Fixating... 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 libdvdcss-1.2.8-1.fr.i386.rpm 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.
As far as the laws of mathematics refer to reality, they are not certain, and as far as they are certain, they do not refer to reality. (Albert Einstein, Geometry and Experience, 1921)