A művelet megkezdése előtt ki kell derítenünk, milyen típusú hangkártyánk van, milyen chip van rajta, PCI vagy ISA buszon csatlakozik-e. A FreeBSD rengeteg PCI és ISA buszos kártyát ismer egyaránt. A sajátunk beazonosításához a támogatott hangeszközök listáját a Hardware Notes (Hardverjegyzék) oldalán találhatjuk meg. Ebből a jegyzékből mellesleg azt is megtudhatjuk, hogy melyik meghajtó kezeli a kártyánkat.
A hangeszközünk használatához be kell töltenünk a neki megfelelő meghajtót. Ez két módon is megtehető. Ezek közül az a legkönnyebb, ha a kldload(8) paranccsal egyszerűen betöltjük a rendszermag hangkártyánkhoz tartozó modulját. Ezt megtehetjük közvetlenül parancssorból:
# kldload snd_emu10k1
vagy a /boot/loader.conf állományból az alábbihoz hasonló sor hozzáadásával:
snd_emu10k1_load="YES"
A fenti példák a Creative SoundBlaster® Live! hangkártyára vonatkoznak. A többi betölthető hangkártya-modul felsorolása a /boot/defaults/loader.conf állományban található. Ha nem vagyunk benne biztosak, hogy melyik meghajtót is akarjuk pontosan használni, akkor próbálkozzunk az snd_driver modul betöltésével:
# kldload snd_driver
Ez egy olyan metameghajtó, ami egyszerre betölti az összes érintett eszközmeghajtót, és segítségével felgyorsíthatjuk a megfelelő meghajtó megtalálását. A /boot/loader.conf használatával is be tudjuk ugyanígy tölteni az összes meghajtót.
Az snd_driver metameghajtó betöltése után úgy kereshetjük meg a ténylegesen használatban levő meghajtót, ha megnézzük a /dev/sndstat állományt a cat /dev/sndstat paranccsal.
A második módszer szerint a hangkártyánk támogatását statikusan beépítjük a rendszermagba. A lentebb található szakaszban olvashatjuk mindazok az információkat, amelyekre szükségünk lehet ennek elvégzése közben. A rendszermag újrafordításával kapcsolatban forduljunk a 8 fejezethez.
Elsőként hozzá kell adnunk a rendszermaghoz a hangeszközök alapmeghajtóját, a sound(4) eszközt. Ezt a rendszermag beállításait tartalmazó állományban az alábbi sor felvételével tehetjük meg:
device sound
Ezután tegyük még hozzá a hangkártyánkhoz kapcsolódó támogatást is. Ehhez viszont pontosan tudunk kell, melyik meghajtó képes működtetni a kártyát. A hangkártyához tartozó meghajtót a Hardware Notes (Hardverjegyzék)-ben található eszközök listájából deríthetjük ki. Például a Creative SoundBlaster Live! hangkártyát a snd_emu10k1(4) meghajtó kezeli. Ennek a hangkártyának a támogatását az alábbi sorral állíthatjuk be:
device snd_emu10k1
Az itt használatos formátumot a meghajtó man oldalának átolvasásából tudhatjuk meg. Azonban az összes támogatott hangkártya meghajtó megadásának pontos formátuma megtalálható a /usr/src/sys/conf/NOTES állományban is.
A PnP (Plug n Play)-t nem ismerő ISA kártyák esetén az összes többi nem PnP-s ISA kártyához hasonlóan szükséges lehet a rendszermag számára megadnunk a kártya hardveres beállításait (IRQ, I/O port stb). Ezt a /boot/device.hints állományon keresztül tehetjük meg. A rendszerindítási folyamat során a loader(8) beolvassa ezt az állományt, majd átadja a benne szereplő információkat a rendszermagnak. Például a Creative SoundBlaster 16, nem PnP-s ISA kártya az snd_sb16 meghajtóval együtt az snd_sbc(4) meghajtót használja. A kártya használatához a rendszermag beállításait tartalmazó állományba ezeket a sorokat kell megadni:
device snd_sbc device snd_sb16
valamint a /boot/device.hints állományba ezeket:
hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15"
Ekkor a kártya a 0x220 I/O portot és 5 IRQ-t használja.
A /boot/device.hints állományban alkalmazott felírási módról bővebben a sound(4), valamint a kérdéses meghajtó man oldalán tájékozódhatunk.
A fentiekben bemutatott beállítások alapértelmezettek, néhány esetben azonban a kártyánknak megfelelően meg kell változtatnunk az IRQ és egyéb értékeket. Erről a kártyáról konkrétan a snd_sbc(4) man oldalon olvashatunk részletesebben.
Miután újraindítottuk a számítógépünket a módosított rendszermaggal, vagy miután betöltöttük a szükséges modult, a hangkártyának valahogy így kell megjelennie a rendszerünk üzenetpufferében (dmesg(8)):
pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec>
A hangkártyánk állapota a /dev/sndstat állományon keresztül ellenőrizhető:
# cat /dev/sndstat FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default)
Ez a kiírás rendszerenként eltérhet. Ha nem látunk semmilyen pcm0 eszközt, akkor menjünk vissza és nézzük át újra, pontosan mit is csináltunk. Vizsgáljuk át a rendszermagunk beállításait tartalmazó állományt és győződjünk meg róla, hogy a megfelelő meghajtót adtuk meg. Az itt felmerülő gyakori gondokkal a 7.2.2.1 Szakasz foglalkozik.
Ha azonban minden remekül haladt, akkor most már van egy működő hangkártyánk. Ha rendesen összekapcsoltuk hangkártyánkat a CD- vagy DVD-meghajtónk audio csatlakozásával, akkor tegyünk egy CD-t a meghajtóba és kezdjük el játszani a cdcontrol(1) paranccsal:
% cdcontrol -f /dev/acd0 play 1
Az olyan alkalmazások, mint például az audio/workman, ehhez egy sokkal barátságosabb felületet nyújtanak. Az MP3 formátumú állományok meghallgatásához pedig minden bizonnyal jól fog jönni egy olyan alkalmazás is, mint például az audio/mpg123.
A kártyát úgy is tesztelhetjük, ha az alábbihoz hasonló módon adatokat küldünk a /dev/dsp állományba:
% cat állománynév > /dev/dsp
ahol az állománynév tetszőleges állomány neve lehet. A parancs hatására valamilyen zajt kell hallanunk, és ez egyben meg is erősíti, hogy a hangkártyánk működik.
A hangkártyánk csatornáinak jellemzőit a mixer(8) paranccsal állíthatjuk. Erről további részleteket a mixer(8) man oldalon olvashatunk.
| Hiba | Megoldás | 
|---|---|
| “sb_dspwr(XX) timed out” | Nem állítottuk be jól az I/O portot. | 
| “bad irq XX” | Nem állítottuk be jól az IRQ értékét. Gondoskodjunk róla, hogy a beállított érték megegyezik a hangkártyánkéval. | 
| “xxx: gus pcm not attached, out of memory” | Nincs elég memória az eszköz használatához. | 
| “xxx: can't open /dev/dsp!” | A fstat | grep dsp parancs kiadásával ellenőrizzük, hogy valamelyik alkalmazás használja-e már az eszközt. Gyakori bajkeverő az esound és a KDE hangtámogatása. | 
Gyakran szükségünk lehet több hangforrás egyidejű használatára, főleg olyankor, amikor az esound vagy az artsd bizonyos alkalmazásokkal nem hajlandó megosztani a hangeszközt.
A FreeBSD ezt a virtuális hangcsatornák használatával oldja meg, amit a sysctl(8) eszközön keresztül tudunk engedélyezni. Amikor a rendszermagban virtuális csatornák használatával keverünk, akkor lényegében képesek vagyunk a hangkártyánk által egyszerre játszható hangok számát megtöbbszörözni.
A virtuális csatornák számának beállításához a sysctl három változóját kell módosítanunk, amelyet root felhasználóként így tehetünk meg:
# sysctl dev.pcm.0.play.vchans=4 # sysctl dev.pcm.0.rec.vchans=4 # sysctl hw.snd.maxautovchans=4
A fenti példa négy virtuális
	csatornát hoz létre, ami egészen
	jellemző a mindennapi használatban.  A
	dev.pcm.0.play.vchans és
	dev.pcm.0.rec.vchans a
	pcm0 eszköz
	lejátszásra és felvételre
	használt virtuális csatornáinak
	számát adja meg, amelyet az eszköz
	csatlakoztatása után tudunk
	beállítani.  A
	hw.snd.maxautovchans az új
	eszközhöz tartozó virtuális
	csatornákat adja meg, ami akkor
	állítódik be, amikor a kldload(8)
	paranccsal csatlakoztatjuk.  Mivel a
	pcm modul a többi
	eszközmeghajtótól függetlenül
	töltődik be, ezért a
	hw.snd.maxautovchans azt tárolja, hogy
	a később hozzá csatlakozó
	eszközök mennyi virtuális csatornát
	fognak majd kapni.  Erről részletesebben a
	pcm(4) man oldalon olvashatunk.
