Gentoo Logo

Upozornění : Tento dokument již neplatí a není udržován.


Instalace ALSA pro Gentoo

Obsah:

1.  Úvod

Co je to ALSA?

ALSA, zkratka pro Advanced Linux Sound Architecture, je nástroj dodávající zvukové a MIDI (Musical Instrument Digital Interface) funkce do Linuxu. Od dob kernelu 2.6 je to výchozí zvukový systém nahrazující původní OSS (Open Sound System), který byl používán v kernelech řady 2.4.

Hlavní vlastností ALSA je dostatečná podpora všech typů zvukových nástrojů, od běžných zvukových karet až k profesionálnímu hudebnímu studiovému vybavení. Plně modulové ovladače, SMP a thread safety, zpětná kompatibilita s OSS a userspace knihovna alsa-lib mění vyvíjení zvukových aplikací pro Linux na procházku růžovým sadem.

ALSA v Gentoo

Jedna z hlavních výhod Gentoo je, že nechává uživatelům maximální kontrolu nad instalací a konfigurací systému. Stejně je tomu i u ALSA — Gentoo nabízí dva způsoby podpory. Na oba se podíváme detailně v následující kapitole.

2.  Instalace ALSA

Možnosti

Varování: Následující dvě metody instalace jsou naprosto neslučitelné. ALSA nemůže být zakompilována v kernelu a zároveň používat media-sound/alsa-driver.

Dvě možnosti jsou:

  1. ALSA dodávaná v kernelu (toto je doporučovaná metoda)
  2. balíček media-sound/alsa-driver

Verze z jádra a z balíčku alsa-driver se mohou lišit; je možné, že chyby nalezené v ještě nebyly opravené v druhém. Vzhledem k tomu, že jde o dvě větve téhož produktu, s tím mnoho nenaděláme. Je však dobré vědet, že pokud vám nefunguje jedna možnost, druhá možná bude.

Použijete-li ALSA z jádra, počítejte s těmito znaky:

ALSA v jádře Klady a zápory
+ ovladače jsou přímo v kernelu, takže nepotřebujete další balíček
+ jednorázové řešení — žádná další instalace při rekompilaci jádra
- může jít o trochu jiné verzi ovladačů, než obsahuje alsa-driver

Pro alsa-driver platí toto:

alsa-driver Klady a zápory
+ většinou nejnovější ovladače přímo od ALSA týmu
+ hodí se, pokud plánujete vyvíjet ovladače
- každá změna v nastavení jádra znamená rekompilaci balíčku alsa-driver
- některá nastavení jádra je nutné zakázat

Takže...

Protože rozdíly mezi těmito dvěma možnosti jsou poměrně malé, doporučujeme použití ovladačů přímo z jádra. Před hlášením chyb do Gentoo Bugzilly se je prosím pokuste reprodukovat s použitím balíčku alsa-driveru, chybu však nahlaste v každém případě.

Než budete pokračovat

Ať zvolíte jakoukoliv metodu instalace ALSA, potřebujete vědět, jaké ovladače používá vaše zvuková karta. Ve většině případů jsou zvukové karty typu PCI (ať už integrované na motherboardu či doplňkové), a proto vám pomůže příkaz lspci. Pokud jej ještě nemáte nainstalovaný, spusťte emerge sys-apps/pciutils. Pokud je vaše zvuková karta připojena přes USB, může vám pomoci lsusbsys-apps/usbutils. Pro karty ISA zkuste sys-apps/isapnptools, event. zkuste projít následující odkazy:

Poznámka: Pro jednoduchost budeme dále předpokládat, že používáte zvukovou kartu typu PCI.

Nyní o zvukové kartě zjistíme více informací.

Výpis kódu 2.1: Detaily o zvukové kartě

# lspci -v | grep -i audio
0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)

Nyní víme, že zvuková karta je Sound Blaster Live! a že ji vyrobil Creative Labs. Podívejte se tedy na ALSA Soundcard Matrix, z menu vyberte Creative Labs. Na další stránce vidíme, že SB Live! používá modul emu10k1, a to je informace kterou potřebujeme. Pokud vás zajímají detaily, můžete použít odkaz vedle "Details", který vás zavede na stránku o modulu emu10k1.

