Etnablog.altervista.org :)

Visitatore: 1311415
Welcome ospite
Menu di accessibilità:
Dimensione carattere:

Home > Linux > Il riconoscimento dell'hardware, il kernel
Contenuto della pagina:
21 Maggio 2010

Il riconoscimento dell'hardware, il kernel

Il kernel è il cuore del sistema operativo GNU Linux, il "programma più importante". Quando il sistema viene acceso ("fase di boot"), questo viene caricato nella memoria RAM del vostro PC. E' il Kernel che interagisce con l'hardware del vostro PC, mediante i drivers, che sono forniti sotto forma di appositi "moduli del kernel", detti LKM ("Loadable Kernel Modules") o semplicemente KMOD ("Kernel Modules").

Stampante, tastiera, mouse, hard-disk, tutto ciò che collegate al vostro pc sono i "devices" che, per funzionare, necessitano che l'apposito "device driver" del kernel venga caricato.
I LKM si trovano nella cartella /lib/modules e sono files con estensione ".ko" (a partire dal kernel 2.6). Il comando "uname -r" mostra la versione del kernel attualmente in vostro uso.

I moduli possono anche essere non a codice aperto ("proprietari"), e come tali, essendo non noto il loro codice, possono potenzialmente minare la sicurezza del vostro sistema.

