Gentoo Logo

Konfiguracja sterowników ALSA w Gentoo

Spis treści:

1.  Wprowadzenie

Czym jest ALSA?

ALSA (Advanced Linux Sound Architecture) to system zapewniający obsługę audio i MIDI (Musical Instrument Digital Interface) w systemach opartych na jądrze Linux. Począwszy od jąder z serii 2.6, ALSA stała się domyślnym systemem dźwiękowym, wypierając nieco już przestarzały OSS (Open Sound System) używany w jądrach 2.4.

Główne zalety systemu ALSA to: wydajna obsługa wszystkich typów kart dźwiękowych, poczynając od najtańszego sprzętu, a kończąc na w pełni profesjonalnych rozwiązaniach, modularna budowa sterowników, bezpieczeństwo wątków i współpraca z SMP oraz pełna wsteczna kompatybilność z OSS, a także biblioteki alsa-lib znacznie ułatwiające tworzenie nowego oprogramowania.

ALSA w Gentoo

Dawniej w Gentoo były dwa sposoby instalacji sterowników ALSA. Można było użyć modułów wbudowanych w jądro lub zainstalować zewnętrzny pakiet o nazwie alsa-driver. Obie metody dostarczały tego samego sterownika, a zarządzanie zewnętrznym pakietem kosztowało mnóstwo czasu i pracy. W związku z tym opiekunowie sterowników ALSA w Gentoo zrezygnowali z pakietu alsa-driver koncentrując swoją uwagę i zasoby na pracy nad sterownikami dostarczanymi wraz z jądrem. To dlatego obecnie ten tekst zawiera jedynie informacje na temat konfiguracji sterowników dostarczanych wraz z jądrem.

Użytkownicy, którzy uważają, że muszą mieć dostęp do pakietu alsa-driver, gdyż sterowniki z jądra u nich nie działają, powinni przesłać dokładny opis problemu do zespołu Gentoo/ALSA.

2.  Instalacja sterowników ALSA

Przygotowania

Do przejścia przez cały proces konieczna będzie znajomość modelu używanej karty dźwiękowej, aby móc wybrać dla niej odpowiedni sterownik. W większości przypadków karty dźwiękowe (nieważne czy zintegrowane na płycie głównej czy nie) to urządzenia PCI, dzięki czemu można skorzystać z programu lspci do poznania ich nazwy. Jeśli nie ma takiego polecenia w systemie, należy wykonać emerge sys-apps/pciutils, aby stało się ono dostępne. W przypadku karty na złączu USB pomocne może być polecenie lsusb z pakietu sys-apps/usbutils. Dla kart ISA warto użyć pakietu sys-apps/isapnptools. Poniżej znajduje się lista stron, na których można znaleźć informacje o kartach ISA:

Uwaga: Dla uproszczenia tego tekstu zakładamy, że użytkownik posiada kartę PCI.

Pora zatem dowiedzieć się jaką właściwie kartę dźwiękową posiadamy.

Listing 2.1: Szczegóły dotyczące karty dźwiękowej

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

Teraz wiemy, że karta dźwiękowa w komputerze to Sound Blaster Live! i że jej producentem jest firma Creative Labs. Należy się zatem udać na stronę ALSA Soundcard Matrix i wybrać Creative Labs z listy na dole. Na podstronie poświęconej tej firmie, jest napisane, że tę kartę obsługuje sterownik emu10k1. To jest właśnie poszukiwana informacja. Aby poznać szczegóły, należy kliknąć na nazwę sterownika i poczytać o nim na jego podstronie.

Jeśli zamierza się korzystać z MIDI, należy dodać flagę USE midi w pliku /etc/make.conf przed instalacją jakichkolwiek pakietów związanych z ALSA. W dalszej części tekstu problem MIDI zostanie omówiony bardziej szczegółowo.

Konfiguracja jądra

Uwaga: Od wydania 2005.0 Gentoo korzysta domyślnie z jądra serii 2.6. Należy upewnić się, że używane jądro to na pewno 2.6. Opisana poniżej metoda nie zadziała na jądrze z serii 2.4.