Pokud plánujete používat MIDI, před samotnou instalací ALSy přidejte midi do USE v /etc/make.conf. O samotném nastavení si povíme později.

Použití ALSA z kernelu

Pokud jste osoba se sklonem k jednoduchým a krásným řešením, tento postup je to, co hledáte.

Poznámka: Od verze 2005.0 je v Gentoo Linuxu standardní jádro ve verzi 2.6. Překontrolujte, prosím, že opravdu používáte jádro řady 2.6, neboť tato metoda se staršími řadami kernelů nebude fungovat.

Nastavme tedy jádro tak, aby byla aktivní ALSA.

Důležité: Uživatelé genkernelu by nyní měli spustit genkernel --menuconfig all a poté se řídit kapitolou nastavení kernelu pro ALSA.

Výpis kódu 2.2: Přejděmež ku konfiguraci

# cd /usr/src/linux
# make menuconfig

Poznámka: Příklad nahoře předpokládá, že symbolický odkaz /usr/src/linux ukazuje na zdrojové kódy jádra. Před pokračováním to prosím zkontrolujte.

Nyní se zaměříme na samotnou konfiguraci jádra řady 2.6 pro podporu vaší zvukové karty.

V rámci zjednodušení používají všechny příklady ALSA nakonfigurovanou jako moduly. Tento postup je doporučený, neboť vám umožní použít nástroj alsaconf, který konfiguraci zvukové karty hodně usnadní. Nepřeskočte prosím sekci konfigurace. Pokud stále chcete mít ALSA součástí kernelu, ujistěte se, že jste si odpovídajícím způsobem upravili svoji konfiguraci.

Výpis kódu 2.3: Nastavení kernelu pro ALSA

Device Drivers  --->
   Sound  --->

(musí být povoleno)
<M> Sound card support

(OSS zakážeme)
Open Sound System   --->
   < > Open Sound System (DEPRECATED)

(O položku výše je ALSA)
Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
   (vybereme, pokud chceme MIDI sekvencer/router)
   <M> Sequencer support
   (Podpora starších /dev/mixer* a /dev/dsp*, je dobré s ní počítat.)
   <M> OSS Mixer API
   <M> OSS PCM (digital audio) API

(Zde si můžete vybrat podporovaná zařízení. Většinou nebude potřeba
více než jedno, avšak máte-li v systému více zvukových karet, povolte
všechny potřebné.)

(Většinou pouze pro účely testování a vývoje, ne pro normální
uživatele. Pokud nevíte co děláte, nechte tyto volby zakázané.)
Generic devices  --->

(Pro ISA karty)
ISA devices   --->
(máte-li Gravis, vyberte následující:)
   <M> Gravis UltraSound Extreme

(přejděte o úroveň zpět a do sekce o PCI zařízeních)
PCI devices   --->
   (vybereme emu10k1 pro naši ukázkovou kartu...)
   <M> Emu10k1 (SB Live!, Audigy, E-mu APS)
   (časté jsou i katy od Intelu...)
   <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
   (...nebo od VIA)
   <M> VIA 82C686A/B, 8233/8235 AC97 Controller

(Chcete-li používat USB zvukouvo kartu, povolte ji zde:)
USB Devices   --->

Teď, když máme podporu pro ALSA zapnutou, můžeme překompilovat kernel; ALSA by měla fungovat hned, jak jej nabootujeme (nezapomeňte nastavit GRUB, aby používal nové jádro). Směle pokračujte částí o nástrojích ALSA.

Použití balíčku alsa-driver

Rozhodli jste se pro použití balíčku alsa-driver. Protože je zbytečné kompilovat všechny ovladače, nejprve nastavíme, které ovladače budeme používat. Tento krok není nezbytný, avšak šetří čas potřebný pro kompilaci.

V případě, že nevíte, jaké ovladače vaše karta potřebuje, podívejte se do kapitoly lspci. Až budete mít jméno svého ovladače (v našem příkladě to je emu10k1), nastavte v souboru /etc/make.conf proměnnou ALSA_CARDS.

