|
Prima di iniziare, dovresti conoscere il modello della scheda che possiedi, il chip che utilizza, e se è una scheda PCI o ISA. FreeBSD supporta una grande varietà di schede sia PCI che ISA. Se non vedi la tua scheda nella lista seguente, controlla la pagina man di pcm(4). Questa non è una lista completa; tuttavia, comprende le schede più comuni.
Crystal 4237, 4236, 4232, 4231
Yamaha OPL-SAx
OPTi931
Ensoniq AudioPCI 1370/1371
ESS Solo-1/1E
NeoMagic 256AV/ZX
SoundBlaster® Pro, 16, 32, AWE64, AWE128, Live
Creative ViBRA16
Advance Asound 100, 110, e Logic ALS120
ES 1868, 1869, 1879, 1888
Gravis UltraSound
Aureal Vortex 1 o 2
Per usare il tuo dispositivo audio, dovrai caricare i driver corretti. Il caricamento del driver del dispositivo può essere fatto in due modi. Il metodo più semplice consiste semplicemente nel caricare un modulo nel kernel per la tua scheda audio con kldload(8) che può essere fatto sia da linea di comando:
# kldload snd_emu10k1.ko
sia aggiungendo la riga appropriata al file /boot/defaults/loader.conf come questa:
snd_emu10k1_load="YES"
Questi esempi sono per la scheda audio Creative SoundBlaster Live!. Altri moduli sonori disponibili sono elencati in /boot/loader.conf. Se hai dei dubbi su quale driver usare, potresti provare a caricare snd_driver, un metadriver che carica i driver più comuni in una sola volta, velocizzando la ricerca per il driver corretto.
Alternativamente, puoi compilare staticamente il supporto per la tua scheda audio nel kernel. Le sezioni seguenti forniscono le informazioni di cui hai bisogno per aggiungere il supporto al tuo hardware con questo metodo. Per informazioni aggiuntive su come ricompilare il kernel, guarda il Capitolo 8.
Se hai una delle suddette schede, dovrai aggiungere:
device pcm
al file di configurazione del kernel. Se hai una scheda ISA PnP, dovrai aggiungere inoltre:
device sbc
Per una scheda ISA non PnP, aggiungi:
device pcm device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15
al file di configurazione del kernel. Le impostazioni appena viste sono quelle di default. Potresti aver bisogno di cambiare IRQ o altre impostazioni per identificare la tua scheda. Guarda la pagina man di sbc(4) per ulteriori informazioni.
Nota: La Sound Blaster Live non è supportata sotto FreeBSD 4.0 senza l'uso di una patch, di cui questa sezione non si occuperà. È consigliato l'aggiornamento all'ultima -STABLE prima di provare ad usare questa scheda.
Per una scheda ISA PnP, dovrai aggiungere:
device pcm device gusc
al file di configurazione del kernel. Se hai una scheda ISA non PnP, dovrai aggiungere:
device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13
al file di configurazione del kernel. Potresti aver bisogno di cambiare IRQ o altre impostazioni per identificare la tua scheda. Guarda la pagina man di gusc(4) per ulteriori informazioni.
Per le schede Crystal, dovrai aggiungere:
device pcm device csa
al file di configurazione del kernel.
Per schede ISA o PCI PnP, dovrai aggiungere:
device pcm
al file di configurazione del kernel. Se hai una scheda audio ISA non PnP che non ha un driver bridge, dovrai aggiungere:
device pcm0 at isa? irq 10 drq 1 flags 0x0
al file di configurazione del kernel. Potresti aver bisogno di cambiare IRQ o altre impostazioni per identificare la tua scheda.
Qualche sistema con dispositivi audio integrati nella scheda madre può richiedere l'opzione seguente nella configurazione del kernel:
options PNPBIOS
Nota: Se stai usando FreeBSD 5.0 o successivi l'opzione PNPBIOS non è necessaria. L'opzione è stata rimossa e la funzionalità è ora sempre abilitata.
Dopo aver riavviato, loggati e cerca il dispositivo nel file /var/run/dmesg.boot, come mostrato qui sotto:
# grep pcm /var/run/dmesg.boot pcm0: <SB16 DSP 4.11> on sbc0
L'output del tuo sistema può essere differente. Se non appare nessun dispositivo pcm, qualcosa è andato storto in precedenza. Se questo accade, riguarda il file di configurazione del kernel e assicurati di aver scelto il dispositivo corretto. I problemi più comuni sono elencati nella Sezione 7.2.2.1.
Nota: Se stai usando FreeBSD 5.0 o seguenti, puoi tranquillamente saltare il resto di questa sezione. Queste versioni usano devfs(5) per creare automaticamente i dispositivi.
Se il precedente comando ha restituito pcm0, dovrai eseguire il seguente come root:
# cd /dev # sh MAKEDEV snd0
Se il comando ha restituito pcm1, segui gli stessi passi mostrati qui sopra, sostituendo snd0 con snd1.
Nota: I suddetti comandi non creeranno un dispositivo /dev/snd!
MAKEDEV creerà un gruppo di dispositivi, comprendente:
Dispositivo | Descrizione |
---|---|
/dev/audio | Dispositivo audio compatibile Sparc® |
/dev/dsp | Dispositivo per la voce digitalizzata |
/dev/dspW | Come /dev/dsp, ma con 16 bit per canale |
/dev/midi | Dispositivo per l'accesso midi in modalità diretta |
/dev/mixer | Dispositivo per il controllo del mixer |
/dev/music | Interfaccia di secondo livello al sequenziatore |
/dev/sequencer | Sequenziatore |
/dev/pss | Interfaccia di dispositivo programmabile |
Se tutto va bene, ora dovresti avere una scheda audio funzionante. Se il tuo drive CD-ROM o DVD-ROM è collegato correttamente alla scheda audio, puoi inserire un CD nel drive e riprodurlo con cdcontrol(1):
% cdcontrol -f /dev/acd0c play 1
Varie applicazioni, come audio/workman offrono una migliore interfaccia. Potresti voler installare una applicazione come audio/mpg123 per ascoltare i file audio MP3.
Errore | Soluzione |
---|---|
“unsupported subdevice XX” |
Non è stato creato correttamente qualche dispositivo. Ripeti i precedenti passi. |
“sb_dspwr(XX) timed out” |
Non è stata impostata correttamente la porta di I/O. |
“bad irq XX” |
È stato configurato erroneamente l'IRQ. Assicurati che l'IRQ impostato e quello della scheda siano gli stessi. |
“xxx: gus pcm not attached, out of memory” |
Non c'è abbastanza memoria disponibile per usare il dispositivo. |
“xxx: can't open /dev/dsp!” |
Controlla con fstat | grep dsp se un'altra applicazione sta usando il dispositivo. Esound e il supporto audio di KDE sono famosi per creare problemi. |
È spesso desiderabile avere più sorgenti di audio che siano in grado di suonare contemporaneamente, per esempio quando esound o artsd non supportano la condivisione del dispositivo audio con una certa applicazione.
FreeBSD ti permette di fare questo attraverso i Virtual Sound Channels, che possono essere impostati con sysctl(8). I canali virtuali permettono di multiplexare i canali di riproduzione della tua scheda audio mixando l'audio nel kernel.
Per impostare il numero dei canali virtuali, ci sono due variabili sysctl che, se sei l'utente root, possono essere impostate così:
# sysctl hw.snd.pcm0.vchans=4 # sysctl hw.snd.maxautovchans=4
L'esempio qui sopra alloca quattro canali viruali, che è un numero adatto all'uso di ogni giorno. hw.snd.pcm0.vchans è il numero dei canali virtuali che ha pcm0, ed è configurabile una volta che il dispositivo è collegato. hw.snd.maxautovchans è il numero dei canali virtuali che vengono dati a un nuovo dispositivo audio quando viene collegato tramite kldload(8). Visto che il modulo pcm può essere caricato indipendentemente dai driver dell'hardware, hw.snd.maxautovchans può contenere tanti canali virtuali quanti ne verranno allocati successivamente ad ogni dispositivo collegato.
Se non stai usando devfs(5), dovrai indirizzare la tua applicazione su /dev/dsp0.x, dove x va da 0 a 3 se hw.snd.pcm.0.vchans è impostato a 4 come nel precedente esempio. Su un sistema che usa devfs(5), questo verrà fatto automaticamente in modo trasparente per l'utente.
I valori di default per i diversi canali del mixer sono rigidamente codificati nel codice sorgente del driver pcm(4). Ci sono svariate applicazioni e demoni che permettono in automatico di settare il mixer a valori prestabili, ma questa non è una soluzione pulita, noi vogliamo avere dei valori di default a livello del driver. Questo è realizzabile definendo i valori desiderati nel file /boot/device.hints. Ad esempio:
hint.pcm.0.vol="100"
Questo imposterà il canale volume a un valore di default di 100, non appena il modulo pcm(4) sarà caricato.
Nota: Supportato solo da FreeBSD 5.3 e superiori.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.