Włączmy i skonfigurujmy sterowniki ALSA:

Ważne: Użytkownicy programu genkernel muszą wpisać polecenie genkernel --menuconfig all oraz postępować zgodnie ze wskazówkami z części Sterowniki ALSA w jądrze.

Listing 2.2: Przechodzenie do konfiguracji kernela

# cd /usr/src/linux
# make menuconfig

Uwaga: Dowiązanie /usr/src/linux musi prowadzić do źródeł kernela, którego użycie jest planowane. Warto sprawdzić czy to prawda przez rozpoczęciem jakichkolwiek operacji opisanych poniżej.

Poniżej znajduje się przegląd dostępnych w jądrach serii 2.6 opcji konfiguracyjnych zapewniających obsługę określonej karty dźwiękowej.

Warto zwrócić uwagę, że dla uproszczenia we wszystkich przykładach budowane są sterowniki w postaci modułów. Sugeruje się, aby postąpić podobnie oraz nie zapominać o czynnościach opisanych w akapicie Konfiguracja tego tekstu. Dla sterowników wbudowanych na stałe w jądro trzeba dokonać odpowiedniej korekty w pewnych punktach konfiguracji.

Listing 2.3: Sterowniki ALSA w jądrze

Device Drivers  --->
   Sound  --->

(To trzeba włączyć)
<M> Sound card support

(Tej opcji nie należy włączać)
Open Sound System   --->
   < > Open Sound System (DEPRECATED)

(Menu wyżej znajdują się opcje ALSA)
Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
   (Włącza obsługę MIDI)
   <M> Sequencer support
(Obsługa /dev/mixer* i /dev/dsp* w starym stylu)
   <M> OSS Mixer API
   <M> OSS PCM (digital audio) API

(Teraz należy wybrać urządzenia, dla których zostanie zbudowany
sterownik. W większości przypadków jest to tylko jedna karta. Jeśli jednak jest
ich więcej należy zaznaczyć sterowniki dla każdej z posiadanej)

(Nie jest to konieczne dla zwykłych użytkowników, a przeznaczone
głównie dla doświadczonych osób do różnego rodzaju testów)
Generic devices  --->

(Dla kart dźwiękowych na slocie ISA)
ISA devices   --->
(Dla posiadaczy karty Gravis)
   <M> Gravis UltraSound Extreme

(Należy przejść poziom wyżej, do urządzeń PCI. Większość kart
dźwiękowych obecnie to właśnie karty PCI)
PCI devices   --->
   (Należy wybrać sterownik emu10k1 dla przykładowej karty)
   <M> Emu10k1 (SB Live!, Audigy, E-mu APS)
   (Dla karty Intela)
   <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
   (Dla karty VIA)
   <M> VIA 82C686A/B, 8233/8235 AC97 Controller

