Inhoudsopgave
Bijgedragen door by Manolo De Santis
Dit hoofdstuk is een korte introductie tot het gebruik van geluidskaarten onder NetBSD (want wie wil nou een domme computer?).
Om geluid te krijgen op uw systeem moet u weten welke geluidskaart uw systeem heeft. Jammer genoeg is het vaak niet voldoende het merk en type van de geluidskaart te kennen omdat veel kaarten chipsets gebruiken die door andere fabrikanten zijn gemaakt. Daarom is het vaak nuttig als u ook weet welke chipset op de geluidskaart geļnstalleerd is. De NetBSD kernel herkent veel geluidskaarten en even naar dmesg kijken is vaak alles wat u hoeft te doen.
Tik daarom het volgende commando:
#
dmesg | more
en zoek naar de geluidskaart en chipset. Als u geluk heeft hoeft u niks te doen omdat NetBSD automatisch veel kaarten herkent en configureert.
Soms werkt het geluid niet omdat de desbetreffende geluidskaart niet ondersteund is, of omdat u de kernel eerst verder moet configureren zodat NetBSD de kaart wel kan detecteren. De meeste geluidskaarten zijn tegenwoordig erg goedkoop en het is daarom de moeite waard om een andere kaart te kopen. Maar u kunt eerst een paar simpele stappen uitvoeren om te proberen of uw kaart door NetBSD ondersteud wordt.
Deze sectie is alleen nuttig voor eigenaars van i386 PC's; op andere architecturen (bijvoorbeeld Amiga) bestaan de instellingen die in deze sectie beschreven worden niet. Het is belangrijk te te onderzoeken welke bus de kaart gebruikt om de kaart onder NetBSD te gebruiken.
De meeste kaarten gebruiken de ISA of PCI bus. Vrijwel alle moderne PC's gebruiken PCI kaarten of een geļntegreerde chipset. Geļntegreerde chipsets zijn veelal toegankelijk via de PCI bus.
Plug & Play (PnP) ISA kaarten zijn vaak moeilijker te configureren, voornamelijk omdat ze communiceren met de BIOS van de computer.
Op nieuwere machines (die geproduceerd zijn na 1997) hebben een BIOS optie die voor veel problemen zorgt bij het configureren van ISA PnP geluidskaarten (maar niet alleen geluidskaarten): deze optie heet gewoonlijk “PNP OS Installed” en kan vaak gevonden worden in het “PNP/PCI Configuration” menu (de namen kunnen afwijken in uw BIOS). Over het algemeen is het verstandig deze optie uit te schakelen (ofterwijl op “NO” te zetten) als u NetBSD gaat gebruiken.
op veel systemen werkt alles goed, zelfs als deze optie aan staat. Dit is sterk systeemafhankelijk.
Tijdens de installatie van NetBSD worden devices aangemaakt
in de /dev
directory.
We zijn hoofdzakelijk geļnteresseerd in:
/dev/audio
/dev/sound
/dev/mixer
Als deze devices niet bestaan kunnen ze als volgt aangemaakt worden:
#
cd /dev
#
./MAKEDEV all
Dit commando maakt alle devices, inclusief de audio devices.
De geluidskaart werkt nu waarschijnlijk zonder verder werk.
U kunt dit snel testen door een geluidsbestand te sturen
naar de device (geluidsbestanden hebben gewoonlijk de
.au
extensie), maar als u geen geluidsbestand
heeft kunt u gewoon een binair of tekstbestand gebruiken (natuurlijk
hoort u dan niet veel zinvols...).
Gebruikt /dev/audio
of
/dev/sound
:
#
cat filename > /dev/audio
of
#
cat filename > /dev/sound
Als u iets hoort wordt de geluidskaart ondersteund door NetBSD en is het herkend en geconfigureerd door de kernel tijdens het starten van het systeem. Als dat niet het geval is moet u de kernelinstellingen wijzigen voor de geluidskaart in uw systeem (met de aanname dat uw kaart/chipset ondersteund wordt).
NetBSD ondersteunt een grote hoeveelheid geluidskaarten en de GENERIC kernel detecteert en configureert de meeste kaarten.
Veel Plug & Play kaarten worden standaard niet door de GENERIC kernel ondersteund. U moet een eigen kernel configureren om ze te kunnen gebruiken. Zoek naar de volgende (of vergelijkbare) regels in het GENERIC bestand:
# Plug-and-Play BIOS and attached devices #pnpbios* at mainbus? # mainboard audio chips #ess* at pnpbios? index ? # ESS AudioDrive #sb* at pnpbios? index ? # NeoMagic 256AV in sb mode #wss* at pnpbios? index ? # NeoMagic 256AV in wss mode #ym* at pnpbios? index ? # OPL3-SA3
Verwijder het commentaarteken voor de “pnpbios” regel en de regel die uw geluidskaart beschrijft.
als u een eigen kernel maakt is het beter met een kopie van de GENERIC file te werken.
Soms is het nodig handmatig de IRQ en DMA instellingen voor de chipset te configureren.
Als u nog steeds problemen heeft kunt u proberen alle geluidsdevices in de kernel aan te schakelen omdat sommige geluidskaarten ook werken met de emulatie van een andere kaart.
Veel chipsets hebben SoundBlaster en OPL compatibiliteit, maar veel werken met WSS emulatie.
OPL is een MIDI synthesizer die geproduceerd is door Yamaha; er zijn veel OPL varianten (bijv. OPL2, OPL3SA, OPL3SA2, etc.). Veel geluidskaarten gebruiken dit component of een component dat compatible is. Chips die geproduceerd zijn door Crystal hebben bijvoorbeeld allemaal deze chipset en daarom werken ze met NetBSD.
WSS is geen microchip, het is de afkorting voor Windows Sound System. Wss is de naam van de NetBSD kernel driver die het geluidssysteem van Microsoft Windows ondersteunt. Veel geluidskaarten werken met Windows omdat ze voldoen aan deze standaard (WSS) en hetzelfde geldt voor NetBSD.
Als het goed is zou u geen problemen moeten hebben een Creative SoundBlaster werkend te krijgen onder NetBSD: bijna alle kaarten worden ondersteund, inclusief de SoundBlaster Live 1024.
Als alles naar behoren werkt kunt u de kerneldevices die niet gebruikt worden uitschakelen.
NetBSD heeft een aantal commando's die gebruikt kunnen worden met geluidskaarten:
audioctl
mixerctl
audioplay
audiorecord
Audioctl is verschenen in NetBSD 1.3 en kan gebruikt worden om handmatig een aantal variabelen in te stellen die te maken hebben met audio I/O, zoals de frequenties voor het afspelen of opnemen van geluid. De beschikbare parameters kunnen getoond worden met het volgende commando:
#
audioctl -a | more
Om bijvoorbeeld naar CD kwaliteit muziek te luisteren kunt u het volgende commando gebruiken:
#
audioctl -w play=44100,2,16,slinear_le
Dit commando stelt de frequentie in op 44100Hz, met 2 audiokanalen, 16 bits geluid en slinear_le codering.
U kunt de ondersteunde coderingen zien met:
#
audioctl encodings
Dit commando toont een lijst van alle coderingen die door uw geluidskaart ondersteund worden.
Dit commando wordt gebruik om de mixer te configureren en heeft een interface die vergelijkbaar is met die van audioctl.
Met dit commando kunt u geluidsbestanden afspelen. Voor ondersteuning voor meer formaten (bijvoorbeeld MP3) e.d. kunt u beter een geluidsprogramma uit de package collectie gebruiken.