Enne alustamist peaksid teadma, milline on su helikaardi mudel, millist kiipi kaart kasutab ja kas tegu on PCI või ISA kaardiga. FreeBSD toetab suurt hulka erinevaid PCI ja ISA kaarte. Juhul, kui sa ei leia järgnevast nimekirjast oma kaarti, peaksid lugema man-lehte pcm(4). Siintoodud nimekiri pole täiuslik, kuid sisaldab siiski levinuimaid kaarte.
Crystal 4237, 4236, 4232, 4231
Yamaha OPL-SAx
OPTi931
Ensoniq AudioPCI 1370/1371
ESS Solo-1/1E
NeoMagic 256AV/ZX
Sound Blaster Pro, 16, 32, AWE64, AWE128, Live
Creative ViBRA16
Advanced Asound 100, 110, and Logic ALS120
ES 1868, 1869, 1879, 1888
Gravis UltraSound
Aureal Vortex 1 or 2
Selleks, et oma helikaarti kasutama hakata, pead laadima õige draiveri. Draiveri leidmiseks on kaks moodust: Lihtsam neist on lihtsalt oma helikaardile vastav kernelimoodul laadida - seda käsuga kldload(8). Teine võimalus on helikaardi tugi kernelisse staatiliselt sisse kompileerida. Alljärgnevad lõigud selgitavad, kuidas just teisel viisil vajalikku tuge luua. Kerneli uuesti kompileerimise kohta leiad rohkem infot peatükist Chapter 8.
Kui sul on mõni ülalnimetatud kaartidest, tuleb sul kernelisse lisada:
device pcm
PnP ISA kaardi puhul tuleb kernelisse lisada ka:
device sbc
PnP-d mitte toetavate ISA kaartide puhul peab kerneli konfiguratsioonifaili lisama
device pcm
device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15Tegemist on vaikeväärtustega. Võib juhtuda, et pead muutma IRQ või mõne muu parameetri väärtust, et oma kaarti käima saada. Siinkohal on abiks man-leht sbc(4)
Note: Sound Blaster Live ei tööta FreeBSD 4.0 all ilma, et peaksid süsteemi eelnevalt paikama - seda käesolev dokument ei seleta. Me soovitame nimetatud kaardi kasutamiseks värskendada süsteem viimase -STABLE'i peale.
PnP ISA kaardi puhul tuleb kerneli konfiguratsioonifaili lisada:
device pcm device gusc
PnP'd mitte toetava ISA kaardi puhul lisa:
device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13
Võib juhtuda, et pead ka IRQ või mõne muu parameetri väärtusi muutma. Man-leht man.gusc.4; selgitab teemat lähemalt.
Crystal-helikaardi puhul tuleb kerneli konfiguratsioonifaili lisada:
device pcm device csa
PnP ISA ja PCI kaartide puhul piisab tavaliselt rea
device pcm
lisamisest kerneli seadistusse. PnP-d mittetoetavate ISA helikaartide puhul, millel puudub silla draiver, tuleks kernelisse lisada
device pcm0 at isa? irq 10 drq 1 flags 0x0
Võib juhtuda, et sul tuleb ka IRQ-d ja teisi seadeid muuta.
Mõne süsteemi puhul, millel on heliseadmed emaplaati sisse ehitatud, võib olla tarvis kerneli konfiguratsioonifaili kirjutada:
options PNPBIOS
Peale rebootimist logi sisse ning uuri, milline seade asub failis /var/run/dmesg.boot, seda järgmiselt:
# grep pcm /var/run/dmesg.boot pcm0: <SB16 DSP 4.11> on sbc0
Sinu süsteem võib anda teistsuguse väljundi. Kui ühtegi pcm-seadet ei tundu olevat, on midagi juba varem viltu läinud. Kui midagi säärast juhtub, uuri veelkord kerneli konfiguratsioonifaili ning tee kindlaks, kas valisid õige seadme. Tüüpilised probleemid ja vead on ära toodud lõigus Section 9.2.2.1.
Note: Kui kasutad FreeBSD versiooni 5.0 või uuemat, võid ülejäänud peatüki rahumeeli vahele jätta. Uuemad versioonid loovad nimelt seadmefailid automaatselt ise man.devfs.5; abil.
Kui eelmine käsk andis väljundiks pcm0, pead root-õigustes kirjutama käsureale järgmist:
# cd /dev # sh MAKEDEV snd0
Kui käsk andis väljundiks pcm1, tee sama, mis ülal, asendades seadme snd0 snd1-ga.
Note: Pane tähele, et kumbki eelnevatest käskudest ei loo /dev/snd seadet!
MAKEDEV loob grupi seadmefaile, s.h:
| Seade | Kirjeldus |
|---|---|
| /dev/audio | SPARC-iga ühilduv audioseade |
| /dev/dsp | Digitaalne heliseade |
| /dev/dspW | Nagu/dev/dsp, aga 16 bitti sämplingu kohta |
| /dev/midi | Madala tasandi midi-seade |
| /dev/mixer | Juhtpordi mikserseade |
| /dev/music | Teise tasandi sekventserliides |
| /dev/sequencer | Sekventserseade |
| /dev/pss | Programmeeritav seadmeliides |
Kui kõik hästi läheb, peaks sul kõige loetletu tulemusena olema töötav helikaart. Kui su CD-ROMi või DVD-ROMi seade helikaardiga korralikult ühildub, peaksid saama panna plaadi CD-draivi ning teda kuulata käsuga cdcontrol(1):
% cdcontrol -f /dev/acd0c play 1
Mõned programmiga, näiteks audio/workman-iga, on kaasas parem liides. MP3-failide kuulamiseks oleks aga mõistlik paigaldada näiteks programm audio/mpg123.
| Viga | Lahendus |
|---|---|
| ``unsupported subdevice XX'' | Üks või mitu seadmefaili on valesti loodud. Korda eelpoolkirjeldatud samme. |
| ``sb_dspwr(XX) timed out'' | I/O port ei ole korrektselt seadistatud. |
| ``bad irq XX'' | IRQ on valesti määratud. Kontrolli üle, kas kaardi IRQ ja kerneli seadistustes määratud IRQ on samad. |
| ``xxx: gus pcm not attached, out of memory'' | Selle seadme kasutamiseks pole piisavalt mälu. |
| ``xxx: can't open /dev/dsp!'' | Vaata käsu fstat | grep dsp abil, ega mõni muu programm seda seadet parasjagu käigus ei hoia. Märkimisväärselt tekitavad probleeme esound ja KDE helitugi. |
Tihti võib tekkida olukord, kus on soovitav, et saaks kasutada mitut heliallikat samaaegselt - näiteks kui esound või artsd ei toeta helikaardi jagamist mõne teise programmiga.
FreeBSD all on seda võimalik teha virtuaalsete helikanalite (Virtual Sound Channels) abil, mida saab seadistada sysctl(8)-ga. Virtuaalkanalite abil saad oma helikaardi taasesituskanalite arvu mitmekordistada, seda võimaldab heli miksimine kernelis.
Selleks, et virtuaalkanalite arvu määrata, on olemas kaks sysctl-nuppu, mida saad kasutada root-õigustes järgmiselt:
# sysctl hw.snd.pcm0.vchans=4 # sysctl hw.snd.maxautovchans=4
Ülaltoodud näide eraldab neli virtuaalkanalit, mis on igapäevaseks
kasutamiseks ka sobiv arv.
hw.snd.pcm0.vchans näitab, mitut virtuaalkanalit
pcm0 sisaldab, ning seda arvu
saab konfigureerida hiljem, kui vastav seade juba paigas on.
hw.snd.maxautovchans näitab, mitu virtuaalkanalit
suvalisele audioseadmele eraldatakse, kui ta paigaldatakse käsu
kldload(8) abil. Kuna pcm-moodulit
saab laadida riistvaradraiveritest sõltumatult, säilitab
hw.snd.maxautovchans infot ka selle kohta, mitu virtuaalkanalit
hiljem lisatavatele seadmetele eraldatakse.
Kui sa ei kasuta failisüsteemi devfs(5), pead oma programmid
suunama faili /dev/dsp0.x, kus
x on number 1-3, kui hw.snd.pcm.0.vchans on
4, nagu ülaltoodud näites. Juhul kui süsteem kasutab devfs(5),
eraldatakse see fail kasutajale automaatselt ning nähtamatult.