DMA

Revision 13 as of 2005-09-28 07:44:35

Clear message

If you experience jumpy DVD playback, it may be because DMA is not enabled. DMA, or Direct Memory Access, lets hard drives and CD/DVD drives access the system memory.

Warning: Enabling DMA can be dangerous in some cases. Usually issues are directly related to faulty hardware, poorly written drivers, or using settings that are unsupported by your system. USING HDPARM INCORECTLY CAN CAUSE MAJOR DATA CORRUPTION AND/OR LOSS. Most systems newer than 3 years support DMA.

Enabling DMA

To enable DMA, you need to use the hdparm command and the configuration file hdparm.conf.

These instructions assume that you are trying to enable DMA on hdc, usually the CD-rom drive.

  1. See the what the settings are on /dev/hdc

    •    sudo hdparm /dev/hdc
  2. If you get a line like  using_dma    =  1 (on), DMA is already enabled. Skip to step 4 to see if it has been enabled at boot time.

  3. Enable DMA on /dev/hdc

    •    sudo hdparm -d1 /dev/hdc
  4. You have now enabled DMA for the drive. However, in order for the settings to be automatically applied at boot there you need to edit the /etc/hdparm.conf} script. To do this use this command: sudo gedit /etc/hdparm.conf

Add the following to the end of your hdparm.conf

  •    /dev/hdc {
       dma = on
       }

Troubleshooting

If your drives are configured in [Cable Select] mode and while running hdparm commands you receive errors related to timeouts or drive not ready, try changing the drive to be a master or slave device depending on your system configuration. This does require opening the case and as far as I know most drives are set to Cable Select from the manufacturer.

Sometimes step 3 above can fail with a "operation not permitted" message. You can fix this by editing the file /etc/modules: For an intel cpu put the lines


Warning /!\ Edit conflict - other version:


piix

ide-core


Warning /!\ Edit conflict - your version:


piix

ide-core


Warning /!\ End of edit conflict


above the line


Warning /!\ Edit conflict - other version:


ide-cd


Warning /!\ Edit conflict - your version:


ide-cd


Warning /!\ End of edit conflict


For an amd cpu put the line


Warning /!\ Edit conflict - other version:


amd74xx


Warning /!\ Edit conflict - your version:


amd74xx


Warning /!\ End of edit conflict


above


Warning /!\ Edit conflict - other version:


ide-cd


Warning /!\ Edit conflict - your version:


ide-cd


Warning /!\ End of edit conflict


For a VIA Chipset put


Warning /!\ Edit conflict - other version:


via82cxxx


Warning /!\ Edit conflict - your version:


via82cxxx


Warning /!\ End of edit conflict


above


Warning /!\ Edit conflict - other version:


ide-cd


Warning /!\ Edit conflict - your version:


ide-cd


Warning /!\ End of edit conflict


Then reboot and try steps 3-4 again....

Further reading

The hdparm has a further options that may be more risky. They can be seen using the man hdparm command in the terminal.

For a detailed description of DMA visit the IEEE http://standards.ieee.org/reading/ieee/std_public/description/busarch/1212.1-1993_desc.html

IDE, EIDE and UDMA http://www.spcug.org/reviews/bl0108.htm

CategoryDocumentation