Visualizza il feed RSS

Linux e dintorni

Ubuntu 9.10: Compilare ALSA Driver

Valuta questo inserimento
di pubblicato il 08-12-2009 alle 16:31 (12649 Visite)
Un problema comune nell'installazione di Ubuntu su computer ([note|net]book) è il mancato riconoscimento o il mal funzionamento delle periferiche audio, quali: microfono interno ed esterno e altri "piccoli" problemi vari. Se riscontrate questo genere di problemi, una delle migliori soluzioni per aumentare la compatibilità con nuovo Hardware consiste nello scaricare, configurare e compilare i Driver ALSA (Abstraction Linux Sound Architecture), manualmente. Se il vostro sistema riconosce perfettamente l'hardware audio è altamente consigliato di non aggiornare i driver ALSA alla nuova versione.

In questo blog spiego come predisporre il sistema e successivamente, il corretto metodo per avere i Driver ALSA più aggiornati, installati sul sistema.

Predisposizione del sistema

Innanzitutto recuperiamo i pacchetti fondamentali per compilare i driver:

codice:
# sudo apt-get install linux-headers-`uname -r` gettext xmlto libncurses5 libncurses5-dev build-essential
Creiamoci anche una Directory nella nostra home per scaricare i driver ALSA:

codice:
# mkdir alsa
# cd alsa/
Salviamo la configurazione ALSA corrente per poterla reimpostare a fine installazione (Questo è un passaggio fondamentale):

codice:
# sudo alsactl -f old-configuration.txt store
Scarichiamoli direttamente da terminale con il comando wget (attualmente, mentre scrivo questo blog, la versione più aggiornata dei driver è la 1.0.21):

codice:
# wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.21.tar.bz2
# wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.21a.tar.bz2
# wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.21.tar.bz2
Scompattiamo i file appena scaricati nella stessa directory:

codice:
# tar xjf alsa-driver-1.0.21.tar.bz2
# tar xjf alsa-lib-1.0.21a.tar.bz2
# tar xjf alsa-utils-1.0.21.tar.bz2
Procediamo con la configurazione, compilazione ed installazione dei Driver, un pacchetto alla volta:

alsa-driver-1.0.21

