#format wiki
#LANGUAGE it
<
>
<>
<>
= 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 prodotti dal 1994 ha il supporto al DMA, mentre è pressoché certa la sua presenza (o sua evoluzione quale l'UDMA) dal 1997.
{{{#!wiki important
Abilitare il DMA può essere pericoloso in alcuni casi. I problemi più comuni sono collegati ad hardware con problemi, errori nei driver o uso di impostazioni non supportate dal proprio sistema.
}}}
= Preparazione =
== Identificare periferica ==
Di seguito viene illustrato l'utilizzo di due strumenti:
* '''lsscsi''': strumento semplice per [[Hardware/Periferiche/IdentificarePeriferiche|identificare]] il dispositivo di masterizzazione.
0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://lsscsi|lsscsi]].
0. Per identificare il nome del dispositivo digitare nel [[AmministrazioneSistema/Terminale |terminale]] il comando:{{{
lsscsi | grep -i dvd
}}}
* '''hdparm''': per utilizzare il programma seguire i seguenti passaggi:
0. [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://hdparm|hdparm]].
0. Controllare le impostazioni di `/dev/srX`:{{{
sudo hdparm /dev/srX
}}}
sostituendo `dev/srX` con il dispositivo ottenuto per [[Hardware/Periferiche/IdentificarePeriferiche|identificare la periferica]].
0. Se è presente una riga come questa:{{{
using_dma = 1 (on)
}}} significa che il DMA è già attivato. Passare direttamente al punto 8 per vedere se viene abilitato all'avvio del sistema.
Se è invece presente una riga come questa:{{{
SG_IO: bad/missing sense data, sb[]
}}} significa che il dispositivo non viene letto correttamente. Passare direttamente al punto 7 per attivare tramite modifica del file.
{{{#!wiki important
Fare attenzione poiché il programma ''hdparm'' se usato in modo scorretto può arrecare gravi danni al dispositivo su cui è usato.<
>
Prestare molta attenzione nell'indicare il dispositivo corretto. Ad esempio, nei casi più comuni, indicare /dev/sda nel comando può compromettere l'integrità del disco rigido cagionando l'inavviabilità del proprio sistema e l'accesso ai propri file personali.
}}}
<>
= Abilitare il DMA =
0. Abilitare il DMA per `/dev/srX`:{{{
sudo hdparm -d1 /dev/srX
}}}
0. Ora è stato abilitato il DMA.
0. Per avere queste impostazioni abilitate automaticamente all'avvio del sistema, è necessario modificare il file `/etc/hdparm.conf`.<
>
A tale scopo aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] il file `/etc/hdparm.conf`, modificare i parametri nelle seguenti righe:{{{
#/dev/cdroms/cdrom0 {
# dma = on
# interrupt_unmask = on
# io32_support = 0
#}}}nel modo seguente:{{{
/dev/sr0 {
dma = on
interrupt_unmask = on
io32_support =
}
}}} salvare, quindi riavviare il sistema.
= Comandi avanzati =
È possibile ottenere specifiche informazioni sui tre principali parametri del masterizzatore:
|| '''Opzione'''||<:>'''Output'''||
||'''-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||
* Il comando:{{{
sudo hdparm -d /dev/srX
}}} darà come output:{{{
/dev/srX:
using_dma = 1 (on)
}}}
* Il comando:{{{
sudo hdparm -c /dev/srX
}}} darà come output:{{{
/dev/srX:
IO_support = 1 (32-bit)
}}}
* Il comando:{{{
sudo hdparm -m /dev/srX
}}} darà come output:{{{
/dev/srX:
multcount = 0 (off)
}}}
== Test sul masterizzatore ==
Il comando '''hdparm''' consente, attraverso l'uso dell'opzione '''-tT''', l'esecuzione di un test completo sui masterizzatori.
Ad esempio:{{{
sudo hdparm -tT /dev/srX
}}} il cui risultato è un output di questo tipo:{{{
/dev/srX:
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||
È quindi possibile modificare le impostazioni del masterizzatore con questo comando:{{{
sudo hdparm -d1 -c1 -m8 /dev/srX
}}}
Con il comando precedente è stato indicato di abilitare DMA (-d1), abilitare il supporto 32-bit del masterizzatore (-c1) e impostare l'«Ide Block Mode» su 8-bit (-m8). È possibile impostare l'«Ide Block Mode» su 16-bit (-m16) o 32-bit (-m32).
L'output del comando sarà:{{{
/dev/srX:
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 2 può fallire con un messaggio tipo '''operation not permitted/operazione non permessa'''. Per risolvere questo problema, è necessario modificare il file `/etc/modules`.
Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] 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
}}} salvare e riavviare il sistema, quindi ripetere i passi 3 e 4 della [[#abilitare|procedura precedente]].
= Ulteriori risorse =
* [[http://standards.ieee.org/reading/ieee/std_public/description/busarch/1212.1-1993_desc.html|Descrizione dettagliata del DMA]].
----
CategoryHardware