Megjegyzés: A használatban levő eszközöknél nem tudjuk megváltoztatni a virtuális csatornák számát. Ehhez először le kell állítanunk az eszközt használó összes programot, tehát a zenelejátszókat és hangdémonokat.
Amennyiben nem használjuk ki a devfs(5)
	által nyújtott lehetőségeket, az
	összes alkalmazásnak a
	/dev/dsp0.x
	eszközre kell mutatnia, ahol az
	x értéke 0-tól
	3-ig terjedhet attól függően, hogy a
	dev.pcm.0.rec.vchans
	értékét a fenti példához
	hasonlóan 4-re állítottuk-e.  A
	devfs(5) megoldását használó
	rendszerek esetén ez a folyamat automatikusan lezajlik,
	tehát az összes /dev/dsp
	eszközre irányuló kérés
	magától
	átirányítódik.
A keverőben megjelenő különböző csatornák alapértékei a pcm(4) meghajtó forráskódjában huzalozottan találhatóak meg. Számos alkalmazás és démon segít két hívás közt megőrizni a keverőben beállított értékeket, azonban ez nem teljesen tiszta megoldás. A meghajtó szintjén is be tudjuk állítani a keverő alapértékeit — ezt a /boot/device.hints állomány megfelelő módosításával érhetjük el, például:
hint.pcm.0.vol="50"
Ezzel a pcm(4) modul betöltése során a hangerő (volume) csatorna alapértelmezett értéket 50-re állítjuk.
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
		  címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
		  kérjük erre a címre írjon: <gabor@FreeBSD.org>.