Výpis kódu 2.4: Přidání ALSA_CARDS do make.conf

(pro jednu zvukovou kartu)
ALSA_CARDS="emu10k1"
(pro více karet oddělte jejich jména mezerou)
ALSA_CARDS="emu10k1 via82xx"

Kompilujete-li si jádro sami, zkontrolujte prosím před pokračováním následující, jinak alsa-driver nebude fungovat.

Poznámka: Uživatelé genkernelu mohou pokračovat instalací alsa-driveru, neboť jejich konfigurace je ve výchozím nastavení v pořádku.

  1. CONFIG_SOUND je nastaven. (Základní podpora zvuku)
  2. CONFIG_SOUND_PRIME není nastaven. (OSS je vypnuto)
  3. CONFIG_SND není nastaven. (ALSA v jádře vypnuta)
  4. /usr/src/linux ukazuje na kernel pro, který ALSA kompilujete.

Výpis kódu 2.5: Kontrola .config

(předpokládáme, že /usr/src/linux ukazuje na správné jádro)
# cd /usr/src/linux
# grep SOUND .config
(1. je v pořádku...)
CONFIG_SOUND=y
(... 2. také)
CONFIG_SOUND_PRIME is not set
# grep SND .config
(stejně jako 3. bod)
CONFIG_SND is not set

Nyní již stačí jen napsat pár magických slov a všechno bude fungovat :-).

Výpis kódu 2.6: Instalace alsa-driveru

# emerge alsa-driver

Důležité: Zapamatujte si, že příkaz emerge alsa-driver budete muset spustit po každé změně nastavení jádra nebo jeho upgradu, protože předchozí ovladače tím budou smazány. Nejjednudušší je použít balíček module-rebuild. Příkazem module-rebuild populate vytvoříte databázi externích modulů jádra, a po každé (re)kompilaci kernelu pomocí module-rebuild rebuild tyto balíčky znovu překompilujete.

3.  Nastavení a test ALSA

Nástroje ALSA

alsa-utils je nedílná součást ALSA a obsahuje mnoho užitečných programů, včetně initskriptů pro ALSA. Pro normálního uživatele je ALSA bez alsa-utils skoro nepoužitelná, proto instalaci tohoto balíčku vřele doporučujeme.

Výpis kódu 3.1: Instalace alsa-utils

# emerge alsa-utils

Poznámka: Pokud máte ALSA z jádra a ne jako moduly, můžete pokračovat částí o init skriptech, jinak je potřeba ALSA ještě nastavit. Díky nástroji alsaconf z balíčku alsa-utils je to naštěstí velmi snadné.

Konfigurace

Nové verze udev (>=udev-103) jsou dostatečne inteligentní na to, aby se zvuk nastavil více či méně samočinně, a proto můžete zbytek této sekce pravděpodobně směle přeskočit. Kdyby tomu tak nebylo, zkuste použít alsaconf, jak je zde popsáno.

Poznámka: Před spuštěním alsaconf prosím ukončete všechny programy, které by mohly ke zvukové kartě přistupovat.

Nuže, pokud vám udev z nějakého důvodu nefunguje, spusťte jako root příkaz alsaconf.

Výpis kódu 3.2: Spuštění alsaconf

# alsaconf

Uvidíte rozhraní, které automaticky projde váš hardware a zkusí v něm najít zvukovou kartu. Dá vám na výběr ze seznamu, poté se zeptá na povolení ke změně /etc/modules.d/alsa. Dále nastaví hodnoty hlasitosti, spustí update-modules a nastartuje službu /etc/init.d/alsasound. Až se alsaconf ukončí, můžete pokračovat k nastavení ALSA initskriptů.

ALSA init skripty

Skoro všechno je sice již nastaveno, ale jedna věc ještě chybí — ať už jste si vybrali jakoukoli metodu instalace, potřebujete něco, co načte potřebné moduly při startu systému. To "něco" je init skript alsasound a je potřeba ho přidat do runlevelu boot.