Grazie al comando lsmod potete vedere quali moduli sono stati caricati dal kernel ed il loro stato mentre invece quelli che in generale sono disponibili (ovvero proprio i files con estensione .ko ("Kernel object"), possono essere visualizzati con modprobe -l o semplicemente navigando nella cartella /lib/modules/`uname -r`

Per quello che riguarda l'audio, è "ALSA (Advanced Linux Sound Architecture) il componente del Kernel linux che fornisce oggi il device driver per le schede audio rimpiazzando il "vecchio" OSS. Come mai questo cambiamento? Cosa offriva ALSA che OSS non aveva? Andiamo un pò indietro nel tempo..

La storia dell'audio in linux cominciò con i VoxWare drivers, realizzati da Hannu Savolainen. Quando lo stesso autore fu assunto dalla 4Front, sulla base dei VoxWare, nel 1992, realizzò OSS (Open Sound System).

Di OSS vi era una versione Free (che venne aggiunta al kernel 2.24.x) ed una commerciale (a pagamento..), la cui differenza consisteva nelle utility di configurazione e riconoscimento dell'hardware.

Dopo alcuni anni, la mancanza in OSS di alcune importanti funzioni, tipo il mixing di piu fonti (ma non solo..), convinse Jaroslav Kysela (che era stufo dello scarso supporto di OSS per la sua scheda audio Gravis Ultrasound) a lavorare ad un nuovo progetto chiamato ALSA, che, dopo un periodo di testing, venne introdotto nel kernel 2.6 al posto di OSS per la fornitura del "device driver" per la schede audio.

ALSA era come concezione completamente diverso da OSS.. Ricordo che in OSS era possibile ascoltare qualcosa semplicemente facendo su shell "cat example.wav > /dev/dsp".
In OSS l'audio era insomma concepito come un file, addirittura vi si accedeva con chiamate tipo open(),read(),write(), come secondo quel vecchio detto che diceva che "in linux tutto è un file".. Per essere più chiari, l'accesso alle periferiche in generale ("devices") avveniva come se si stesse accedendo ad un file contenuto in una directory /dev.

Con ALSA questo non è più possibile e i "devices" sono oggetti di più alto livello. Si accede ai PCM devices mediante interfacce tipo "hw:0" o "plughw:0" (se ne riparlerà dopo).

ALSA, rispetto ad OSS, era capace di miscelare insieme più flussi audio contemporaneamente e di gestire più schede audio contemporaneamente.
L'utilizzo di OSS fu così dichiarato "deprecato" in linux, ma OSS non è morto, ed è attualmente usato da versioni di Unix, BSD, Solaris e in realtà continua a migliorare.. Non è piu quello di una volta. C'è gente che, tutt'oggi, sceglie di installare su Linux stesso OSS4 rispetto ad ALSA, ritenendo che abbia un supporto migliore per l'hardware, un sound mixer di (addirittura..) maggiore qualità (OSSv3 non poteva riprodurre più suoni in una volta, OSSv4 invece si), inoltre non è linux specifico come ALSA. Le opinioni sono contrastanti al riguardo, ma l'ipotesi di disinstallare ALSA a favore di OSS4 rappresenta comunque una eventualità da prendere in considerazione, specie in presenza di seri problemi di supporto dell'hardware del vostro pc da parte di ALSA..

In caso di problemi con il vostro audio, prima di mollare del tutto ALSA, tenete in considerazione che:
- Diversi problemi di ALSA possono essere risolti mediante l'installazione di qualche apposita "ALSA plugin" e/o la personalizzazione ad hoc del suo relativo file di configurazione. Questo è soprattutto valido per vecchie schede audio.
- Altri problemi possono essere causati dalla presenza di un eventuale soundserver (come Pulseaudio) che si trova interposto tra voi ed ALSA e dalla buona configurazione di questo. I Soundservers sono sempre più comuni oggi nelle distribuzioni linux ed in generale si occupano di gestire il soundmixing al posto di ALSA, facendogli arrivare il segnale già bello e mixato pronto da riprodurre.. E' pertanto FONDAMENTALE che voi sappiate gestire il vostro soundserver (ne riparleremo dopo).

Scendiamo più nel dettaglio, cominciando più precisamente ad addentrarci in ALSA.

ALSA (Advanced Linux Sound Architecture) è il progetto che fornisce oggi al sistema linux la "comunicazione" con la scheda audio per l'audio e il MIDI. E' costituito da:
- Gli indispensabili driver integrati nel kernel (si parla di "ALSA sound drivers" infatti, sono moduli del kernel che di solito cominciano con prefissi tipo "snd-" o "snd_").
- Una serie di librerie API (le alsa-lib) che forniscono ai programmatori i "comandi" per riuscire ad usare gli ALSA drivers nel kernel.

Preparatevi a fare un piccolo tuffo nei meandri del kernel linux: diciamo che ogni scheda audio (o meglio, il suo "chipset") ha il suo modulo ALSA specifico nel kernel di Linux (ad esempio quello per la scheda sound blaster 16 bit è il "snd-sb16", tanto per dirne uno).
Volete sapere se i moduli relativi alla scheda audio sono stati caricati regolarmente? Fate lsmod | grep -i snd
Nel pc che sto usando adesso, l'output di quel comando è piuttosto lungo (tanti moduli..), cito solo le prime righe:

snd_emu10k1_synth 5156 0
snd_emux_synth 31695 1 snd_emu10k1_synth
snd_seq_virmidi 4213 1 snd_emux_synth
snd_usb_audio 75765 2
snd_seq_midi_emul 5492 1 snd_emux_synth
...[continua]

Cerchia mo di capirci qualcosa: I moduli del kernel sono salvati in hard disk come files (di solito cartella /lib/modules) e quando sono aggiunti nel kernel vengono copiati in memoria come parte del kernel (potete fare questo usando i comandi insmod e modprobe).

lsmod è un comando che mostra quali moduli sono caricati nel kernel (come dire che mostra in una maniera "carina" i files contenuti in /proc/modules). L'output di lsmod è una lista di moduli del kernel organizzata in 3 colonne:
- La prima ("module") è il nome del modulo.
- La seconda ("size") è la quantità di memoria che usa (ricordatevi che la cartella /proc in realtà è solo virtuale).
- La terza ("Used by") è il numero di quanti altri moduli del kernel stanno usando quel modulo e i nomi di questi, separati, se piu di uno, da virgole.

Per ciascuno di quei moduli che vedete in lista, potete ottenere ulteriori informazioni col comando modinfo seguito dal nome del modulo.

Tenete sempre a mente che al giorno d'oggi le schede audio possono essere oltre che per porta pci, anche per porta USB. La cosa non è da trascurare.. Rack e pedaliere di effetti per chitarra elettrica o basso, mixer digitali multi-ingresso, hanno sempre piu spesso la possibilità di essere usate per porta USB, e vengono a tutti gli effetti visti dal vostro pc come "schede audio USB"..

La vostra scheda audio è per porta pci? Provate a cercarla nella lista delle periferiche pci con: lspci | grep -i audio
Da me questo comando mostra:

$ lspci | grep -i audio
05:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)

