#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''', il programma. 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://hdparm|hdparm]]. {{{#!wiki important Fare attenzione che il programma ''hdparm'' se usato in modo superficiale può arrecare gravi danni al dispositivo su cui è usato. }}} {{{#!wiki important 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. }}} 0. Controllare le impostazioni di `/dev/srX`:{{{ sudo hdparm /dev/srX }}} sostituire il dispositivo `dev/srX` con quello ottenuto per [[Hardware/Periferiche/IdentificarePeriferiche|identificare la periferica]]. * 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 è 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. <> = 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