Výpis kódu 3.3: Přidání ALSA do runlevelu boot

# rc-update add alsasound boot
 * alsasound added to runlevel boot
 * rc-update complete.

Ještě zkontrolujte soubor /etc/conf.d/alsasound a ujistěte se, že proměnná SAVE_ON_STOP má hodnotu yes, jinak nebude nastavení směšovačů při vypnutí systému uloženo.

Skupina audio

Ještě než se vrhneme do testování ,je důležité zmínit jednu věc — na *nixových operačních systémech platí, že se pod rootem nepracuje. Jak to souvisí se zvukem? Aby mohl normální uživatel, pod kterým běžně pracujete, přehrávat hudbu a přistupovat ke zvukové kartě, musí být členem skupiny "audio". Nyní tedy uživatele do této skupiny přidáme. Použijeme příkaz gpasswd (na to je potřeba být přihlášen jako root):

Výpis kódu 3.4: Přidání uživatelů do skupiny audio

(nahraďte <uživatel> odpovídajícím uživatelským jménem)
# gpasswd -a <uživatel> audio 
Adding user <uživatel> to group audio

Hlasitost

Máme za sebou všechno nastavování, takže můžeme spustit ALSA. Pokud jste použili alsaconf, můžete následující krok přeskočit, protože alsaconf ho udělal za vás.

Výpis kódu 3.5: Nastartování služby ALSA

# /etc/init.d/alsasound start

Teď potřebujeme zkontrolovat hlasitost, protože v určitých případech zůstane nastavená jako "muted" (čili ztišená až na nulu). K tomuto účelu slouží alsamixer.

Výpis kódu 3.6: Nastartujeme alsamixer

(Otevře program pro konzoli, ukazujeme zde pouze potřebná nastavení)
# alsamixer

Důležité: Máte-li se spouštěním alsamixeru problémy a dostáváte chyby jako "alsamixer: function snd_ctl_open failed for default: No such file or directory", je pravděpodobně chyba ve vytváření souborů zařízení přes udev. Pro nové vytvoření souborů v /dev spusťte killall udevd; udevstart, pravděpodobně to problémy odstraní.

Takhle ALSA Mixer může vypadat po prvním spuštění. Všimněte si kanálů Master a PCM a značky MM pod nimi. To znamená, že jsou ztišeny (muted). V tomto případě si s mixerem můžete hrát, jak chcete, ale nic neuslyšíte.


Obrázek 3.1: Hlavní okno AlsaMixeru, ztišeno

Fig. 1: AlsaMixer — ztlumeno

Proto značku MM odstraníme a nastavíme potřebné hlasitosti.

Varování: Ztišen nesmí být ani kanál Master, ani kanál PCM.

  • Pro pohyb mezi kanály použijte šipky doprava a doleva (<- & ->).
  • Pro zapnutí/vypnutí stavu "muted" (ztišení) stiskněte na klávesnici m.
  • Pro zvýšení a snížení hlasitosti použijte šipky nahoru a dolů.

Poznámka: Dávejte pozor při nastavováni hodnot Bass a Treble. Obyčejně je dobrá hodnota 50 pro oba. Vyšší hodnoty můžou způsobit chraptění reproduktorů, které pro podobné zatížení nebyly navrženy.

Po tomto kroku by měl ALSA Mixer vypadat asi jako ten dole. Všimněte si značek 00 místo MM a nastavení hlasitostí.


Obrázek 3.2: nastavený Alsa Mixer

Fig. 2: AlsaMixer je nastaven

1 - 2 - 3 - Zkouška!

Konečně trochu muziky. Pokud všechno doteď dobře šlo, měl by váš systém být schopný přehrát nějakou pěknou hudbu. Nejsnazší cesta je použít přímo z shellu nějaký nástroj, jako je například media-sound/madplay, případně něco známějšího,třeba mpg123. Pokud patříte k fanouškům OGG Vorbis, můžete použít ogg123 z balíčku media-sound/vorbis-tools. Potřebné balíčky nainstalujete, jako ostatně vždy, příkazem emerge.

Výpis kódu 3.7: Instalace přehrávačů

