5.1. CD/DVD drives

Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives are capable of running at reduced speeds. There are several reasons that might make you consider changing the speed of a CD-ROM drive:

5.1.1. Linux

You can reduce the speed of IDE CD-ROM drives with hdparm, setcd or cdctl. It works like this:

hdparm -E [speed] [cdrom device]

setcd -x [speed] [cdrom device]

cdctl -bS [speed]

If you are using SCSI emulation, you might have to apply the settings to the real IDE device, not the emulated SCSI device.

If you have root privileges the following command may also help:

echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings

This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs. If you set it to too high, the drive will continuously spin up and down, and will dramatically decrease the performance. It is recommended that you also tune your CD-ROM drive with hdparm:

hdparm -d1 -a256 -u1 [cdrom device]

This enables DMA access, read-ahead, and IRQ unmasking (read the hdparm man page for a detailed explanation).

Please refer to "/proc/ide/[cdrom device]/settings" for fine-tuning your CD-ROM.

You may tweak the speed of SCSI CD-ROM drives with sdparm, you need version 1.03 or higher:

sdparm --command=speed=[speed in kB/s] [cdrom device]

Speed must be specified in kilobytes per second, the drive will round it as appropriate. Please refer to the sdparm man page for details.

There is also a dedicated tool that works for Plextor SCSI drives.

5.1.2. FreeBSD

speed:

cdcontrol [-f device] speed [speed]

DMA:

sysctl hw.ata.atapi_dma=1