个人工具

“UbuntuHelp:DMA”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
第2行: 第2行:
 
{{Languages|UbuntuHelp:DMA}}
 
{{Languages|UbuntuHelp:DMA}}
 
=== Introduction ===
 
=== Introduction ===
 
 
If you experience jumpy DVD playback, slow CD ripping, or a general slow down when accessing optical drive(s) it may be because DMA is not enabled. DMA, or Direct Memory Access, lets hard drives and CD/DVD drives access the system memory.
 
If you experience jumpy DVD playback, slow CD ripping, or a general slow down when accessing optical drive(s) it may be because DMA is not enabled. DMA, or Direct Memory Access, lets hard drives and CD/DVD drives access the system memory.
 
 
Ubuntu 6.06 (Dapper Drake) has DMA '''automatically''' enabled for drives that support it.
 
Ubuntu 6.06 (Dapper Drake) has DMA '''automatically''' enabled for drives that support it.
 
 
https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=IconDialog-Warning1.png '''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.  
 
https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=IconDialog-Warning1.png '''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 INCORRECTLY CAN CAUSE MAJOR DATA CORRUPTION AND/OR LOSS. Most systems newer than 4 years support DMA.'''
 
'''USING HDPARM INCORRECTLY CAN CAUSE MAJOR DATA CORRUPTION AND/OR LOSS. Most systems newer than 4 years support DMA.'''
 
 
=== Enabling DMA ===
 
=== Enabling DMA ===
 
 
To enable DMA, you need to use the <code><nowiki>hdparm</nowiki></code> command and the configuration file <code><nowiki>hdparm.conf</nowiki></code>.  
 
To enable DMA, you need to use the <code><nowiki>hdparm</nowiki></code> command and the configuration file <code><nowiki>hdparm.conf</nowiki></code>.  
 
 
These instructions assume that you are trying to enable DMA on `hdc`, usually the CD-rom drive.
 
These instructions assume that you are trying to enable DMA on `hdc`, usually the CD-rom drive.
 
+
# See the what the settings are on `/dev/hdc`
* See the what the settings are on `/dev/hdc`
+
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo hdparm /dev/hdc
 
sudo hdparm /dev/hdc
 
</nowiki></pre>
 
</nowiki></pre>
* If you get a line like <code><nowiki> using_dma    =  1 (on)</nowiki></code>, DMA is already enabled. Skip to step 4 to see if it has been enabled at boot time.
+
# If you get a line like <code><nowiki> using_dma    =  1 (on)</nowiki></code>, DMA is already enabled. Skip to step 4 to see if it has been enabled at boot time.
* Enable DMA on `/dev/hdc`
+
# Enable DMA on `/dev/hdc`
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo hdparm -d1 /dev/hdc
 
sudo hdparm -d1 /dev/hdc
 
</nowiki></pre>
 
</nowiki></pre>
* 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 <code><nowiki>/etc/hdparm.conf</nowiki></code> script. To do this use this command: <code><nowiki>gksudo gedit /etc/hdparm.conf</nowiki></code>
+
# 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 <code><nowiki>/etc/hdparm.conf</nowiki></code> script. To do this use this command: <code><nowiki>gksudo gedit /etc/hdparm.conf</nowiki></code>
 
+
 
Add the following to the end of your hdparm.conf
 
Add the following to the end of your hdparm.conf
 
<pre><nowiki>
 
<pre><nowiki>
第34行: 第25行:
 
}
 
}
 
</nowiki></pre>
 
</nowiki></pre>
 
 
(another way of avoiding editing of the hdparm.conf file is to simply run <code><nowiki>sudo hdparm -d1 -k1 /dev/hdc</nowiki></code> to keep the DMA flag).
 
(another way of avoiding editing of the hdparm.conf file is to simply run <code><nowiki>sudo hdparm -d1 -k1 /dev/hdc</nowiki></code> to keep the DMA flag).
 
 
=== Troubleshooting ===
 
=== 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.
 
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:
 
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
 
For an Intel CPU put the lines
第49行: 第36行:
 
above the line
 
above the line
 
<code><nowiki>ide-cd</nowiki></code>
 
<code><nowiki>ide-cd</nowiki></code>
 
 
For an AMD CPU put the line
 
For an AMD CPU put the line
 
<code><nowiki>amd74xx</nowiki></code>
 
<code><nowiki>amd74xx</nowiki></code>
 
above
 
above
 
<code><nowiki>ide-cd</nowiki></code>
 
<code><nowiki>ide-cd</nowiki></code>
 
 
For a VIA Chipset put
 
For a VIA Chipset put
 
<code><nowiki>via82cxxx</nowiki></code>
 
<code><nowiki>via82cxxx</nowiki></code>
 
above
 
above
 
<code><nowiki>ide-cd</nowiki></code>
 
<code><nowiki>ide-cd</nowiki></code>
 
 
Then reboot and try steps 3-4 again....
 
Then reboot and try steps 3-4 again....
 
 
=== Further reading ===
 
=== Further reading ===
 
 
The hdparm has further options that may be more risky. They can be seen using the <code><nowiki>man hdparm</nowiki></code> command in the terminal.
 
The hdparm has further options that may be more risky. They can be seen using the <code><nowiki>man hdparm</nowiki></code> command in the terminal.
 
 
For a detailed description of DMA visit the IEEE  
 
For a detailed description of DMA visit the IEEE  
 
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1212.1-1993_desc.html
 
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
 
IDE, EIDE and UDMA http://www.spcug.org/reviews/bl0108.htm
 
 
----
 
----
 
[[category:CategoryDocumentation]]
 
[[category:CategoryDocumentation]]
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2007年11月30日 (五) 16:48的版本


Introduction

If you experience jumpy DVD playback, slow CD ripping, or a general slow down when accessing optical drive(s) it may be because DMA is not enabled. DMA, or Direct Memory Access, lets hard drives and CD/DVD drives access the system memory. Ubuntu 6.06 (Dapper Drake) has DMA automatically enabled for drives that support it. IconsPage?action=AttachFile&do=get&target=IconDialog-Warning1.png 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 INCORRECTLY CAN CAUSE MAJOR DATA CORRUPTION AND/OR LOSS. Most systems newer than 4 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
  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).

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 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