(Nainstalujte to, co chcete)
# emerge madplay mpg123
(k přehrávání souborů .ogg)
# emerge vorbis-tools

Nyní si můžete pustit svou oblíbenou hudbu...

Výpis kódu 3.8: Přehrávání hudby

# 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%

ALSA a USE

Nyní můžete do /etc/make.conf přidat USE proměnnou alsa, abyste zajistili, že aplikace budou kompilovány s její podporou. Některé architektury, jako například x86 a amd64, mají tuto volbu aktivní ve výchozím nastavení.

Problémy?

Pokud z nějakého důvodu nic neslyšíte, jako první zkontrolujte alsamixer. 80% podobných problémů je způsobeno ztišenými kanály nebo příliš nízkou hlasitostí. Taky zkontrolujte zvukový applet svého správce oken a jeho nastavení hlasitostí.

/proc je váš přítel. V našem případě navíc /proc/asound ten nejlepší přítel. Podívejme se, co všechno nám nabízí.

Výpis kódu 3.9: Průzkum /proc/asound

(Především musí /proc/asound/cards obsahovat vaši kartu.)
# cat /proc/asound/cards
0 [Live           ]: EMU10K1 - Sound Blaster Live!
                     Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11

(zobrazení verze ALSA subsystému)
# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).

(detaily ALSA OSS emulace)
# 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

Další častou chybou je obávané "Unknown symbol in module" (neznámý symbol v modulu); příklad následuje.

Výpis kódu 3.10: Chyba Unknown Symbol in module

# /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 ]

Podíváte-li se podle doporučení na dmesg, uvidíte něco podobného:

Výpis kódu 3.11: dmesg output

(uvedeny jsou pouze relevantní části)
# 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

Tento problém je způsoben přechodem z balíčku alsa-driver na ALSA z kernelu, protože při odinstalaci alsa-driver jsou zkompilované moduly umístěny v adresáři, který je chráněn proti smazání ("config protect") a proto tyto nejsou odstraněny. Po přechodu se tak modprobe snaží zavést směs modulů jak z jádra, tak z balíčku alsa-driver.

Řešení je poměrně jednoduché — stačí pouze po odinstalaci balíčku alsa-driver ručně smazat problémový adresář. Ujistěte se, že mažete správné soubory, ne aktuální jádro!

Výpis kódu 3.12: Odstranění modulů alsa-driver

# rm -rf /lib/modules/$(uname -r)/alsa-driver

Další z možných příčin podobných chybových hlášení může být nějaký soubor v /etc/modules.d, který obsahuje parametr device_mode, ačkoli není potřeba. Podívejme se, zda je tomu opravdu tak, a pokud ano, v jakém souboru je chyba:

Výpis kódu 3.13: Hledání device_mode