(Poziom wyżej znajduje się podobne menu do wyboru kart USB
USB Devices   --->

Po skonfigurowaniu wszystkich opcji należy ponownie zbudować jądro i uruchomić z niego system tak, aby obsługa ALSA stała się dostępna. Po wszystkim należy zaktualizować konfigurację GRUB-a. Kolejny etap konfiguracji to Narzędzia do pracy z systemem ALSA.

3.  Konfigurowanie i testowanie ALSA

Narzędzia do pracy z systemem ALSA

alsa-utils to pakiet zawierający wiele bardzo użytecznych programów oraz skrypty startowe dla ALSA. Jest on integralną częścią tego systemu i dlatego bardzo mocno sugeruje się zainstalowanie go.

Listing 3.1: Instalowanie alsa-utils

# emerge alsa-utils

Uwaga: Jeśli sterowniki ALSA nie zostały dodane do jądra jako moduły lecz wbudowane na stałe, w tym momencie można przejść wprost do konfiguracji skryptu startowego ALSA. Jeśli natomiast sterowniki te są modułami, trzeba dokonać paru drobnych zmian w konfiguracji systemu. Będzie to seria prostych czynności przy użyciu programu alsaconf z pakietu alsa-utils.

Konfiguracja

Nowsze wersje udev (>=udev-103) pozwalają na pewien stopień konfiguracji karty poprzez jądro. Jeśli to możliwe, należy pozwolić kernelowi na konfigurację karty. Jeśli to nie zadziała, należy skorzystać z alsaconf tak jak opisujemy to poniżej.

Uwaga: Przed uruchomieniem alsaconf należy zamknąć wszystkie programy, które mogą korzystać z karty dźwiękowej w trakcie jej konfiguracji.

Jednym z programów służących do konfiguracji karty jest alsaconf. Wpisujemy zatem to polecenie z konta roota.

Listing 3.2: Uruchamianie alsaconf

# alsaconf

Pojawi się menu, które automatycznie sprawdzi wszystkie urządzenia w komputerze, spróbuje uzyskać informację o karcie dźwiękowej i poprosi o wybranie modelu z listy. Potem zapyta o pozwolenie na automatyczną zmianę pliku /etc/modules.d/alsa, a później przystąpi do dostosowywania poziomów głośności w celu wybrania optymalnych do danej sytuacji. Na koniec uruchomi polecenie update-modules i wystartuje skrypt /etc/init.d/alsasound. Kiedy alsaconf zakończy pracę będzie można przystąpić do konfiguracji skryptu startowego.

Skrypt startowy ALSA

To już niemal wszystko. Niezależnie od tego, którą metodę instalowania sterowników wybrano, będzie potrzebne coś co je załaduje oraz odtworzy poziom głośności przy każdym uruchomieniu komputera. Zajmuje się tym skrypt startowy o nazwie alsasound. Należy go dodać do poziomu uruchomieniowego o nazwie "boot".

Listing 3.3: Dodawanie ALSA do poziomu boot

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

Następnie należy sprawdzić plik /etc/conf.d/alsasound i upewnić się, że zmienna SAVE_ON_STOP ma wartość "yes". Dzięki temu ustawienia głośności będą zapisywane przed wyłączeniem komputera.

Grupa audio

Przed przystąpieniem do testowania nowej konfiguracji należy ustawić jeszcze jedną, ważną rzecz. Do głównych reguł w systemach UNIX-owych należy ta, aby nigdy nie uruchamiać programu z prawami roota jeśli nie jest to absolutnie konieczne. Tę regułę można zastosować również w tym przypadku. Dlaczego? Przez większość czasu spędzanego przy komputerze użytkownik jest zalogowany na własne konto, a jeśli chce posłuchać muzyki, musi mieć dostęp do odpowiednich urządzeń. Aby taki dostęp uzyskać, użytkownik musi być członkiem grupy "audio". Należy więc dodać użytkownika do tej grupy, dzięki czemu nie będzie miał problemów z korzystaniem z urządzeń dźwiękowych. Do zmiany przynależności użytkownika do grup używamy programu gpasswd. Do dokonania zmiany potrzebne są przywileje roota.

Listing 3.4: Dodawanie użytkownika do grupy audio

(Należy zastąpić słowo <username> odpowiednią nazwą użytkownika)
# gpasswd -a <username> audio 
Adding user <username> to group audio

Sprawdzanie głośności

Gdy wszystkie przygotowania zostały zakończone, można przystąpić do uruchomienia ALSA. Użytkownicy alsaconf mogą pominąć ten krok, program uruchomił dźwięk za nich.

Listing 3.5: Uruchamianie usługi

# /etc/init.d/alsasound start

Po zakończeniu etapu przygotowań można sprawdzić czy przypadkiem dźwięk nie jest całkowicie wyciszony. Do tego celu można użyć programu alsamixer.

Listing 3.6: Uruchamianie alsamixer

(Otwiera konsolowy program, który pokazuje tylko wymagane ustawienia
# alsamixer

Oto jak mixer ALSA może wyglądać przy pierwszym uruchomieniu. Należy zwrócić uwagę, że pod kanałami Master i PCM znajdują się literki MM. Oznacza to, że są one wyciszone. To właśnie przez to z głośników nie wydobywa się dźwięk.


Ilustracja 3.1: Główne okno Alsa Mixer, sytuacja przy wyciszonym dźwięku

Fig. 1: Wyciszony ALSA mixer

Trzeba zatem włączyć dźwięk w obu kanałach i ustawić odpowiednio jego głośność.

Ostrzeżenie: Aby usłyszeć jakikolwiek dźwięk, należy włączyć oba kanały - PCM i Master i odpowiednio ustawić głośność.

  • Do przemieszczania się pomiędzy kanałami służą klawisze strzałek w prawo i w lewo
  • Aby zmienić ustawienie wyciszenia należy wybrać jakiś kanał, na przykład Master i wcisnąć klawisz m
  • Do zmieniania poziomu głośności służą strzałki w górę i w dół

Uwaga: Należy uważać przy zmianie wartości Bass i Treble. 50 to w większości przypadków odpowiednie rozwiązanie. Zbyt wysokie ustawienia mogą skutkować irytującymi zniekształceniami dźwięku.

Po ustawieniu ALSA Mixer powinien wyglądać mniej więcej tak jak ten poniżej. Warto zwrócić uwagę na wartość 00 w miejscu MM ze zdjęcia wyżej oraz na dobrane odpowiednie ustawienia głośności.


Ilustracja 3.2: Alsa Mixer po dokonaniu zmian

Fig. 2: AlsaMixer po zmianach

Sprawdzanie dźwięku

Jeśli wszystko poszło dobrze, można wreszcie posłuchać muzyki. Nada się do tego zarówno jakiś mały i prosty program konsolowy, jak na przykład media-sound/madplay lub coś znacznie popularniejszego i bardziej skomplikowanego jak mpg123. Fani formatu ogg mogą użyć programu ogg123 z pakietu media-sound/vorbis-tools. Można użyć do tego dowolnego programu, do jego instalacji jak zwykle używamy polecenia emerge.

Listing 3.7: Instalowanie programów

(Instalowanie programu do odtwarzania plików .mp3)
# emerge madplay mpg123
(Instalowanie programu do odtwarzania plików .ogg)
# emerge vorbis-tools

Później można odtworzyć ulubioną piosenkę:

Listing 3.8: Odtwarzanie muzyki

# madplay -v ~/mp3/Boys\ -\ Jesteś\ Szalona.mp3
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
Title: Jesteś Szalona
Artist: Boys
Album:
Year:
Genre: Disco Polo
00:04:19 Layer III, 160 kbps, 44100 Hz, joint stereo (MS), no CRC

# ogg123 ~/mp3/Boys\ -\ Jesteś\ Szalona.ogg
Audio Device:   Advanced Linux Sound Architecture (ALSA) output

Playing: Boys - Jesteś Szalona.ogg
Ogg Vorbis stream: 2 channel, 44100 Hz
Genre: Disco Polo
Transcoded: mp3;160
Title: Jesteś Szalona
Artist: Boys
Date:
Album:
Time: 00:11.31 [04:28.75] of 04:40.06  (200.6 kbps)  Output Buffer  96.9%

ALSA i flagi USE

Warto dodać flagę alsa do listy flag USE w pliku /etc/make.conf, aby upewnić się, że wszystkie programy mogące współpracować z ALSA zostaną zbudowane z jej obsługą. Niektóre architektury jak x86 czy amd64 mają tę flagę włączoną domyślnie.

Problemy

Jeśli z jakichś powodów nie słychać dźwięku, po pierwsze należy sprawdzić ustawienia alsamixer. Większość problemów z dźwiękiem jest spowodowana jego wyciszeniem lub niedostatecznym zwiększeniem głośności. Warto również sprawdzić pod kątem tych samych niepożądanych ustawień aplikację zarządzającą poziomem głośności w używanym menedżerze okien.

System plików /proc również może okazać się tu przydatny, zwłaszcza jego podkatalog - /proc/asound. Poniżej znajdują się pokrótce omówione zawarte tam pozycje.

Listing 3.9: Informacje z /proc/asound

(Jeśli w pliku /proc/asound/cards znajduje się właściwa nazwa karty to
ALSA sobie z nią doskonale radzi)
# cat /proc/asound/cards
0 [Live           ]: EMU10K1 - Sound Blaster Live!
                     Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11

(To polecenie wyświetli używaną wersję ALSA)
# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).

(Szczegóły emulacji OSS przez ALSA)
# 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

Kolejnym bardzo częstym problemem jest pojawiająca się informacja o nieznanym symbolu w module - "Unknown symbol in module".

Listing 3.10: Nieznany symbol w 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 ]

Po uważnym przyjrzeniu się dmesg, da się znaleźć takie wpisy:

Listing 3.11: Wyjście dmesg

(Zbędne fragmenty wyniku poniższego polecenia zostały wycięte)
# 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

Taki problem pojawia się po przejściu ze sterowników z pakietu alsa-driver na te wbudowane w jądro, ponieważ mimo usunięcia alsa-driver, moduły wciąż pozostają w systemie dzięki ochronie plików konfiguracyjnych. Zatem mimo przejścia na moduły wbudowane w jądro polecenie modprobe wciąż będzie ładowało mieszankę modułów z pakietu i z jądra.

Rozwiązanie jest proste, należy usunąć cały katalog z modułami tuż po odinstalowaniu pakietu alsa-driver. Warto się upewnić, że wersja jądra z poniższego wpisu jest prawidłowa.

Listing 3.12: Usuwanie modułów alsa-driver

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

Jednym z częstych powodów pojawiania się komunikatów błędu podobnych do tych podanych powyżej może być definiowanie parametru device_mode w plikach z katalogu /etc/modules.d, gdy nie jest to konieczne. Należy przeszukać wszystkie pliki w tym katalogu i znaleźć ten, który jest winowajcą.

Listing 3.13: Poszukiwania device_mode

(Sprawdzenie w dmesg
# dmesg | grep device_mode
snd: Unknown parameter `device_mode'
(Poszukiwanie źródła błędu)
# grep device_mode /etc/modules.d/*

Zwykle wynikiem tego poszukiwania będzie plik o nazwie alsa wewnątrz którego znajdować będzie się linia options snd device_mode=0666. Należy ją usunąć i ponownie uruchomić skrypt startowy alsasound.

4.  Dodatkowe funkcje ALSA

Obsługa MIDI

Przede wszystkim należy sprawdzić czy flaga USE midi jest włączona w pliku /etc/make.conf. Jeśli nie jest, należy ją włączyć. Konieczne będzie przeinstalowanie wszystkich pakietów, które jej używają, takich jak alsa-lib i alsa-utils.

Jeśli karta dźwiękowa posiada syntezator MIDI i jeśli chce się korzystać z dźwięków zapisanych w formacie .mid, konieczne będzie wykorzystanie zestawu programów o nazwie awesfx kontrolującego sterowniki AWE32. Po pierwsze należy go zainstalować. Jeśli karta nie posiada sprzętowego syntezatora można użyć wirtualnego. Więcej informacji o nim znajduje się w akapicie wirtualne syntezatory.

Listing 4.1: Instalowanie awesfx

# emerge awesfx

Uwaga: Potrzebne będzie też skopiowanie plików SoundFont (SF2) z płyty ze sterownikami do karty dźwiękowej do katalogu /usr/share/sounds/sf2/. Przykładowa nazwa pliku SoundFont dla karty Creative SBLive! to 8MBGMSFX.SF2.

Po przekopiowaniu plików SoundFont można odtwarzać pliki tak jak w poniższym przykładzie. Warto dodać polecenie asfxload do skryptu /etc/conf.d/local.start tak, aby pliki te były wczytywane przy każdym uruchomieniu komputera.

Uwaga: Ścieżki do katalogów w /mnt niemal na pewno będą inne, podajemy tu tylko przykład, wszystkie polecenia należy odpowiednio skorygować.

Listing 4.2: Przegrywanie plików soundfont

(Kopiowanie pliku)
# cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/
(Jest też na płycie SoundBlastera)
# cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/
(A następnie należy go wczytać)
# asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2

Od tej pory można odtwarzać midi za pomocą programów takich jak na przykład aplaymidi. Polecenie aplaymidi -l wyświetli listę dostępnych portów, należy wybrać jeden do odtworzenia określonego pliku.

Listing 4.3: Odtwarzanie MIDI

(Sprawdzanie otwartych portów)
# 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
(Wybieranie portu i odtwarzanie pliku)
#  aplaymidi --port=65:0 ~/mid/jestes_szalona.mid

Wirtualne syntezatory

Jeśli karta nie posiada sprzętowego syntezatora, potrzebny będzie wirtualny, na przykład timidity++. Jego instalacja to prosta sprawa.

Listing 4.4: Instalowanie timidity++

# emerge timidity++

Aby timidity odgrywało dźwięki również potrzebny jest soundfont. Na szczęście kilka zostaje zainstalowanych przez ebuild. W Portage znajduje się też kilka innych pakietów, takich jak timidity-freepats czy timidity-eawpatches, które to zawierają odpowiednie pliki. Można posiadać kilka wersji soundfontów, a własną konfigurację umieszcza się w pliku /usr/share/timidity/. Zmiany pomiędzy jednym, a drugim ustawieniem dla timidity dokonuje się za pomocą polecenia eselect.

Listing 4.5: Zmiana konfiguracji

# eselect timidity list
# eselect timidity set eawpatches

Warto dodać skrypt timidity do domyślnego poziomu uruchomieniowego.

Listing 4.6: Dodawanie timidity do domyślnego poziomu uruchomieniowego

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

Od tej pory można już odtwarzać pliki MIDI.

Dodatkowe narzędzia i firmware

Niektóre karty mogą skorzystać dzięki instalacji narzędzi z pakietów alsa-tools i alsa-firmware. Instaluje się je tradycyjnie, za pomocą programu emerge.

Listing 4.7: Instalowanie narzędzi ALSA

# emerge alsa-tools

Kilka kart dźwiękowych

W systemie może znajdować się kilka kart dźwiękowych, pod warunkiem że ich sterowniki ALSA zostały dodane do jądra jako moduły. Wyboru tego, która z nich będzie uruchamiana jako pierwsza dokonuje się w pliku /etc/modules.d/alsa. Karty są tam wymienione jako nazwy sterowników. 0 to pierwsza karta, 1 to druga i tak dalej. Oto przykład dla systemu z dwiema kartami:

Listing 4.8: Dwie karty dźwiękowe w pliku /etc/modules.d/alsa

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

Jeśli posiada się dwie identyczne karty, podaje się je w jednej linii, oddzielając wpisy przecinkami. Poniżej przykład dla systemu z trzema kartami, z których dwie to karty Intel High Definition Audio.

Listing 4.9: Trzy karty dźwiękowe w pliku /etc/modules.d/alsa

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

Dodatki

Istnieje zestaw dodatków do ALSA, które zwiększają możliwości tego pakietu. Pakiet alsa-plugins zawiera dodatki takie jak wyjście Pulse Audio, konwerter częstotliwości, jack (serwer audio) oraz encoder pozwalający na przesyłanie dźwięku sześciokanałowego poprzez cyfrowy kanał S/PDIF. Wybrane dodatki instaluje się za pomocą odpowiednich flag USE.

Listing 4.10: Instalacja alsa-plugins

# emerge -avt alsa-plugins

Podziękowania

Dziękujemy wszystkim, którzy tworzyli poprzednią wersję tego tekstu, osoby te to kolejno: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin.

Adresy stron związanych z tematem



Drukuj

Zaktualizowano 26 stycznia 2009

Oryginalna wersja dokumentu nie jest już aktualizowana

Podsumowanie: Opis procesu konfiguracji sterowników dźwięku ALSA w Gentoo.

Shyam Mani
Autor

Łukasz Damentko
Tłumaczenie

Donate to support our development efforts.

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