Questa sezione elenca le schede audio e le interfacce che sono attualmente supportate sotto Linux. Le informazioni qui presenti sono basate sull'ultimo kernel che, al momento della stesura, risulta essere il 2.2.4. Questo documento riguarda solo i driver sonori inclusi nella distribuzione del sorgente del kernel di Linux (si veda la sezione intitolata Driver sonori alternativi).
Per le ultime informazioni sulle schede audio supportate e sulle funzioni dei driver si consultino i file acclusi alla distribuzione del kernel di Linux, normalmente installati nella directory /usr/src/linux/Documentation/sound.
Le informazioni contenute in questo HOWTO sono valide per la implementazione di Linux su processori di tipo Intel.
Il driver sonoro dovrebbe funzionare anche con molte schede audio nella implementazione per processori Alpha. Comunque qualche scheda potrebbe far nascere conflitti delle porte I/O con altri dispositivi installati nei sistemi Alpha anche se funziona perfettamente sulle macchine i386, quindi non si può dire, in generale, se una data scheda funzionerà oppure no senza averla provata.
Al momento della stesura di questo documento il driver sonoro non è ancora funzionante nell'implementazione per PowerPC di Linux, ma dovrebbe esserlo in futuro.
Le schede audio possono essere configurate nel kernel nell'implementazione di Linux per MIPs, e qualche macchina MIPs ha degli slot EISA e/o dell'hardware sonoro interno. Mi è stato detto che il gruppo Linux-MIPs è interessato a una futura aggiunta del supporto sonoro.
Il kernel di Linux include un driver separato nelle sue versioni per Atari e Amiga, driver che implementa un sottoinsieme compatibile del driver sonoro usato per la piattaforma Intel utilizzando l'hardware per il suono interno a queste macchine.
La versione di Linux per SPARC attualmente supporta l'audio solo in alcuni modelli di workstation Sun. Mi è stato detto che l'hardware audio on-board funziona ma il dispositivo DSP esterno non è supportato poiché Sun non ha reso pubbliche le sue specifiche.
Le seguenti schede audio sono supportate dal driver sonoro del kernel di Linux. Qualche elemento di questa lista è un chip audio più che una scheda audio. La lista è incompleta poiché vi sono altre schede audio compatibili con queste che funzionano sotto Linux. Come se la confusione fosse poca, dei produttori cambiano periodicamente il design delle loro schede audio causando incompatibilità e continuano a venderle come modello originario.
Anche se molte schede audio sono dette ``SoundBlaster compatibili'', molto poche, attualmente, sono abbastanza compatibili da funzionare con il driver di Linux per la SoundBlaster. Queste schede normalmente funzionano meglio usando il driver MAD16 o MSS/WSS. Solo le vere schede SoundBlaster fatte dalla Creative Labs, che usano i chip custom della Creative (per esempio, la SoundBlaster16 Vibra) e le schede basate su MV Jazz16 e ESS688/1688 generalmente funzionano con il driver per SoundBlaster. Provare a usare una ``scheda audio a 16 bit compatibile con SoundBlaster Pro'' con il driver SoundBlaster si rivela, normalmente, una perdita di tempo.
Il kernel di Linux supporta la porta SCSI di cui sono fornite alcune schede audio (per esempio ProAudioSpectrum 16) e l'interfaccia proprietaria di qualche drive CD-ROM (per esempio SoundBlaster Pro). Date un'occhiata ai Linux SCSI HOWTO e CDROM HOWTO per maggiori informazioni.
Assieme ai kernel 2.2 è anche distribuito un driver per le porte joystick presenti su alcune schede audio.
Si noti che i driver sonoro, SCSI, CD-ROM e joystick sono completamente indipendenti l'uno dall'altro.
Il supporto per l'audio del kernel di Linux è stato originariamente scritto da Hannu Savolainen. Hannu ha poi sviluppato Open Sound System, una suite commerciale di driver audio venduta da 4Front Technologies, che è disponibile su diversi sistemi Unix. La Red Hat Software ha quindi sponsorizzato Alan Cox con l'obiettivo di potenziare i driver audio rendendoli completamente modulari. Diverse altre persone hanno poi dato il loro contributo con correzioni di errori e hanno sviluppato driver aggiuntivi per le nuove schede audio. Questi driver modificati sono stati inclusi nella distribuzione Red Hat dalla versione 5.0 alla 5.2. Le modifiche sono quindi state integrate nella distribuzione standard del kernel dalla versione 2.0. Alan Cox è il curatore di driver audio della distribuzione standard del kernel, mentre Hannu continua periodicamente a fornire codice preso dal driver commerciale.
Open Sound System, il driver commerciale della 4Front Technologies tende ad essere più facile da configurare e offre supporto per un maggior numero di schede audio, particolarmente per quelle nuove. È anche compatibile con le applicazioni scritte per il driver audio incluso nella distribuzione standard del kernel. Lo svantaggio è che dovrete pagare per averlo e comunque non avrete il codice sorgente. Potete scaricare una copia di prova del prodotto prima di decidere se comprarlo o no. Per maggiori informazioni si guardi sulla pagina web della 4Front Technologies: http://www.opensound.com.
Jaroslav Kysela e altri hanno cominciato a scrivere un driver audio alternativo per la scheda audio Gravi UltraSound. Il progetto è stato rinominato in Advanced Linux Sound Architecture (ALSA) ed è risultato in un sistema di driver audio che gli autori credono essere una buona alternativa per i driver audio del kernel. I driver ALSA offrono supporto per molte schede audio diffuse, sono full duplex, completamente modulari e compatibili con l'architettura audio del kernel. Il sito principale del progetto ALSA è http://www.alsa-project.org. È anche disponibile un "Alsa-sound-mini-HOWTO" che tratta della compilazione e dell'installazione di questi driver.
Markus Mummert ( mum@mmk.e-technik.tu-muenchen.de) ha scritto un pacchetto driver per le schede audio Turtle Beach MultiSound (classic), Tahiti e Monterey. La documentazione asserisce:
``È progettato per la registrazione/riproduzione su hard disk di alta qualità, senza perdita di sincronizzazione nemmeno su un sistema occupato. Altre funzioni, come Wave synthesis, MIDI ed elaborazione digitale dei segnali (DSP), non possono essere usate. Altresì la registrazione e la riproduzione contemporanee non sono possibili. In questo momento sostituisce VoxWare ed è stato testato in diverse versioni del kernel dalla 1.0.9 alla 1.2.1. Oltretutto è installabile sui sistemi UN*X SysV386R3.2.''
Lo si può trovare su http://www.cs.colorado.edu/~mccreary/tbeach.
Kim Burgaard ( burgaard@daimi.aau.dk) ha scritto un driver e dei programmi di utilità per l'interfaccia MIDI Roland MPU-401. La voce che lo riguarda sulla Linux Software Map ne dà questa descrizione:
``Un driver per le interfacce MIDI compatibili con Roland MPU-401 (incluse Roland SCC-1 e RAP-10/ATW-10). Include una serie di utilità tra le quali un player di file Standard MIDI ed un registratore.
Molte migliorie sono state apportate dalla versione 0.11a. Tra le altre cose il driver adesso si avvale di regole per la condivisione degli IRQ e si attiene alla nuova interfaccia del kernel per i moduli. La funzione di metronomo, la possibilità di sincronizzare ad es. la grafica su una struttura di battute senza perdere in precisione, una interfaccia avanzata per replay/registrazione/overdub e molto, molto ancora.''
Lo si può trovare su ftp://metalab.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz.
Altro utilizzo di una scheda audio per Linux è quello del modem per radioamatori in packet radio. I recenti kernel 2.1.x includono un driver che funziona con schede audio compatibili SoundBlaster e Windows Sound System per implementare i protocolli packet 1200 bps AFSK e 9600 bps FSK. Date un'occhiata al Linux AX25 HOWTO per altri dettagli (fra parentesi sono radioamatore anche io -- il mio callsign è VE3ICH).
È disponibile un altro driver sonoro che non richiede hardware aggiuntivo; infatti usa lo speaker del PC. È sicuramente più compatibile a livello software con il driver della scheda audio ma, come è normale aspettarsi, fornisce un output di qualità molto minore e occupa la CPU per un tempo molto maggiore. I risultati sono di vario tipo, poiché dipendono dalle caratteristiche di ogni singolo speaker. Per maggiori informazioni date un'occhiata alla documentazione fornita assieme alla distribuzione.
La versione attuale è la 1.1 e la si trova su ftp://ftp.informatik.hu-berlin.de/pub/os/linux/hu-sound/
Altra opzione è quella di costruire un convertitore digitale-analogico utilizzando la porta parallela della stampante e qualche componente aggiuntivo. Ciò porta a un output di qualità superiore rispetto allo speaker del PC, ma genera ancora un pesante utilizzo di CPU. Il pacchetto del driver per il PC speaker prevede questa opzione e include le istruzioni per costruire l'hardware necessario.