个人工具

UbuntuHelp:DMA/zh

来自Ubuntu中文

跳转至: 导航, 搜索

介绍

如果你感觉你的 DVD 播放时有跳跃现象,或者拷贝音乐 CD 非常慢,或者在访问光驱时系统变慢,这可能是由于你没有启用 DMA,或者叫“内存直接访问(Direct Memory Access)”。DMA 能让硬盘或光驱等设备直接访问系统内存。Ubuntu 6.06 (Dapper Drake) 能够识别支持 DMA 的设备并自动启用 DMA。

IconWarning3.png 警告:启用 DMA 在某些情况下是有风险的,这通常跟硬件故障或使用了系统不支持的设置有关。不当的使用 hdparm 命令可能导致主要数据的破坏和/或丢失!近 4 年内的系统大都支持 DMA。

启用 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
  1. 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.
  2. Enable DMA on `/dev/hdc`
sudo hdparm -d1 /dev/hdc
  1. 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: gksudo gedit /etc/hdparm.conf

Add the following to the end of your hdparm.conf

/dev/hdc {
dma = on
}

(another way of avoiding editing of the hdparm.conf file is to simply run sudo hdparm -d1 -k1 /dev/hdc to keep the DMA flag).

常见问题

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 an "Operation Not Permitted" message. You can fix this by editing the file /etc/modules: For an Intel CPU put the lines

piix
ide-core

above the line ide-cd For an AMD CPU put the line amd74xx above ide-cd For a VIA Chipset put via82cxxx above ide-cd Then reboot and try steps 3-4 again....

Further reading

The hdparm has 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