For some of us, DMA isn't enabled by default for our wonderful FC5 powered computers (like some Dells and Thinkpads). I've been spending a month or two (off and on) trying to find out how to work arround this problem. The long answer, from what I understand, for why this happens has to do with an IDE and a SATA/PATA drivers that are conflicting with one another and trying to control the drive (you might notice that the drive is labled /dev/hdc) and the DMA doesn't work well... or at all. According to the bug-report that I read, this is not a bug but an expected side effect of some DVD drive setups. With recently released kernels it is not required to make a custom-build, so this is done based off of a yum-installed kernel.
Signs of this problem include choppy DVD playback or slow image reading and when running "hdparm -d1 /dev/hdc" to turn DMA on it will respond with "Operation not permitted". If you see this and, like me, have been trying to find a way to enable DMA on your drive this should help you and I'm writing this so that people with this (apperently common) problem can referance one place to solve it.
Ok, now to get to the part where I tell you how to...
In the terminal:
$su -
#gedit /etc/modprobe.conf
add the following line to the end of the file (leaving an extra empty line behind it):
options libata atapi_enabled=1
save, close and continue in the terminal:
#gedit /boot/grub/menu.lst
add the following to the boot parameter:
combined_mode=libata
save, close and reboot.
Now your DVD drive should be called "/dev/scd0", DMA will not be needed and Xine should be able to play it without the choppyness. Further effects of a working DVD drive (from what I hear, tell myself to make me feel better and dream) include faster CD ripping speeds and general read speeds, improved oooo-aaahhhh factor of showing off Linux, improved firtility and a marginal decrease in Windows dependancy...
My final two files look like this:
(/boot/grub/menu.lst)
Code:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/sda1
# initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/che3.xpm.gz
hiddenmenu
title Fedora Core (2.6.16-1.2133_FC5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.16-1.2133_FC5 ro root=LABEL=/ rhgb quiet combined_mode=libata
initrd /boot/initrd-2.6.16-1.2133_FC5.img
title Fedora Core (2.6.16-1.2133_FC5) no_libata
root (hd0,0)
kernel /boot/vmlinuz-2.6.16-1.2133_FC5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.16-1.2133_FC5.img
title Fedora Core (2.6.16-1.2122_FC5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.16-1.2122_FC5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.16-1.2122_FC5.img
and:
(/etc/modprobe.conf)
Code:
alias eth0 tg3
alias scsi_hostadapter ata_piix
alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0
options libata atapi_enabled=1
Final Note:
The bug report had another option that could be passed to replace the "combined_mode=libata" parameter with "combined_mode=ide". My drive started working with the method in this how-to so I stopped there. If yours does not I'd go back and try again or just ask here for help. The bug report said that "combined_mode=ide" just gimped DMA on everything (to include the hard drive) so I wouldn't suggest it but that might've just been because it switched the driver for the SATA/PATA drives to IDE... Frankly I don't know... I'm guessing that if this didn't work, you have an IDE DVD drive but I'm way out of my league of tinkering. So basicly don't use "combined_mode=ide" unless you know what it does and why it doesn't work.