Introduzione
Se la riproduzione di un DVD non è scorrevole, potrebbe essere a causa del DMA non attivato. DMA, o «Direct Memory Access», permette ai dischi rigidi e ai lettori di CD/DVD di accedere direttamente alla memoria di sistema, senza caricare la CPU.
La maggior parte dei sistemi che hanno meno di 3 anni supportano il DMA.
Immagine(Icone/Piccole/warning.png,,left) Abilitare il DMA può essere pericoloso in alcuni casi.BR Problemi comuni sono collegati ad hardware con problemi, errori nei driver o uso di impostazioni non supportate dal proprio sistema. BR BR
Abilitare il DMA
Per abilitare il DMA, è necessario usare il comando hdparm.
Le istruzioni che seguiranno, prendono come esempio l'abilitazione del DMA sul dispositivo /dev/hdc, nella maggior parte dei casi il lettore CD-ROM/DVD.
Controllare le impostazioni di /dev/hdc:
sudo hdparm /dev/hdc
Se è presente una linea come questa:
using_dma = 1 (on)
significa che il DMA è già attivato. Passa direttamente al passo 4 per vedere se viene abilitato all'avvio del sistema.Abilitare il DMA per /dev/hdc
sudo hdparm -d1 /dev/hdc
Ora è stato abilitato il DMA. Comunque, per avere queste impostazioni abilitate automaticamente all'avvio del sistema, è necessario modificare il file /etc/hdparm.conf. Aprire con l'editor di testo preferito, e con i permessi di amministratore (consultare la pagina [:Sudo] per maggiori informazioni), il file /etc/hdparm.conf. Aggiungere le seguenti righe alla fine del file:
/dev/hdc { dma = on }
Salvare e riavviare il sistema.
Comandi avanzati
E' possibile ottenere specifiche informazioni sui tre principali parametri del disco:
Opzione |
Ouptut |
-d |
DMA del dispositivo in esame |
-c |
supporto IO del dispositivo in esame, 16 o 32 bit è la velocità di trasmissione dei dati (consultare questa [http://it.wikipedia.org/wiki/Input/Output pagina]) |
-m |
multcount, (Ide Block Mode) trasmissione di settori multipli per I/O a 0, 8, 16 o 32 bit |
Quindi, il comando:
sudo hdparm -d /dev/hda
darà come output:
/dev/hda: using_dma = 1 (on)
Il comando:
sudo hdparm -c /dev/hda
darà come output:
/dev/hda: IO_support = 1 (32-bit)
Il comando:
sudo hdparm -m /dev/hda
darà come output:
/dev/hda: multcount = 0 (off)
Test sui dischi
Il comando hdparm consente, attraverso l'uso dell'opzione «-tT», l'esecuzione di un test completo sui dischi.
Per esempio:
sudo hdparm -tT /dev/hda
il cui risultato è un output di questo tipo:
/dev/hda: Timing cached reads: 276 MB in 2.01 seconds = 136.99 MB/sec Timing buffered disk reads: 20 MB in 3.14 seconds = 6.37 MB/sec
Modifica della configurazione
L'esecuzione dei test mostrerà che Ubuntu ha già configurato al meglio il proprio hardware, tuttavia può essere utile la verifica dei valori e la loro eventuale correzione.
Alcune opzioni utili per la modifica della configurazione da utilizzare con hdparm:
Opzione |
Risultato |
-c0 |
disabilita la funzione |
-c1 |
abilita la modalità a 32bit |
-c2 |
abilita la modalità a 16bit |
-c3 |
abilita la modalità a 32bit con una funzione di sincronismo richiesta da molti chipset |
E' quindi possibile modificare le impostazioni del disco con questo comando:
sudo hdparm -d1 -c1 -m8 /dev/hda
Con il comando precedente è stato indicato di abilitare DMA (-d1), abilitare il supporto 32-bit del disco (-c1) e imostare l'«Ide Block Mode» su 8-bit (-m8). E' possibile impostare l'«Ide Block Mode» su 16-bit (-m16) o 32-bit (-m32).
L'output del comando sarà:
/dev/hda: setting 32-bit IO_support flag to 1 setting multcount to 8 setting using_dma to 1 (on) multcount = 8 (on) IO_support = 1 (32-bit) using_dma = 1 (on)
Problemi noti
Se i propri dispositivi sono configurati in modalità Cable Select ed eseguendo il comando hdparm si ricevono degli errori relativi a dei timeout o periferica non pronta, provare a cambiare la periferica in master o slave, a seconda della configurazione del sistema (far riferimento al manuale del dispositivo o della propria scheda madre).
A volte il passo 3 può fallire con un messaggio tipo «operation not permitted/operazione non permessa». Per risolvere questo problema, è necessario modificare il file /etc/modules.BR Aprire con l'editor di testo preferito, e con i permessi di amministratore (consultare la pagina [:Sudo] per maggiori informazioni), il file /etc/modules.
Nel caso si possieda un CPU Intel, inserire:
piix ide-core
sopra la riga:
ide-cd
Nel caso si possieda una CPU AMD, inserire:
amd74xx
sopra la riga:
ide-cd
Nel caso si utilizzi un chipset VIA, inserire:
via82cxxx
sopra la riga:
ide-cd
A questo punto riavviare e ripetere i passi 3 e 4 della [#abilitare procedura precedente].
Ulteriori risorse
Per una descrizione dettagliata del DMA consultare questa [http://standards.ieee.org/reading/ieee/std_public/description/busarch/1212.1-1993_desc.html pagina].
IDE, EIDE e UDMA http://www.spcug.org/reviews/bl0108.htm