Playing DVDs under linux is almost as simple as inserting the disk into the drive, but there are a couple of traps for the unwary.

The following information appears to be correct for the 2.6.9 kernel.

Seek errors

Seek errors can be obviated in one of two ways, either by using the ide-scsi module (as described by criggie), or by enabling the IDE ioctl interface in the kernel.

If you wish to use ide-scsi to permit access to the full DVD and prevent seek errors, then you can do the following, but note that this will change the way you do CD burning, DVD ripping and possibly also access USB storage devices.

 # rmmod ide-cd cdrom sr_mod
 # modprobe ide-scsi
 # modprobe sr_mod

Alternatively, enable the ioctl interface for IDE devices in the kernel, recompiling and installing as usual:

 CONFIG_IDE_TASK_IOCTL=y
 CONFIG_IDE_TASKFILE_IO=y

Packet command errors

If you receive the following error:

 hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
 hdc: packet command error: error=0x54
 ide: failed opcode was 100

either on console (Ctrl+Alt+F1) or in your logs (/var/log/kern.log) when playing DVDs, then follow the kernel hacker's advice from drivers/ide/Kconfig in the kernel source tree and change the kernel config as follows:

 CONFIG_IDEDISK_MULTI_MODE=y

Recompiling and installing the kernel as usual.

Slow/Stuttered playback

Turning on DMA can drastically improve playback speed. Note that this setting must be run after each reboot, so you should consider having hdparm run automatically on boot (this happens automatically under Debian) with an appropriate /etc/hdparm.conf to turn on DMA. To see the results instantly from the command line:

 # hdparm -d1 /dev/dvd

Kernel Config

My complete kernel config is available, but please note that it is optimised for the HP/Compaq nx7010, so it may not be suitable for you.


Last edited: Tuesday January 11, 2005

Valid XHTML 1.1 Valid CSS 2