Maggiori infomazioni si ottengono facendo anche: lspci -v o meglio ancora lspci -vv
Fra le varie informazioni che potete ottenere in più, vi è la possibilità di osservare la "latenza" che i devices pci hanno (valore tra 0 e 248). Se il sonoro che esce dalle vostre casse è ricco di "click" e "pop", potete provare ad impostare il "latency setting" della vostra scheda video verso un valore piu basso (se è scheda AGP, attenzionate il PCI-AGP bridge, se la scheda video è PCI-E allora questo discorso non vale..), a vantaggio di quello audio, che alzerete un pò (gli darete così una "priorità più alta").. Badate bene che si sta parlando di "PCI latency", che non ha nulla a che vedere con la "latenza" dell'audio, che è cosa del tutto diversa:
- La PCI latency è il tempo di "uso esclusivo" del bus PCI di cui un device può disporre prima di consegnarlo ad un altro device.
- La latenza dell'audio è il tempo di ritardo che impiega l'audio dall'input all'output e dovete modificare il "buffer size" dell'audio driver se volete ottenere un vantaggio in tal senso. Il buffer size va "bilanciato" tra un valore più alto (che aumenta il "lag", la latenza), e un valore più basso, che è più snello e reattivo. Se il suono risulta "metallico" e pieno di "crack" forse il buffer è troppo basso, e va impostato ad un valore più alto.
Faccio un esempio. Dal mio lspci ottengo che la mia scheda audio funziona al bus 05, device 06, funzione 0 (05:06.0) ed ha latenza 32:
[...]

05:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)
Subsystem: Creative Labs Device 8040
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- Latency: 32 (500ns min, 5000ns max)
Interrupt: pin A routed to IRQ 21
Region 0: I/O ports at e480 [size=32]
Capabilities:
Kernel driver in use: EMU10K1_Audigy
Kernel modules: snd-emu10k1

[...]

Voglio aumentare la sua PCI latency, quindi faccio:

$ sudo setpci -s 05:06.0 LATENCY_TIMER=40

40 è un numero esadecimale (in realtà è 64, quindi facendo così porterò la Latency a 64). Se volessi impostare il massimo, anzichè 40 dovrei scrivere "ff", che specifica 256 (ma viene arrotondato giu a 248, che è il massimo).
Generalmente 32 (esadecimale "20") è il valore di default un pò per tutte le periferiche e va bene.. Ma molti suggeriscono di impostare un valore di 128 (esadecimale "80") per la scheda video, al fine di ottenere migliori prestazioni "video".
Penso che questo possa bastare riguardo il PCI, semplicemente tenete presente il discorso "latenza PCI", qualora vi venisse in mente di "overcloccare" il bus e doveste cominciare a sentire suoni sgradevoli..

Passiamo all'USB. La vostra scheda audio è su porta USB e volete vedere se viene correttamente rilevata? (tipo un mixer digitale USB) Fate: lsusb
Nel mio pc, lsusb mostra:

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 08bb:2904 Texas Instruments Japan PCM2904 Audio Codec
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0c45:607c Microdia CCD PC Camera (PC390A)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

In pratica rileva la mia pedaliera d'effetti per basso, collegata con porta usb (PCM 2904 è il chip interno che monta, l'interfaccia USB).

Le ALSA library dispongono di diversi file di configurazione. Fra questi ricordiamo:

