Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


Guida verificata con Ubuntu: 20.04 22.04

Problemi in questa pagina? Segnalali in questa discussione

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.

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:

Fare attenzione che il programma hdparm se usato in modo superficiale 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.

  1. Controllare le impostazioni di /dev/srX:

    sudo hdparm /dev/srX

    sostituire il dispositivo dev/srX con quello ottenuto per 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

  1. Abilitare il DMA per /dev/srX:

    sudo hdparm -d1 /dev/srX
  2. Ora è stato abilitato il DMA.
  3. Per avere queste impostazioni abilitate automaticamente all'avvio del sistema, è necessario modificare il file /etc/hdparm.conf.
    A tale scopo aprire con un editor di testo e con i 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 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 editor di testo e con i 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 procedura precedente.

Ulteriori risorse


CategoryHardware