[>a2311.html>] [<a2309.html<] [^a2.html^]
Negli ultimi tempi, l'elaboratore viene visto sempre più spesso come una macchina multimediale tuttofare. In questo documento non c'è ancora una parte dedicata ai vari aspetti della «multimedialità» con GNU/Linux. Per il momento, qui si raccolgono solo alcune notizie utili per la gestione delle funzionalità audio con il sistema GNU/Linux.
In generale, per gestire l'«audio» in qualche modo non è strettamente necessario disporre di componenti speciali. Per esempio, il lettore CD-ROM può essere gestito in modo indipendente per ascoltare i CD musicali, eventualmente anche per estrarre le tracce audio (anche se poi mancherebbe la possibilità di ascoltare quanto estratto senza una scheda audio).
Per includere le funzionalità audio, attraverso dell'hardware apposito, è molto probabile che il kernel debba essere ricompilato. Tuttavia, il vero problema sta nel fatto che esiste una grande quantità di schede audio, per cui si deve scegliere attentamente l'hardware, e per ogni situazione si possono presentare degli imprevisti.
La maggior parte del codice scritto per la gestione delle schede audio è fatto per componenti un po' vecchi, realizzati per il bus ISA, e in generale non prevede le funzionalità Plug & Play. Questo comporta il problema di dover provvedere alla configurazione di tali schede attraverso altri sistemi operativi, oppure per mezzo dei programmi del pacchetto Isapnptools, a cui si accenna nel capitolo 25. |
La parte principale del kernel ha un limite nella sua dimensione massima. Dal momento che di solito la gestione dell'audio non dovrebbe essere una funzionalità vitale, è consigliabile utilizzare i moduli per queste cose.
Per prima cosa si deve abilitare la gestione dell'audio, in modo da permettere l'accesso alle altre voci di configurazione del kernel relative a questa gestione.
Sound card support (21.2.17) M
Nella maggior parte dei casi, la gestione della propria scheda audio rientra nel gruppo OSS (Open Sound System), di conseguenza dovrebbe essere necessario attivare la voce relativa. Successivamente si dovrà selezionare precisamente il tipo di scheda.
OSS sound modules (21.2.17) M
Se si intende realizzare un kernel modulare, come viene suggerito qui, occorre poi fare in modo che i moduli relativi vengano caricati opportunamente, soprattutto specificando i parametri necessari a raggiungere correttamente la scheda. A titolo di esempio, supponendo di disporre di una vecchia scheda SoundBlaster a 8 bit, predisposta per utilizzare l'indirizzo di I/O 22016, il livello di IRQ 5 e il canale DMA 1, si può caricare il modulo relativo con il comando seguente:
#
modprobe sb irq=5 io=0x220 dma=1
In questo modo vengono caricati automaticamente anche i moduli da cui dipende sb.o. Lo si può verificare con lsmod:
#
lsmod
Per verificare che la scheda sia stata riconosciuta correttamente, si può «interpellare» il file di dispositivo /dev/sndstat
, ovvero il file virtuale /proc/sound
:
#
cat /dev/sndstat
#
cat /proc/sound
OSS/Free:3.8s2++-971130 Load type: Driver loaded as a module Kernel: Linux dinkel.brot.dg 2.2.5 #4 SMP lun mag 10 15:02:40 CEST 1999 i586 ...
In seguito, si potrà sistemare meglio la cosa inserendo nel file /etc/conf.modules
le righe seguenti:
alias sound sb options sb irq=5 io=0x220 dma=1
I file di dispositivo relativi alle funzionalità audio sono descritti nel file /usr/src/linux/Documentation/devices.txt
, assieme a tutti gli altri. Il documento in questione è precisamente Linux allocated devices, mantenuto da Peter H. Anvin. Quello che segue è l'estratto significativo di questo file.
[...] 13 char PC speaker 0 = /dev/pcmixer Emulates /dev/mixer 1 = /dev/pcsp Emulates /dev/dsp (8-bit) 4 = /dev/pcaudio Emulates /dev/audio 5 = /dev/pcsp16 Emulates /dev/dsp (16-bit) [...] 14 char Sound card 0 = /dev/mixer Mixer control 1 = /dev/sequencer Audio sequencer 2 = /dev/midi00 First MIDI port 3 = /dev/dsp Digital audio 4 = /dev/audio Sun-compatible digital audio 6 = /dev/sndstat Sound card status information 8 = /dev/sequencer2 Sequencer -- alternate device 16 = /dev/mixer1 Second soundcard mixer control 17 = /dev/patmgr0 Sequencer patch manager 18 = /dev/midi01 Second MIDI port 19 = /dev/dsp1 Second soundcard digital audio 20 = /dev/audio1 Second soundcard Sun digital audio 33 = /dev/patmgr1 Sequencer patch manager 34 = /dev/midi02 Third MIDI port 50 = /dev/midi03 Fourth MIDI port [...]
A titolo di esempio, dovendo creare il dispositivo /dev/audio
, si potrebbe usare il comando seguente:
#
mknod /dev/audio c 14 4
Sono importanti anche i permessi di questi file. In generale dovrebbero appartenere all'utente root e al gruppo audio, oppure sys in sua mancanza. Inoltre, per cominciare potrebbero avere i permessi di lettura e scrittura per tutti gli utenti: 0666.
Volendo utilizzare il lettore CD-ROM per ascoltare dei CD audio normali, occorre regolare anche i permessi del dispositivo corrispondente al lettore stesso. In pratica, occorre prendersi cura del dispositivo a cui punta il collegamento simbolico /dev/cdrom
. Questo dispositivo, dal momento che è riferito a un'unità in sola lettura, potrebbe essere accessibile in lettura e scrittura a qualunque utente (a meno che si voglia controllare per qualche motivo). Per questo, di solito si attribuiscono i permessi 0666.
#
chmod 0666 /dev/cdrom
Quando l'elaboratore che dispone di scheda audio è collegato a una rete, potrebbero porsi dei problemi di sicurezza riguardo ai permessi per gli utenti comuni sui file di dispositivo di questa. Infatti, un utente che può accedere all'elaboratore, avrebbe la possibilità di attivare la scheda audio e ascoltare attraverso il microfono, ammesso che questo sia collegato. Nello stesso modo potrebbe attivare il canale della linea in ingresso, e così tutte le altre fonti disponibili. Per questa ragione, generalmente, questi file di dispositivo sono sprovvisti del permesso di lettura per gli utenti diversi dal proprietario e dal gruppo di questi file. |
La distribuzione Red Hat ha preparato un programma che facilita la configurazione dei moduli per la gestione delle funzionalità audio, ed eventualmente provvede anche a sistemare la configurazione Plug & Play delle schede ISA. Il programma è molto utile, soprattutto perché è in grado di predisporre il file /etc/conf.modules
correttamente, e inoltre, ammesso che la scansione Plug & Play si concluda senza incidenti, si ottiene il file di configurazione /etc/isapnp.conf
corretto (e completo) per la propria scheda audio ISA Plug & Play.
sndconfig [--noprobe] [--noautoconfig]
Se sndconfig viene utilizzato senza opzioni, si prepara immediatamente a eseguire una scansione dell'hardware Plug & Play. Eventualmente, questo può portare anche al blocco del sistema operativo; pertanto conviene utilizzare questa verifica solo quando l'elaboratore non sta svolgendo alcuna attività importante (meglio ancora se il livello di esecuzione è quello singolo). È molto importante che non venga avviata questa scansione se non c'è alcuna scheda ISA di tipo Plug & Play.
L'opzione --noprobe serve per evitare che venga eseguita una scansione Plug & Play. In questo modo si potrà selezionare in modo guidato il tipo di scheda audio e gli indirizzi necessari a gestirla.
L'opzione --noautoconfig serve per evitare che venga configurata automaticamente una scheda audio Plug & Play. In questo modo si lascia all'utilizzatore la scelta dei parametri di configurazione relativi.
La figura 240.1 mostra la maschera di sndconfig con la quale si indicano le caratteristiche di una vecchia scheda audio SoundBlaster (configurata attraverso ponticelli), in modo che venga generato il file /etc/conf.modules
più adatto (in questo caso, il file /etc/isapnp.conf
non serve perché non si tratta di una scheda Plug & Play).
.---------------| Card Settings |----------------. | | | Please adjust the settings below to match the | | dip switch settings on your sound card. | | | | I/O PORT IRQ DMA | | | | >0x220< 3 >1< | | 0x240 >5< | | 7 | | 9 | | | | .----. .--------. | | | Ok | | Cancel | | | `----' `--------' | | | | | `------------------------------------------------' Figura 240.1. Configurazione manuale di una vecchia scheda di cui si conosce la configurazione hardware. |
Per comprendere meglio il funzionamento di questo programma, e soprattutto per capire come ci si deve comportare con la configurazione del file /etc/isapnp.conf
, è opportuno dare un'occhiata al capitolo 25, in particolare per quello che riguarda il pacchetto Isapnptools.
1) Purtroppo, il fatto che una scheda audio sia «compatibile» con una qualche altra scheda più conosciuta, non è sufficiente per determinare che queste siano effettivamente equivalenti. In generale, a meno che si stia utilizzando una scheda audio «originale» che risulta individuata perfettamente nell'elenco proposto dal programma di configurazione del kernel, è indispensabile localizzare l'integrato principale e annotare il nome o la sigla che vi appare. Con questa informazione si dovranno leggere i file di documentazione che accompagnano i sorgenti del kernel alla ricerca di notizie precise al riguardo.
2) In seguito è il caso di ridurre i permessi, in modo di abilitare l'accesso alle funzionalità audio solo ad alcuni utenti.
3) sndconfig dovrebbe funzionare anche nelle distribuzioni diverse dalla Red Hat.