* /usr/share/alsa/alsa.conf
* /etc/asound.conf
* ~/.asoundrc
* /usr/share/alsa/{cards,pcm}/*.conf


Non è detto che tali file siano tutti presenti nel linux che voi usate. Nella mia Ubuntu ad esempio etc/asound.conf e persino ~/.asoundrc mancano del tutto.. E' che sarebbero i file di configurazione delle "ALSA plugins".

Il principale, quello di default, è alsa.conf. Si tratta di un file installato da libasound2 (che fornisce funzioni ad ALSA). Il fatto che si trovi in /usr/share e non in /etc, dove spesso si trovano i file di configurazione in linux, deve farvi pensare sul fatto che non dovreste modificare questo file, che tuttavia già da se, di solito è adeguato per la maggior parte delle installazioni. Sia alsa-utils che alsa-plugins "cercano" in questo file di configurazione (consideratelo un "file di informazioni"), che è quindi definibile come "condiviso" ("to share") fra piu pacchetti.

Una volta c'era il programma alsaconf per fare modifiche ad alsa.conf. Chi lo usava, rischiava a volte di combinare un casino, che poteva spesso risolversi eliminando la cartella /usr/share/alsa/, reinstallando le libasound2 ed eventualmente rieseguendo alsaconf. In seguito bisognava riavviare il sonoro con "sudo /etc/init.d/alsa-utils restart". Oggi alsaconf è stato rimosso dalle alsa-utils. Rendeva la vita piu facile a chi aveva schede audio isa o comunque non plug & play, ma oggi il riconoscimento dell'hardware funziona diversamente che in passato..

..Tuttavia, qualora doveste avere problemi nel riconoscimento hardware della vostra scheda audio, tenete in considerazione l'ipotesi di reinstallare il buon vecchio alsaconf (ipotesi estrema?..).

In generale, le possibilità di ALSA possono essere estese dalle "ALSA plugins", che permettono di disporre di funzionalità come il resampling, channel routing, sample format conversion e software controllo volume e altre. Ma in realtà se la vostra scheda audio sembra funzionare bene nel vostro sistema linux, difficilmente ve ne potrà mai importare qualcosa delle ALSA plugin..

Le ALSA plugins, per esercitare la loro funzione su ALSA, hanno bisogno dei loro files di configurazione tipo /etc/asound.conf e ~/.asoundrc. Modificando tali files di configurazione si possono dare ad ALSA direttive personalizzate a vostro piacimento, o addirittura risolvere talora dei veri e propri problemi di compatibilità hardware specifici per determinate schede audio. In questo senso, le direttive da impartire sono precise, non inventate da voi, ma vengono reperite nella documentazione di ALSA, forum o wiky, e vanno prese e copiate "così come sono".

Se date un'occhiata all'interno di alsa.conf, che in fin dei conti non è altro che un file di testo, potreste notare che è lui stesso il fulcro, che richiama gli altri files di configurazione, tra cui /etc/asound.conf e ~/.asoundrc (..ed altri, date un'occhiata in alsa.conf per scoprire quali sono).

Le sintassi usate in questi files di configurazione sono complesse e non trattabili qui, vi basterà, giusto per comprendere un minimo, che "pcm" fa riferimento a "playback", "ctl" a "control". Non credo vi serva sapere altro al riguardo, se non che grazie a questo il server audio Pulseaudio può funzionare.

Come detto prima, per vedere che modulo del kernel riguardante l'audio è caricato, fate lsmod | grep -i snd

lsmod è un comando shell che mostra in modo formattato la lista dei moduli del kernel attualmente caricati, la stessa che in fin dei conti è ottenibile eseguendo cat /proc/modules

Fate "cat /proc/asound/cards" per verificare le schede audio installate. Possono anche essere più di una, vengono numerate (0, 1, 2... ecc..). Nel mio portatile, il contenuto di /proc/asound/cards è:

0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xf8400000 irq 22

Il che indicherebbe che ho una sola scheda audio, che è una "Intel" e lui la chiama "0". Ma una scheda audio è una realtà complessa.. Ci sono prese in ingresso (viste come devices in ingresso o "cattura"), prese in uscita (casse? Uscita Line-out?), e poi il midi e la sua sincronizzazione.. Alsa fa distinzione di tutti questi elementi vedendoli come devices diversi.

Grazie al comando "cat /proc/asound/devices" potete vedere, per ogni scheda audio, che devices vengono riconosciuti:
- acquisizione, viste come "capture",
- riproduzione viste come "playback",
- "control" per regolarne il volume, il "mixer" o settarne il muto. Vi sono schede audio, come la RME 9652 (una scheda audio professionale), che non hanno questo "mixer"
- "timer", che serve per il "timing", la sincronizzazione
- "sequencer", che serve per il midi (la "sincronizzazione" può essere importante per il corretto funzionamento del midi..)

Nel pc che sto usando adesso, il comando "cat /proc/asound/devices" mi restituisce:

2: : timer
3: : sequencer
4: [ 0- 6]: digital audio playback
5: [ 0- 6]: digital audio capture
6: [ 0- 1]: digital audio playback
7: [ 0- 0]: digital audio playback
8: [ 0- 0]: digital audio capture
9: [ 0- 1]: hardware dependent
10: [ 0- 0]: hardware dependent
11: [ 0] : control

I numeri dentro alle parentesi quadre ("[x- y]") sono indici relativi alla scheda audio (x) e del device (y) in quella scheda audio. Notate lo "0", è il numero cui lui associa l'unica scheda audio che ho nel portatile. La 0,0 e la 0,6 si capisce che sono duplex (riproduzione e cattura).

La mia scheda audio è stata "scomposta" da ALSA in multipli devices nelle sue componenti di playback, capture, control, timer, sequencer.
Nel mio caso, guardando l'output di cui sopra, si evince che ho 1 canale di "controllo" (per controllo volume, mic gain e altri settaggi), 3 PCM playback devices, 2 PCM capture devices, un MIDI sequencer, un timer, le "hardware dependent". Cosa sono queste "hardware dependent"? Potreste non avere voi, in pratica il modulo kernel snd-hda-intel (il "driver" della mia scheda audio) è specifico per il "chip" audio. Ma ogni produttore che costruisce una scheda audio mette magari nel suo prodotto, oltre al chip, qualcosa di diverso.. Considerate queste hardware dependent un "workaround", ovvero uno stratagemma, per risolvere i bug derivanti da queste differenze (abilitare l'amplificatore per fare funzionare correttamente lo speaker del mio pc portatile, settare correttamente il volume delle cuffie, disabilitare lo speaker quando si inseriscono le cuffie ecc.).

Per testare la riproduzione della mia scheda audio (serve un file PCM con estensione .wav) potrò eseguire il comando:

aplay -D plughw:0,0 file.wav

Tenete presente che /proc/asound/ e il suo contenuto esiste se il modulo nel kernel "snd" funziona correttamente. Può darsi che vi stiate domandando cosa sia questa cartella "proc".. beh attenzione perchè in realtà, sebbene voi la vediate come una cartella presente, come qualsiasi altra, nel vostro hard disk, in realtà è un vero e proprio filesystem montato su quella cartella, che di fatto nel vostro HD non c'è. Diciamo che, mediante opportuni comandi presenti in questa cartella "virtuale", riusciamo ad ottenere delle informazioni direttamente dal kernel. "/proc" e anche la cartella "/sys" hanno dimensione zero e di questo potete rendervi conto semplicemente eseguendo, da shell, il comando "ls -l".

A grandi linee come gestisce l'audio il nostro pc? Considerate l'impulso audio nella sua forma più generica (la tipica "onda"), questa nel nostro pc viaggia, per essere riprodotta ("playback"), tradotta in impulsi codificati in un formato detto "raw pcm" (pulse code modulation).

Il MIDI (Musical Instrument Digital Interface) invece è un discorso a parte e nulla a che vedere con il PCM. In sostanza la musica MIDI è prodotta da un "sequencer" (di solito un editor software, ad esempio il famoso programma "Cubase") sottoforma di "codici" standard (lo standard midi, per l'appunto) che definiscono segnali tipo "controllo voltaggio" e "on/off", che vengono letti, interpretati e riprodotti da un synthesizer (ovvero uno strumento capace di produrre suoni elettronicamente, che può essere hardware ma anche software).

Risultando il brano scomposto in codici, in ogni sua parte, i file MIDI sono leggerissimi ed estremamente maneggiabili (sono usatissimi nei karaoke, o dai musicisti per motivi di studio, in quanto gli strumenti possono essere esclusi uno ad uno, la tonalità del brano può essere modificata senza variarne il tempo o viceversa, o si può perfino ricavare immediatamente, mediante appositi programmi, delle tablature complete). Per conseguenza, uno stesso file midi, riprodotto da schede audio diverse o persino da software diversi (variando il soundfont) può sentirsi diversamente, in meglio o in peggio. Programma molto usato in Linux, per riprodurre file MIDI, è Timidity, che è un synthesizer software. Possiamo anche impostare in Timidity soundfonts .SF2 diversi (esempi Unison.SF2, di circa 28 megabytes, o PC51f.sf2, di circa 60 M), per ottenere sonorità migliori.

OSS accedeva al midi attraverso /dev/midi*
ALSA, come detto sopra, ha un accesso all'hardware audio completamente diverso. La lista delle periferiche MIDI è visibile con " aplaymidi -l ".
"aconnect" è l'utility che permette la connessione con le porte dell'ALSA sequencer.
aconnect -i serve a vedere le porte in ingresso, aconnect -o quelle in uscita ("output"), aconnect -l mostra lo stato della connessione.

L'ALSA sound driver è il nostro obiettivo.. E' con lui che, in un modo o nell'altro, dobbiamo cercare di comunicare dato che sarà grazie a lui che comunicheremo con la scheda audio del PC (che in questo modo riprodurrà il suono..).

Ma in che modo comunicare con L'ALSA driver (e quindi accedere alla scheda audio)? Vi sono diversi sistemi ("livelli di astrazione"):
- Usando le API in alsa-lib (talora dette libasound), che sono le librerie create dagli stessi sviluppatori di ALSA
- Usando OSS (OSS era usato prima di ALSA in linux, ma vi sono molti programmi che ancora lo usano)
- Usando un soundserver (..e adottandone le sue API), tipo PulseAudio, EsD, Jack ecc..

Sebbene OSS sia stato dichiarato "deprecato", vi sono ancora molti programmi/giochi che ancora lo usano. Audacity, Slab, MpegTV, XMMS, MPlayer, Xine, KMix, Skype, Doom, Quake sono solo alcune applicazioni che usano o possono usare ALSA (alcune applicazioni oggi danno addirittura la possibilità di scegliere, per il loro stesso funzionamento, tra OSS, ALSA o qualche Soundserver). Ebbene per non perdere la compatibilità con le applicazioni che non usano ALSA ma usano OSS, ALSA può usare due stratagemmi:

- Uno funziona a livello del kernel, installando degli appositi moduli (snd-pcm-oss, snd-mixer-oss, snd-seq-oss, rispettivamente per emulare le devices PCM, mixer, sequencer).

- l'altro è lo script aoss (si tratta di un "OSS wrapper") contenuto nel pacchetto alsa-oss (che contiene anche la libreria libaoss, libreria di compatibilità ALSA OSS). Se ad esempio state usando il lettore multimediale xmms (impostato per funzionare con output OSS mediante apposito plugin) basta fare da shell "aoss xmms" per farlo funzionare con ALSA.

Il primo sistema è semplice da implementare, ma non fa al caso nostro se ci interessa "mixare" l'audio, il secondo ha pure una sua piccola magagna, cioè che dà qualche problema se il programma OSS accede all'audio con fopen(), ma sembra che siano poche le applicazioni OSS a farne uso.

Nonostante quanto detto, c'è ancora chi preferisce programmare usando OSS, per varie ragioni, tra cui la maggiore facilità d'uso delle API e/o la loro migliore documentazione. C'è anche da dire che ALSA c'è solo in linux, ed è in questo senso più "ristretto", mentre OSS c'è anche in altri sistemi *nix, e chi lo usa si appoggia al fatto che tanto OSS su ALSA, in fin dei conti, funziona lo stesso.. ..In un modo o nell'altro.

Ma che strumenti, in generale, ci fornisce ALSA stessa per gestire i suoi ALSA drivers nel kernel? Sono diversi, e contenuti in diversi pacchetti (ALSA packages) fra i quali ricordiamo:

* Alsa-lib: detto anche "libasound". Fornisce librerie che permettono la comunicazione ("livello di astrazione") con l'ALSA driver che fa parte del kernel, le cui interfacce si trovano nella directory /dev. Diciamo che i programmi potrebbero comunicare direttamente con i driver nel kernel, ma le alsa-lib permettono di farlo in modo molto più semplice.
* Alsa-oss: contiene il wrapper aoss.
* Alsa-tools: contiene in se altri piccoli programmi, alcuni specifici per determinate schede audio.
* Alsa-utils: contiene un insieme di utilities varie, tipo aplay (un semplice player), alsamixer (un mixer, con un interfaccia "tipo testo"), amixer (è un mixer per controllare ALSA da "riga di comando"), aplaymidi (per riprodurre files midi) ed altri.
* Alsa-plugins: è un insieme di "plugins". Per esempio alsa-plugins-pulseaudio fa da anello di collegamento tra ALSA e PulseAudio, Alsa-plugins-jack è anello di collegamento tra ALSA e JACK.


Torna al menù principale di "Audio e Linux"

Descrizioni usate nelle foto: 
Postato da: Etnablog in Linux alle 22:59

Permalink | Commenti(1)
Inserisci commento

Commenti:

Ciao, vorrei chiederti un ulteriore dettaglio.
Quando avvio Jack, l'audio del browser o del riproduttore audio predefinito si interrompono
Come posso fare per "ascoltarli" attraverso jack?
Grazie

 

Postato da: Andrea il 03 Marzo 2011 alle 23:35

Solo gli utenti registrati possono lasciare commenti
*1 user online
Caricamento pagina: 0.02 s