(Zkontrolujeme dmesg)
# dmesg | grep device_mode
snd: Unknown parameter `device_mode'
(A nyní najdeme soubor, který za to může)
# grep device_mode /etc/modules.d/*

Většinou je na vině soubor alsa obsahující řádek options snd device_mode=0666. Tento řádek tedy odstraňte a restartujte službu alsasound.

4.  Ostatní

Podpora MIDI

Nejprve se ujistěte, že jste v souboru /etc/make.conf povolili USE proměnnou midi. Pokud tomu tak není, přidejte ji a nezapomeňte znovu přeložit všechny ALSA balíčky, které ji používají, například alsa-lib, alsa-utils, a alsa-driver.

V případě, že máte kartu s MIDI syntetizérem a chtěli byste ji slyšet přehrávat .mid soubory, musíte nainstalovat awesfx, balíček nástrojů pro ovládání AWE32. Pokud nemáte hardwarový syntetizér, můžete použít virtuální. Více informací najdete v sekci virtuální syntetizéry.

Výpis kódu 4.1: Instalace awesfx

# emerge awesfx

Poznámka: Do /usr/share/sounds/sf2/ budete muset zkopírovat soubor SoundFont (SF2); naleznete jej na instalačním CD dodaném se zvukovou kartou nebo v nainstalovaném systému Windows. Například SF2 soubor od Creative SBLive! se jmenuje 8MBGMSFX.SF2.

Po zkopírování souboru soundfont můžete MIDI přehrávat, viz příklad níže. Ještě je dobré přidat příkaz asfxload do skriptu /etc/conf.d/local.start, aby se SoundFont načetl při každém spuštění systému.

Poznámka: Cesty k souborům v následujícím výpisu budou na vašem stroji vypadat jinak. Toto je jen příklad, změňte jej tak, aby odpovídal vaší konfiguraci.

Výpis kódu 4.2: Načítání soundfontů

(Nejdříve zkopírujeme soundfont)
# cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/
(případně ze SoundBlaster CD)
# cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/
(a potom ho načteme)
# asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2

Teď můžeme přehrávat .mid soubory, například pomocí programu aplaymidi. Spuštěním aplaymidi -l zjistíte dostupné porty, jeden z nich si vyberte pro přehrávání.

Výpis kódu 4.3: Přehrávání MIDI

(Výpis otevřených MIDI portů)
# 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
(Vybereme si port a přehrajeme na něm .mid)
#  aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid

Virtuální Syntetizéry

V případě, že na vaší kartě chybí hardwarový syntetizér, můžete použít virtuální, například timidity++. Instalace je prostá...

Výpis kódu 4.4: Instalace timidity++

# emerge timidity++

Aby timidity hrála, potřebuje soundfont. Některé jsou již nainstalovány z minulého kroku, další můžete přidat instalací dalších balíčků z Portage, například timidity-freepats nebo timidity-eawpatches, či sami jejich nakopírováním do /usr/share/timidity/. Mezi různými konfiguracemi timidity můžete přepínat pomocí eselectu:

Výpis kódu 4.5: Změna konfigurace

# eselect timidity list
# eselect timidity set eawpatches

Nezapomeňte přidat timidity do default runlevelu.

Výpis kódu 4.6: Spouštění timidity

# rc-update add timidity default
# /etc/init.d/timidity start

Teď si konečně můžete vyzkoušet Přehrávání MIDI souborů.

Nástroje a firmware

Některým zvukovým kartám můžete povolit další funkce za pomoci balíčků alsa-tools a alsa-firmware.

Výpis kódu 4.7: Instalace ALSA Tools

# emerge alsa-tools

Více zvukových karet

ALSA podporuje i více zvukových karet v jednom počítači, jedinou podmínkou je to, aby byla zkompilovaná jako moduly jádra. Pořadí zvukových karet se nastavuje v /etc/modules.d/alsa a počítá se od nuly. Příklad pro systém se dvěma kartami:

Výpis kódu 4.8: Ukázka /etc/modules.d/alsa pro dvě karty

options snd-emu10k1 index=0
options snd-via82xx index=1

Pokud máte dvě karty, které obsluhuje stejný typ ovladače, použijte následující příklad:

Výpis kódu 4.9: /etc/modules.d/alsa pro více zvukových karet

options snd-ymfpci index=0
options snd-hda-intel index=1,2

Pluginy

ALSA je rozšířitelná pomocí pluginů. Některé z nich najdete v balíčku alsa-plugins, například plugin pro PulseAudio výstup, převodník vzorkovací frekvence, jack (nízkolatenční zvukový server), enkodér umožňující výstup šestikanálového zvuku pomocí digitálního připojení (optika či koaxiální kabel). Pluginy, které chcete nainstalovat, jednoduše zvolíte pomocí USE flagů v souboru /etc/portage/package.use.

Výpis kódu 4.10: Instalace alsa-plugins

# emerge -avt alsa-plugins

Poděkování...

Děkujeme všem, kteří přispěli do původní verze tohoto dokumentu: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft a Erwin.

Odkazy



Tisk

Aktualizace: 7. květen 2007

Původní verze tohoto dokumentu již není udržována

Shrnutí: Pomoc při instalaci a nastavení ALSA pro Linux.

Shyam Mani
Autor

Joshua Saddler
Author

Diego Pettenò
Contributor

Mirek Kratochvíl
Překladatel

Jan Kundrát
Překladatel

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.