codice:
# cd alsa-driver-1.0.21/
# ./configure --with-cards=hda-intel
# make
# sudo make install
# cd ..
(nel mio caso, specifico l'opzione --with-cards=hda-intel poichè il mio computer dispone di una scheda audio Intel. Sostituendo "hda-intel" con "all" compilerete tutti i drivers per le schede audio supportate da ALSA).

alsa-lib-1.0.21a

codice:
# cd alsa-lib-1.0.21a/
# ./configure
# make
# sudo make install
# cd ..
alsa-utils-1.0.21

codice:
# cd alsa-utils-1.0.21/
# ./configure
# make
# sudo make install
# cd ..
Se quest'ultimo passaggio si ferma durante la fase di ./configure con questo errore:

codice:
...
checking for new_panel in -lpanelw... no
configure: error: panelw library not found
È necessario creare alcuni link simbolici e ripetere la procedura, niente paura:

codice:
# sudo ln -s /usr/lib/libpanelw.so.5.7 /usr/lib/libpanelw.so
# sudo ln -s /usr/lib/libformw.so.5.7 /usr/lib/libformw.so
# sudo ln -s /usr/lib/libmenuw.so.5.7 /usr/lib/libmenuw.so
# sudo ln -s /lib/libncursesw.so.5.7 /lib/libncursesw.so
A questo punto, se durante le fasi di configurazione, compilazione e installazione non sono occorsi problemi possiamo riavviare il sistema e controllare se i Driver più aggiornati siano stati installati correttamente:

codice:
# sudo alsactl -v
oppure

codice:
# cat /proc/asound/version
Per concludere, riconfigurare i driver con il comando:

codice:
# sudo alsaconf
Ripristiniamo la vecchia configurazione ALSA:

codice:
# cd alsa/
# sudo alsactl -f old-configuration.txt restore
Buon aggiornamento dei driver ALSA!

Approfondimenti sull'argomento:

https://help.ubuntu.com/community/HdaIntelSoundHowto
Upgrade Alsa (1.0.21) on Ubuntu Karmic Koala 9.10 | To a free world
[ubuntu] Acer aspire one can not record voice from mic - Page 3 - Ubuntu Forums

aggiornamento da 13-01-2010 a 02:05 di Master85

Categorie
Linux , Open Source , Tecnologia

Commenti

  1. L'avatar di salvoinzk
    Ciao Master85

    Complimenti per questa guida, davvero interessante.

    A me la scheda audio integrata (una Realtek ALC662) del mio laptop funziona (per l'uso normale che se ne può fare), però avrei una domanda da farti.

    Da un pò di tempo ho in mente di acquistare una "scheda audio" esterna per provare a registrare qualche brano, dopo una serie di ricerche su internet la mia scelta si sta dirigendo su una M-Audio Fast Track Ultra.
    Premetto che sul mio laptop non ho porte firewire ma solo USB, e questa scheda è una USB 2.

    La sua "sorella minore" la Fast Track Pro" USB 1 sotto linux funziona.
    Mentre questa scheda (la FT Ultra) non lavora sotto linux, qualcuno è riuscito ad usarla in input, ma dall'output non esce nessun suono.

    ecco il link riguardante questa cosa:

    [Audio] Supporto M Audio Fast Track Ultra USB


    (naturalmente la scheda viene vista e riconosciuta dal sistema operativo)

    Probabilmente il problema dipende dal driver ALSA.

    Ho trovato un forum in cui un utente ha contattato il team ALSA, riguardo questo problema e loro gli hanno risposto inviandogli una patch per il driver, però poi si dovrebbe ricompilare il kernel.
    Bene, io odio questo passaggio (ricompilare il kernel), ho fallito due volte un pò di tempo fa, e non ho proprio intenzione di ripetermi.

    Allora pensavo che forse questa stessa patch può essere usata per modificare il driver ALSA, e quindi poi compilare solo quest'ultimo, seguendo i passaggi di questa tua guida, e non tutto il kernel.

    Ecco il link dove ho trovato quest'ultimo aiuto:

    LinuxMusicians • View topic - M-Audio FastTrack Ultra and Jack/ALSA



    Secondo te può funzionare la mia idea?
    Ed eventualmente potresti anche spiegarmi i passaggi di come applicare la patch?


    Cordiali saluti
    Salvo


    PS: ecco la patch inviata dal team ALSA:


    --- linux/sound/usb/usbaudio.c
    +++ linux/sound/usb/usbaudio.c
    @@ -2235,6 +2235,10 @@ static void init_substream(struct snd_us
    case USB_ID(0x041e, 0x3f0a): /* E-Mu Tracker Pre */
    subs->ops.retire_sync = retire_playback_sync_urb_hs_emu;
    break;
    + case USB_ID(0x0763, 0x2080): /* M-Audio Fast Track Ultra */
    + subs->ops.prepare_sync = prepare_playback_sync_urb;
    + subs->ops.retire_sync = retire_playback_sync_urb;
    + break;
    }
    }
    snd_pcm_set_ops(as->pcm, stream,
    @@ -2786,6 +2790,7 @@ static int parse_audio_endpoints(struct
    break;
    case USB_ID(0x041e, 0x3020): /* Creative SB Audigy 2 NX */
    case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
    + case USB_ID(0x0763, 0x2080): /* M-Audio Fast Track Ultra */
    /* doesn't set the sample rate attribute, but supports it */
    fp->attributes |= EP_CS_ATTR_SAMPLE_RATE;
    break;
    --- linux/sound/usb/usbquirks.h
    +++ linux/sound/usb/usbquirks.h
    @@ -1864,6 +1864,33 @@
    }
    }
    },
    +{
    + USB_DEVICE_VENDOR_SPEC(0x0763, 0x2080),
    + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
    + /* .vendor_name = "M-Audio", */
    + /* .product_name = "Fast Track Ultra", */
    + .ifnum = QUIRK_ANY_INTERFACE,
    + .type = QUIRK_COMPOSITE,
    + .data = & (const struct snd_usb_audio_quirk[]) {
    + {
    + .ifnum = 0,
    + .type = QUIRK_IGNORE_INTERFACE
    + },
    + {
    + .ifnum = 1,
    + .type = QUIRK_AUDIO_STANDARD_INTERFACE
    + },
    + {
    + .ifnum = 2,
    + .type = QUIRK_AUDIO_STANDARD_INTERFACE
    + },
    + /* interface 3 (MIDI) is standard compliant */
    + {
    + .ifnum = -1
    + }
    + }
    + }
    +},

    /* Casio devices */
    {
    aggiornamento da 13-01-2010 a 00:25 di salvoinzk (aggiunta testo)
  2. L'avatar di Master85
    Ciao Salvoinzk,
    sinceramente non mi intendo di periferiche audio, comunque la patch che hai proposto è proprio per gli ALSA Driver. Ciò che devi fare è applicare la patch agli ultimi driver alsa disponibili e procedere con la compilazione e installazione. Ovviamente non è necessario compilare l'intero Kernel.

    A presto,
    Giuseppe

    P.S.
    Generalmente per discussioni di questo tipo è conveniente aprire un apposito thread nel forum specifico "GNU/Linux, Open Source".
  3. L'avatar di salvoinzk
    Ciao Giuseppe

    Prima di tutto ti ringrazio per la risposta,
    naturalmente proverò ad aprire un thread apposito, anche perchè mi sono accorto che l'argomento è abbastanza sentito, anzi ...... mi spiace non averci pensato prima.

    Volevo dirti solo una cosa, ho provato ad applicare la patch (cercando di seguire i passaggi in modo corretto) ma mi ha dato degli errori.

    Ma ad ogni modo, anche di questo, se ne potrà parlare, se vuoi, nel thread che proverò a creare.


    Grazie ancora
    Salvo
  4. L'avatar di Mmax13
    Grazie e complimenti per l'eccellente Guida.
    Oggi ho scaricato e compilato i driver ALSA in versione 1.0.23 su Xubuntu 9.10 Kernel 2.6.31-20-generic (x86) installato su notebook HP Compaq 6720S modello GR876ES.
    Confermo che procedura funziona senza modifiche e ora l'Audio è OK.