Advanced Linux Sound Architecture
Advanced Linux Sound Architecture (zkratka ALSA) je Linuxový podsystém, zahrnující ovladače, knihovny a další nástroje pro práci s audio zařízeními (zvukové karty). V nové řadě 2.6 nahrazuje zastaralý Open Sound System, s nímž je víceméně zpětně kompatibilní. Je určený především k záznamu zvuku.
Nejen zvuk
editovatZvuk, jakožto chvění vzduchu, ovšem musí být nejdříve (obvykle pomocí mikrofonu) převeden na elektrický signál, který teprve může být počítačem (resp. zvukovou kartou či jiným elektronickým zařízením) zpracován. Přesněji řečeno, celý zvukový systém počítače je zařízený na zpracování signálu, jehož frekvenční spektrum leží v oblasti zvukových kmitočtů, tj. zpravidla 20 Hz až 20 kHz i více. Tím pádem může být celý tento zvukový systém počítače využitý nejen ke zpracování různých zvuků, ale i různých dalších signálů, které se do daného frekvenčního pásma vejdou.
O zvukových kartách by mělo být pojednáno na jiném místě. Pokud používáme operační systém Microsoft Windows, musíme hledat potřebné znalosti jinde. Zde se zaměříme na využití zvukového systému v počítači, na kterém běží Linux.
Instalace
editovatAby mohly nejrůznější aplikace zvukovou kartu (resp. zvukový systém na některém čipu základní desky) využívat, musí být zvuková karta do systému řádně nainstalována. Linux k ní může přistupovat různými způsoby: jedním z nich je systém OSS, který je však v současné době již poněkud zastaralý. Preferovaným zvukovým systémem je právě ALSA.
Debian
editovatV distribuci Debian nainstalujeme balík alsa-base (nachází se v sekci /sound/main). (Aptitude nám přitom automaticky zajistí, aby byly nainstalovány balíky alsa-utils, linux-sound-base, pc-utils a případně ještě několik dalších.)
alsaconf
editovatalsaconf je debianí utilita pro konfiguraci alsa. Stačí (jako root) spustit:
alsaconf
která se pokusí detekovat všechny zvukové karty na počítači. Najde dejme tomu
intel8x0 nVidia Corporation CK804 AC'97 Audio Controller (rev a2)
Typický průběh potom je:
Unloading ALSA sound driver modules: snd-intel8x0 snd-ac97-codec snd-ac97-bus snd-pcm-oss snd-mixer-oss snd-pcm snd-timer snd-page-alloc. Building card database... Running update-modules... Loading driver... Setting default volumes... =================================================== Now ALSA is ready to use. For adjustment of volumes, use your favorite mixer. Have a lot of fun!
Problémy
editovatMůže se stát, že přehrávač nepřehrává a na konzoli se začnou valit hlášky typu:
ALSA lib confmisc.c:670:(snd_func_card_driver) cannot find card '0' ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_card_driver returned error: Takové zařízení neexistuje ALSA lib confmisc.c:391:(snd_func_concat) error evaluating strings ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_concat returned error: Takové zařízení neexistuje ALSA lib confmisc.c:1070:(snd_func_refer) error evaluating name ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_refer returned error: Takové zařízení neexistuje ALSA lib conf.c:3968:(snd_config_expand) Evaluate error: Takové zařízení neexistuje ALSA lib pcm.c:2143:(snd_pcm_open_noupdate) Unknown PCM default snd_pcm_open: Takové zařízení neexistuje (default) Failed to initialize plugin! Failed to register plugin: /usr/lib/alsaplayer/output/libalsa_out.so Failed to load output plugin "alsa". Trying defaults. ALSA lib confmisc.c:670:(snd_func_card_driver) cannot find card '0' ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_card_driver returned error: Takové zařízení neexistuje ALSA lib confmisc.c:391:(snd_func_concat) error evaluating strings ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_concat returned error: Takové zařízení neexistuje ALSA lib confmisc.c:1070:(snd_func_refer) error evaluating name ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_refer returned error: Takové zařízení neexistuje ALSA lib conf.c:3968:(snd_config_expand) Evaluate error: Takové zařízení neexistuje ALSA lib pcm.c:2143:(snd_pcm_open_noupdate) Unknown PCM default snd_pcm_open: Takové zařízení neexistuje (default) Failed to initialize plugin! /usr/lib/alsaplayer/output/libalsa_out.so failed to load NOTE: THIS IS THE NULL PLUGIN. YOU WILL NOT HEAR SOUND!!
Co teď?
Zkusíme na to jít po pořádku.
Balík alsa-utils
editovatObsahuje utility:
- alsamixer
- amidi
- amixer
- aplay
- iecset
- aconnect
- aplaymidi
- arecordmidi
- aseqdump
- aseqnet
- speaker-test
- asoundconf
V README se uvádí:
- alsaconf- the ALSA driver configurator script
- alsactl - an utility for soundcard settings management
- aplay - an utility for the playback / capture of .wav,.voc,.au files
- arecord - an utility for the capture of .wav,.voc,.au files
- amixer - a command line mixer
- alsamixer - a ncurses mixer
- amidi - a utility to send/receive sysex dumps or other MIDI data
- iecset - a utility to show/set the IEC958 status bits
Testování zvukové karty
editovatViz: SoundcardTesting
Takže se přesuneme do nějakého adresáře, kde máme nějaký zvukový soubor, dejme tomu nahravka.wav, a spustíme z příkazového řádku
aplay nahravka.wav
... a dostaneme ty samé chybové hlášky. Teď to samé zkusíme jako uživatel root. A ejhle, je možné, že nahrávka se ozve! Je to tím, že jako obyčejný uživatel nemáme oprávnění k používání audio zařízení. Stačí se přidat do skupiny audio:
usermod -a -G audio mujlogin
Alsa moduly
editovatOvěříme, jestli máme v jádře instalované všechny pořebné Alsa moduly:
# modprobe -n -v snd-ens1371 insmod /lib/modules/2.6.18-5-amd64/kernel/sound/core/seq/snd-seq-device.ko install /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; } insmod /lib/modules/2.6.18-5-amd64/kernel/drivers/input/gameport/gameport.ko install /sbin/modprobe --ignore-install snd-ens1371 && /lib/alsa/modprobe-post-install snd-ens1371 # modprobe -n -v snd-pcm-oss # modprobe -n -v snd-mixer-oss # modprobe -n -v snd-seq-oss insmod /lib/modules/2.6.18-5-amd64/kernel/sound/core/seq/snd-seq-device.ko install /sbin/modprobe --ignore-install snd-seq && { /sbin/modprobe --quiet snd-seq-midi ; /sbin/modprobe --quiet snd-seq-oss ; : ; } insmod /lib/modules/2.6.18-5-amd64/kernel/sound/core/seq/snd-seq-midi-event.ko insmod /lib/modules/2.6.18-5-amd64/kernel/sound/core/seq/oss/snd-seq-oss.ko
Z toho je vidět, že moduly snd-pcm-oss a snd-mixer-oss už instalované jsou (instalovaly by se, nevýt přepínače -n), zatímco moduly snd-ens1371 a snd-seq-oss instalované nejsou. Proč nejsou?
dpkg-reconfigure linux-sound-base
- odpovíme ALSA
Odkazy na Wikipedii
editovatExterní odkazy
editovat- Alsa project – Domovská stránka projektu
- Neoficiální Alsa wiki
- Debian Wiki: ALSA
- České články: