ALSA staat voor
ALSA's belangrijkste toepassingen zijn onder andere het aansturen van
praktisch elke geluidskaart -van standaard kaarten tot professionele
systemen-, drivers als externe module, compatibiliteit met OSS en een
user-space library
Eén van de sterke punten van het Gentoo Linux systeem ligt de grote keuze vrijheid van de gebruiker om een systeem samen te stellen. ALSA heeft deze mogelijkheid ook binnen Gentoo. Er zijn twee manieren om ALSA te configureren op het systeem. In het volgende hoofdstuk worden deze uitgelegd.
De twee keuze mogelijkheden zijn:
Beiden methoden worden kort bekeken voordat er een keuze gemaakt hoeft te worden.
Het gebruik van de in de kernel meegeleverde ALSA drivers heeft de volgende voor- en nadelen:
| Kernel ALSA | Voor- en nadelen |
|---|---|
| + | |
| + | |
| - |
En voor de alsa-driver geldt het volgende.
| alsa-driver | Voor- en nadelen |
|---|---|
| + | |
| - | |
| - |
Het grootste verschil tussen het gebruik van de
Het maakt niet uit welke installatie methode is gekozen, allereerst moet u
weten welke drivers de geluidskaart gebruikt. In de meeste gevallen zijn
geluidskaarten (onboard en ook andere) op de PCI-bus aangesloten en deze
wetenschap kan u helpen om de benodigde informatie te vinden. Om te zien
wat er op de PCI-bus is aangesloten typen we
Nu zoeken we uit wat voor kaart u exact heeft.
# lspci -v | grep -i audio 0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)
We weten nu dat de geluidskaart in de voorbeeld PC een "Sound Blaster Live!"
is en dat de fabrikant "Creative Labs" is. Ga nu naar de
Als u het graag simpel houdt, is dit de beste manier om verder te gaan.
Dan kunnen we nu de kernel klaar maken voor het gebruik van ALSA.
# cd /usr/src/linux # make menuconfig
Nu zullen we de juiste opties in de 2.6 kernel aanzetten om ALSA werkende te krijgen voor de geluidskaart.
NB.: Voor het gemak worden in alle voorbeelden de ALSA drivers al module
gecompileerd. It is aan te bevelen de handleiding hierin te volgen, zodat u
later
Device Drivers ---> Sound --->(Dit <M> Sound card supportmoet aangezet)(Zorg dat OSS onderdelen uit staan ) Open Sound System ---> < > Open Sound System (DEPRECATED)(Ga één stap terug en ga dan naar ALSA) Advanced Linux Sound Architecture ---> <M> Advanced Linux Sound Architecture(Selecteer deze optie voor MIDI "sequencing and routing") <M> Sequencer support(Oude stijl /dev/mixer* and /dev/dsp* ondersteuning. Aan te raden.) <M> OSS Mixer API <M> OSS PCM (digital audio) API(Nu heeft u de keuze welke kaarten u wilt ondersteunen. Normaal is dit er maar één. Als u meer dan één geluidskaart heeft moet u die natuurlijk allemaal aanzetten.) (Alleen voor test and ontwikkeling, niet nodig voor de doorsnee gebruiker, tenzij u weet wat u doet.) Generic devices --->(Voor ISA geluidskaarten) ISA devices --->(ALS u de Gravis geluidskaart heeft, vinkt u deze optie aan) <M> Gravis UltraSound Extreme(Ga terug en naar PCI devices. De meeste geluidskaarten zijn PCI devices) PCI devices --->(Selecteer nu bijvoorbeeld de emu10k1 driver) <M> Emu10k1 (SB Live!, Audigy, E-mu APS)(Of voor de standaar Intel onboard kaarten) <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller(Of voor een VIA kaart) <M> VIA 82C686A/B, 8233/8235 AC97 Controller(Ga terug en selecteer het volgende voor een USB geluidskaart) USB Devices --->
Als alle opties nu goed staan kunt u de kernel (opnieuw) compileren en ALSA
zou moeten functioneren na het herstarten van uw systeem. Vergeet niet om de
GRUB configuratie aan te passen in het geval van een nieuwe kernel.
U kunt nu verder naar
U heeft gekozen om het op de
Als u geen idee heeft welke drivers u nodig heeft voor uw geluidskaart, kijk
dan even in het
(Voor één geluidskaart) ALSA_CARDS="emu10k1"(Voor meer dan één geluidskaart gebruikt u spaties) ALSA_CARDS="emu10k1 via82xx"
Als u reeds een kernel heeft gecompileerd, zorg er dan voor u de volgende
stappen uitvoert voordat u
(We gaan er vanuit de /usr/src/linux naar de juiste kernel verwijst) # cd /usr/src/linux # grep SOUND .config(1. is waar) CONFIG_SOUND=y(2. is waar) CONFIG_SOUND_PRIME is not set # grep SND .config(en 3. is waar) CONFIG_SND is not set
Nu hoeven we allen nog de magische woorden in te typen...
# emerge alsa-driver
# emerge alsa-utils
De simpelste manier om uw geluidskaart te configureren is door
# alsaconf
U ziet nu een interface met een net menu dat automatisch uw geluidskaart
zal proberen te vinden. U word gevraagd om uw geluidskaart uit een lijst
te selecteren en daarna wordt u toestemming gevraagd om automatisch de
benodigde veranderingen in
We zijn nu bijna klaar. Hoe u ALSA ook geinstalleerd hebt, u moet er nog voor
zorgen dat tijdens het starten van uw systeem de ALSA modules worden geladen
en uw volume instellingen worden teruggezet. Het ALSA init-script
# rc-update add alsasound boot * alsasound added to runlevel boot * rc-update complete.
Nu checken we nog het bestand
Voordat we gaan testen is er nog één
(Vervang <username> door uw gebruikersnaam) # gpasswd -a <username> audio Adding user <username> to group audio
We zijn nu klaar met de configuratie, dus kunnen we ALSA gaan testen. Als u
(ALSA als module) # /etc/init.d/alsasound start * Loading ALSA modules ... * Loading: snd-card-0 ... [ ok ] * Loading: snd-pcm-oss ... [ ok ] * Loading: snd-seq ... [ ok ] * Loading: snd-emu10k1-synth ... [ ok ] * Loading: snd-seq-midi ... [ ok ] * Restoring Mixer Levels ... [ ok ](ALSA in kernel) # /etc/init.d/alsasound start * Loading ALSA modules ... * Restoring Mixer Levels ... [ ok ]
Na ALSA gestard is, kan het zijn dat het volume op "mute" staat. We
gebruiken
(Dit opent een terminal. Alleen de benodigde settings zijn te zien.) # alsamixer
De ALSA Mixer
We gaan nu de kanalen van "mute" afhalen en het volume instellen.
Nu u alle instellingen hebt goed gezet, zou uw ALSA Mixer moeten lijken op de onderstaande. Zie dat er nu "00" staat in plaats van "MM" en dat sommige volumes nu zijn ingesteld.
Een lekker vervelende manier om te checken of u alles goed heeft ingesteld is het laten horen van ruis. Het is niet leuk om naar te luisteren, maar u weet wel dat uw geluidskaart werkt.
# cat /dev/urandom > /dev/dsp
U zou nu ruis moeten horen. Druk op
Eindelijk. We kunnen muziek gaan draaien. Als alles tot nu toe werkte, kunt
u nu gaan luisteren naar uw muziek. Een snelle manier om te testen of alles
werkt is het gebruik van een command-line programma als
(Installeer de programma's die u wilt gebruiken) # emerge madplay mpg123 xmms(Om .ogg af te spelen) # emerge vorbis-tools
En dan kunt u uw favoriete liedje draaien...
# madplay -v /mnt/shyam/Music/Paul\ Oakenfold\ -\ Dread\ Rock.mp3
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
Title: Dread Rock
Artist: Paul Oakenfold
Album: Matrix Reloaded
Year: 2003
Genre: Soundtrack
Soundtrack
00:04:19 Layer III, 160 kbps, 44100 Hz, joint stereo (MS), no CRC
# ogg123 Paul\ Oakenfold\ -\ Dread\ Rock.ogg
Audio Device: Advanced Linux Sound Architecture (ALSA) output
Playing: Paul Oakenfold - Dread Rock.ogg
Ogg Vorbis stream: 2 channel, 44100 Hz
Genre: Soundtrack
Transcoded: mp3;160
Title: Dread Rock
Artist: Paul Oakenfold
Date: 2003
Album: Matrix Reloaded
Time: 00:11.31 [04:28.75] of 04:40.06 (200.6 kbps) Output Buffer 96.9%
U kunt nu
Als u geen geluid hoort, kunt u het beste eerst naar de
(Allereerst, als /proc/asound/cards uw kaart laat zien, dan heeft ALSA uw kaart gevonden en is dat dus geen probleem.) # cat /proc/asound/cards 0 [Live ]: EMU10K1 - Sound Blaster Live! Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11(Als u ALSA buiten de kernel om draait, kunt u zo kijken hoeveel ouder uw driver is ten opzichte van de alsa-driver.) # cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).(ALSA OSS emulatie details) # cat /proc/asound/oss/sndstat Sound Driver:3.8.1a-980706 (ALSA v1.0.8 emulation code) Kernel: Linux airwolf.zion 2.6.11ac1 #2 Wed May 4 00:35:08 IST 2005 i686 Config options: 0 Installed drivers: Type 10: ALSA emulation Card config: Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11 Audio devices: 0: EMU10K1 (DUPLEX) Synth devices: NOT ENABLED IN CONFIG Midi devices: 0: EMU10K1 MPU-401 (UART) Timers: 7: system timer Mixers: 0: SigmaTel STAC9721/23
Een van de andere meest voorkomende problemen is de "Unknown symbol in module" foutmelding. Een voorbeeld hiervan staat hieronder.
# /etc/init.d/alsasound start
* Loading ALSA modules ...
* Loading: snd-card-0 ... [ ok ]
* Loading: snd-pcm-oss ...
WARNING: Error inserting snd_mixer_oss
(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
symbol in module, or unknown parameter (see dmesg) FATAL: Error inserting
snd_pcm_oss
(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-pcm-oss.ko): Unknown
symbol in module, or unknown parameter (see dmesg)
[ !! ]
* Loading: snd-mixer-oss ...
FATAL: Error inserting snd_mixer_oss
(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
symbol in module, or unknown parameter (see dmesg)
[ !! ]
* Loading: snd-seq ... [ ok ]
* Loading: snd-emu10k1-synth ... [ ok ]
* Loading: snd-seq-midi ... [ ok ]
* Restoring Mixer Levels ... [ ok ]
En wanneer u kijkt naar
(Alleen de relevante stukken staan hier) # dmesg | less ACPI: PCI Interrupt 0000:02:06.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 209 snd_mixer_oss: Unknown symbol snd_unregister_oss_device snd_mixer_oss: Unknown symbol snd_register_oss_device snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback snd_mixer_oss: Unknown symbol snd_oss_info_register snd_pcm_oss: Unknown symbol snd_unregister_oss_device snd_pcm_oss: Unknown symbol snd_register_oss_device snd_pcm_oss: Unknown symbol snd_mixer_oss_ioctl_card snd_pcm_oss: Unknown symbol snd_oss_info_register snd_mixer_oss: Unknown symbol snd_unregister_oss_device snd_mixer_oss: Unknown symbol snd_register_oss_device snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback snd_mixer_oss: Unknown symbol snd_oss_info_register
Het bovenstaande wordt veroorzaakt als u wisselt van het gebruik van
De oplossing is simpel. We verwijderen de directory die het probleem
veroorzaakt, nadat u unmerge
(Vervang KERNELVER met uw kernel versie) # rm -rf /lib/modules/KERNELVER/alsa-driver
Als uw geluidskaart een on-board MIDI synthesizer heeft en u wilt luisteren
naar .mid bestanden, dan kunt u
# emerge awesfx
Na het kopieren van de SoundFont bestanden kunt u een midi bestand afspelen.
U kunt ook het
(kopieer SoundFont) # cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/(Of haal ze van de SoundBlaster CD) # cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/(Laad de specifieke SoundFont) # asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2
Nu kunt u midi bestanden afspelen met een programma als
(Check open poorten) # aplaymidi -l Port Client name Port name 64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART) 65:0 Emu10k1 WaveTable Emu10k1 Port 0 65:1 Emu10k1 WaveTable Emu10k1 Port 1 65:2 Emu10k1 WaveTable Emu10k1 Port 2 65:3 Emu10k1 WaveTable Emu10k1 Port 3(Kies een poort, en speel en .mid bestand) # aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid
Als uw geluidskaart geen hardware synthesizer heeft, kunt u een virtuele
als
# emerge timidity++
Om met timidity geluiden af te draaien, heeft het een sound font nodig. Als
u die geen heeft, installeer dan
# emerge timidity-eawpatches # timidity-update -g -s eawpatches(of) # emerge timidity-shompatches # timidity-update -g -s shompatches
Vergeet niet om
# rc-update add timidity default # /etc/init.d/timidity start
Nu kunt u proberen om
Sommige geluidskaarten hebben er baat bij om programma's uit
ALSA_TOOLS="as10k1 ac3dec"
Als de ALSA_TOOLS variabele niet is ingesteld worden alle tools
geinstalleerd. Installeer nu
# emerge alsa-tools
Iedereen die heeft meegewerkt aan de eerdere versies van de Gentoo ALSA handleiding: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin.