[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 334.   Introduzione alla gestione dell'audio e uso del lettore CD

Negli ultimi tempi, l'elaboratore viene visto sempre più spesso come una macchina multimediale tuttofare. In questo documento non c'è ancora una parte dedicata soddisfacentemente ai vari aspetti della «multimedialità» con GNU/Linux. Per il momento, qui si raccolgono soprattutto 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).(1)

334.1   Kernel per le funzionalità 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.(2)

La maggior parte del codice scritto per la gestione delle schede audio è fatto per componenti un po' vecchi, realizzati per il bus ISA, senza prevedere 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 38.

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 (29.2.16).

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.

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

La documentazione più aggiornata riferita alle schede audio è contenuta nel pacchetto dei sorgenti del kernel. Precisamente si tratta dei file contenuti nella directory /usr/src/linux/Documentation/sound/. È importante leggere i file riferiti alla propria scheda audio e in generale i file Introduction e README.*.

334.1.1   File di dispositivo

I file di dispositivo relativi alle funzionalità audio sono descritti nel file <file:///usr/src/linux/Documentation/devices.txt>, assieme a tutti gli altri. Il documento in questione è precisamente Linux allocated devices, curato 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: 06668.(3)

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 06668.

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ì anche tutte le altre fonti disponibili. Pertanto, generalmente, questi file di dispositivo sono sprovvisti del permesso di lettura per gli utenti diversi dal proprietario e dal gruppo di questi file.

334.1.2   # sndconfig

La distribuzione Red Hat ha preparato un programma che facilita la configurazione dei moduli per la gestione delle funzionalità audio, provvedendo eventualmente 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, 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.(4)

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. Così 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 334.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).

Figura 334.1. Configurazione manuale di una vecchia scheda di cui si conosce la configurazione hardware.

.---------------| 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 |         |
|        `----'               `--------'         |
|                                                |
|                                                |
`------------------------------------------------'

Per comprendere meglio il funzionamento di questo programma, ma soprattutto per capire come ci si deve comportare con la configurazione del file /etc/isapnp.conf, è opportuno dare un'occhiata al capitolo 38, in particolare per quello che riguarda il pacchetto Isapnptools.

334.2   Riferimenti

Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org

1) È bene non farsi illusioni sulle possibilità di un sistema GNU/Linux nei confronti della gestione dell'audio. Il comportamento può cambiare notevolmente da una scheda audio all'altra e non è detto che le cose migliorino quando la qualità dell'hardware è eccezionale. In generale è possibile ottenere i risultati più buoni con una scheda a 16 bit di quelle gestite dai driver «OSS» (esiste una classificazione apposita nei sorgenti del kernel con questa sigla).

2) 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.

3) In seguito è il caso di ridurre i permessi, in modo di abilitare l'accesso alle funzionalità audio solo ad alcuni utenti.

4) sndconfig dovrebbe funzionare anche nelle distribuzioni diverse dalla Red Hat.


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome introduzione_alla_gestione_dell_audio_e_uso_del_lettore_cd.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]