Gentoo Linux ALSA Útmutató
1.
Bevezető
Mi az ALSA?
Az ALSA az Advanced Linux Sound Architecture rövidítése, hang- és MIDI
(Musical Instrument Digital Interface) elérhetőséget biztosít a Linux
operációs rendszerben. A 2.6-os kernelben az ALSA az alapértelmezett
hangrendszer, ily módon leváltotta az OSS-t (Open Sound System),
amelyet a 2.4-es kernelekben használtak.
Az ALSA főbb jellemzői közé tartozik, hogy minden hangcsatolót hathatósan
támogat, az egyszerűbb felhasználói eszközöktől egészen a professzionális
többcsatornás hangeszközökig; teljesen moduláris felépítésű meghajtókat
tartalmaz; többprocesszoros és többszálú működésre képes; a régebbi OSS API-t
támogatja, és felhasználói programkönyvtárakat (alsa-lib) tartalmaz,
melyekkel egyszerűbbé válik az alkalmazások programozása.
ALSA használata Gentoo Linuxon
A Gentoo egyik legnagyobb erőssége, hogy a felhasználó maximálisan ellenőrzése
alatt tarthatja a rendszer telepítését/konfigurálását. Az ALSA Gentoo-n
történő használata ugyanezt az elvet követi. Két módon bírhatod működésre az
ALSA-t a rendszereden. A következő fejezetben közelebbről megvizsgáljuk
mindkettőt.
2.
Az ALSA telepítése
Választható lehetőségek
Figyelmeztetés:
Az alább bemutatott eljárások kölcsönösen kizárják egymást. Nem lehet
egyidejűleg a kernelbe fordított ALSA-t és a media-sound/alsa-driver
csomagot használnod. Nem fog sikerülni.
|
A két lehetőség a következő:
-
A kernelben lévő ALSA-t használod. Ez a támogatott/ajánlott módszer.
-
A Gentoo által biztosított media-sound/alsa-driver csomagot
használod.
A kernelben lévő meghajtók és a alsa-driver csomag egy kicsit elérnek
egymástól; ez mind tulajdonságokban, mind verzióban lehetséges, valamint a
felhasználás módjában is különböznek. A feltöltő fejlesztők közösek, de a két
ALSA projekt teljesen el van különítve egymástól; azaz nem teljesen azonosak.
Vedd figyelembe, hogy a két megoldás különbözik, így ha valami nem működik az
egyikkel, akkor lehet, hogy a másikkal működni fog. Próbáld ki! Most vessünk
mindkettőre vetünk egy pillantást, mielőtt bármelyik mellett döntenénk.
Ha úgy döntesz, hogy a kernelben lévő ALSA-t használod, a következő
előnyökkel és hátrányokkal számolj:
| Kernelben lévő ALSA |
Előnyök és hátrányok |
| + |
Nem kell extra csomagot emergelned; a meghajtók a kernelbe vannak
integrálva.
|
| + |
Egyszer s mindenkorra elintézve, nem kell ismételten emergelni. |
| - |
Különbözhet a verziója az alsa-driver-től. |
S ha úgy döntesz, hogy az alsa-driver-t használod:
| alsa-driver |
Előnyök és hátrányok |
| + |
Az ALSA Project lehető legfrissebb meghajtói. |
| + |
Nagyon hasznos, ha audió-drivert szeretnél fejleszteni. |
| - |
Minden kernelfordításnál újra kell emergelni az alsa-driver -t.
|
| - |
A helyes működéshez a kernel konfigurálásakor néhány opciót ki kell
kapcsolni. |
Tehát...
A fő különbség az alsa-driver és a kernelben lévő ALSA között egészen
finomak, mint az előbb említettem. Mivel már régóta alig van különbség,
bátorítunk, hogy az egyszerűbb használat végett a elősször kernelben
lévő ALSA-t használd. Mielőtt hangrendszerrel kapcsolatos hibákat jelentenél
be a Gentoo Bugzilla segítségével,
kérjük, próbáld meg azokat reprodukálni az alsa-driver használatával
is, s csak aztán küldd be a hibajelentést, bármi legyen is az eredmény.
Mielőtt hozzáfognál
A telepítésnek bármelyik módját választod is, tudnod kell, milyen meghajtókat
használ a hangkártyád. A hangkártyák (akár alaplapi, akár másféle) többnyire
PCI alapúak, tehát az lspci parancs segít kibányászni a megfelelő
információt. Ha hiányzik ez a parancs a rendszeredből, az emerge
sys-apps/pciutils segítségével tudod telepíteni. Ha USB-s hangkártyád van,
akkor az lsusb (a sys-apps/usbutils csomag része) talán
segít. ISA hangkártyák esetében próbáld ki a sys-apps/isapnptools
használatát. Az alábbi oldalak is segíthetnek az ISA alapú hangkártyák
működésre bírásában.
Megjegyzés:
Az egyszerűbb magyarázat kedvéért az útmutató további részében feltételezzük,
hogy PCI alapú hangkártyád van.
|
Most megpróbálunk további részleteket is megtudni a hangkártyáról.
Kódlista 2.1: A hangkártya részletes adatai |
# lspci -v | grep -i audio
0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)
|
Most már tudjuk, hogy a gépben lévő hangkártya egy SoundBlaster Live!, és a
kártya gyártója a Creative Labs. Menj el az
ALSA
Soundcard Matrix oldalra és válaszd ki a listából a Creative Labs
opciót. Innen eljutsz a Creative Labs mátrix oldalára, ahol látható, hogy
az SB Live! az emu10k1 modult használja. Egyelőre ennyi információra
volt szükségünk. Ha további részletek is érdekelnek, akkor kattints a
"Details" alatti linkre, ami elvisz a emu10k1 saját oldalára.
Ha szeretnél MIDI-t használni, akkor a /etc/make.conf-ban lévő
USE flagjeid közé vedd fel a midi-t, mielőtt az ALSA csomagot
emergelnéd. További segédleteket találhatsz a
MIDI támogatásnál.
A kernelben lévő ALSA használata
Ha olyan ember vagy, aki szereti egyszerűen intézni a dolgokat, akkor ez a
neked való módszer.
Megjegyzés:
A 2005.0 kiadás óta a Gentoo Linux a 2.6-os kernelt használja
alapértelmezettként. Ellenőrizd, hogy valóban 2.6-os kerneled van-e, ugyanis
az alább leírt módszer nem fog működni 2.4-es sorozatú kernellel.
|
Konfiguráljuk a kernelt az ALSA engedélyezéséhez
Fontos:
A genkernel használatakor futtasd a genkernel --menuconfig all
parancsot, majd kövesd a Kernelbeállítások
ALSA-hoz fejezetben leírtakat.
|
Kódlista 2.2: Irány a forrás |
# cd /usr/src/linux
# make menuconfig
|
Megjegyzés:
A fenti példa feltételezi, hogy a /usr/src/linux szimbolikus link
arra a kernelforrásra mutat, amit használni akarsz. Ellenőrizd ezt, mielőtt
továbblépsz.
|
Most vessünk egy pillantást azokra az opciókra, amelyeket engedélyeznünk kell
a 2.6-os kernelben ahhoz, hogy megfelelően támogassa az ALSA a hangkártyánkat.
Az egyszerűség kedvéért minden példa modulként mutatja az ALSA-t. Érdemes
követni ezt a példát, mert ez lehetővé teszi az alsaconf
használatát,ami nagyon jól jön, amikor a hangkártyát kell beállítani. Fontos,
hogy ne hagyd ki ennek a dokumentumnak a
Beállítás részét. Ha mégis szeretnél
beépített opciókat, akkor a megfelelő konfigurációs beállításokra figyelj oda.
Kódlista 2.3: A kernelben lévő ALSA-beállítások |
Device Drivers --->
Sound --->
<M> Sound card support
Open Sound System --->
< > Open Sound System (DEPRECATED)
Advanced Linux Sound Architecture --->
<M> Advanced Linux Sound Architecture
<M> Sequencer support
<M> OSS Mixer API
<M> OSS PCM (digital audio) API
Generic devices --->
ISA devices --->
<M> Gravis UltraSound Extreme
PCI devices --->
<M> Emu10k1 (SB Live!, Audigy, E-mu APS)
<M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
<M> VIA 82C686A/B, 8233/8235 AC97 Controller
USB Devices --->
|
Miután beállítottad a megfelelő opciókat, (újra) lefordíthatod a kernelt és az
újraindítás után működni kell a hangkártyád ALSA-támogatásának az új
kernelben. Ne felejtd el frissíteni a GRUB beállításait az új kernel
használata előtt. Most tovább léphetsz az
ALSA eszközök fejezetre és ellenőrizheted,
hogy minden rendben működik-e.
Az ALSA Driver csomag használata
Tehát úgy döntöttél, hogy az alsa-driver csomagot fogod használni.
Akkor vágjunk bele. Egy-két apróságot meg kell tenni ahhoz, hogy biztosan
csak a hangkártyádhoz szükséges meghajtók forduljanak le. Bár ez nem
létszükséglet, mégis jobb eltávolítani a fölösleges meghajtókat fordítás
előtt.
Ha fogalmad sincs, milyen meghajtók szükségesek a hangkártyádhoz, vess egy
pillantást az lspci részre. Ha már tudod a szükséges
meghajtó nevét (példánkban az emu10k1), szerkeszd a
/etc/make.conf fájlt és írd bele az ALSA_CARDS változót.
Kódlista 2.4: Az ALSA_CARDS hozzáadása a make.conf-hoz |
ALSA_CARDS="emu10k1"
ALSA_CARDS="emu10k1 via82xx"
|
Ha saját kernelt fordítottál és használni akarod az alsa-driver
csomagot, ellenőrizd az alábbiakat, mielőtt továbblépnél, különben az
alsa-driver valószínűleg nem fog működni. A következő kódlista az
ellenőrzés egy módját mutatja be.
Megjegyzés:
Ha genkernel-t használsz, továbbléphetsz az
alsa-driver telepítése fejezetre, mivel
így a konfigurációd alapértelmezetten szinkronban lesz az alábbi
beállításokkal.
|
-
CONFIG_SOUND is set. (Alapvető hangkártya-támogatás bekapcsolva)
-
CONFIG_SOUND_PRIME is not set. (Beépített OSS-támogatás kikapcsolva)
-
CONFIG_SND is not set. (Beépített ALSA-támogatás kikapcsolva)
-
A /usr/src/linux arra a kernelre mutat, amelyen működtetni
akarod az ALSA-t.
Kódlista 2.5: .config ellenőrzése |
# cd /usr/src/linux
# grep SOUND .config
CONFIG_SOUND=y
CONFIG_SOUND_PRIME is not set
# grep SND .config
CONFIG_SND is not set
|
Már csak be kell gépelned a varázsszót és... nem, nem az abrakadabra az.
Kódlista 2.6: Az alsa-driver telepítése |
# emerge alsa-driver
|
Fontos:
Ne feledd, hogy minden kernel(újra)fordítás után futtatnod kell az emerge
alsa-driver parancsot, mivel a korábbi verziók törlésre kerülnek. Ha ezt a
folyamatot könnyebbé szeretnéd tenni, akkor emergeld a module-rebuild
csomagot, amivel minden modult tartalmazó csomagot egyszerűen újrafordíthatsz.
Első futtatásakor a module-rebuild populate paranccsal építs fel egy
listát, amit minden kernelfordítás után újra kell emergelni. Ezek után a
module-rebuild rebuild parancs minden külső modult tartalmazó csomagot
újrafordít és telepít.
|
3.
Az ALSA beállítása és tesztelése
ALSA-eszközök
Az alsa-utils szerves részét képezi az ALSA-nak, s egy csomó igen
hasznos programot tartalmaz, beleértve az ALSA rendszerindító szkripteket.
Ezért erősen javasoljuk, hogy telepítsd az alsa-utils csomagot.
Kódlista 3.1: Az alsa-utils telepítése |
# emerge alsa-utils
|
Megjegyzés:
Ha engedélyezted az ALSA-támogatást a kernelben,
és nem modulként fordítottad az ALSA-t, akkor ugorj az
ALSA Initszkript részre. Már csak be kell
állítani az ALSA-t. Ezt igen könnyű megtenni az alsaconf eszköz
segítségével, amely az alsa-utils csomag része.
|
Beállítás
Az újabb verziójú udev (>=udev-103) egy bizonyos mértékű,
automatikus kernel-szintű konfigurációt el tud végezni. Ha lehet ezt a
folyamatot hagyd meg neki. Ha mégsem működik, akkor használd az
alsaconf-ot úgy, ahogy az alább be lesz mutatva.
Megjegyzés:
Zárj be minden futó alkalmazást, ami bárhogyan is hozzáférhet a
hangkártyához, míg az alsaconf-ot futtatod.
|
A hangkártyád beállításához írd be egy terminálba rootként: alsaconf.
Kódlista 3.2: Az alsaconf meghívása |
# alsaconf
|
Takaros kis menüs felület fogad, amely automatikusan végigpróbálja az
eszközeidet és igyekszik felismerni a hangkártyádat, majd megkér, hogy válaszd
ki a listából a megfelelőt. Ha ez kész, engedélyt kér arra, hogy automatikus
változtatásokat eszközöljön az /etc/modules.d/alsa fájlban. Ezután
optimálisra beállítja a hangerőszinteket, futtatja a update-modules
programot, és elindítja a /etc/init.d/alsasound szolgáltatást.
Amikor az alsaconf kilép, a következő lépés az ALSA rendszerindító
szkript beállítása lesz.
Az ALSA rendszerindító szkript
Már csaknem készen vagyunk. Az ALSA telepítésének bármelyik módját választottad
is, valamivel be kell töltetned a modulokat vagy inicializálni az ALSA-t és
visszaállítani a hangerő-beállításokat rendszerinduláskor. Az ALSA
rendszerindító szkript mindezt elintézi neked, a neve alsasound. Add
hozzá a rendszerindító futási szinthez.
Kódlista 3.3: Az ALSA hozzáadása a rendszerindító futási szinthez |
# rc-update add alsasound boot
* alsasound added to runlevel boot
* rc-update complete.
|
Most ellenőrizd a /etc/conf.d/alsasound fájlt és győződj meg róla,
hogy a SAVE_ON_STOP változó értéke "yes". Így rendszerleálláskor nem vesznek el
a beállításaid.
Az audio csoport
Mielőtt tesztelni kezdenénk, van még egy utolsó fontos dolog, amit be
kell állítani. Ökölszabály bármilyen *nix operációs rendszerben, hogy semmit ne
futtass rootként, hacsak nem muszáj. Ez a mostani esetre is vonatkozik ;)
Hogyan? Nos, többnyire egyszerű felhasználóként leszel bejeletkezve, és
szeretnél zenét hallgatni vagy másképp hozzáférni a hangkártyádhoz. Hogy ez
megtörténhessen, fontos, hogy tagja legyél az "audio" csoportnak. Ezen a ponton
tehát az audio csoporthoz fogunk hozzáadni felhasználókat, hogy zavartalanul
hozzáférhessenek a hangeszközökhöz. A gpasswd parancsot használjuk erre,
s mindezt rootként bejelentkezve kell végrehajtani.
Kódlista 3.4: Felhasználók hozzáadása az audio csoporthoz |
# gpasswd -a <username> audio
Adding user <username> to group audio
|
A hangerő ellenőrzése
Mostanra minden szükséges dolgot beállítottunk, indítsuk hát el az ALSA-t. Ha
lefuttattad az alsaconf parancsot, kihagyhatod ezt a lépést, mivel az
alsaconf már megtette ezeket helyetted.
Kódlista 3.5: A szolgáltatás elindítása |
# /etc/init.d/alsasound start
|
Miután minden szükséges teendőt elvégeztünk, ellenőrizni kell a hangerőt, mivel a legtöbb esetben némítva van. Erre a célra az alsamixer programot használjuk.
Kódlista 3.6: Az alsamixer indítása |
# alsamixer
|
Fontos:
Ha gond van az alsamixer indításával és olyan hibaüzeneteket kapsz,
mint pl. "alsamixer: function snd_ctl_open failed for default: No such file or
directory", akkor itt rendszerint az udev eszközbeállításaival van gond.
Futtasd a killall udevd; udevstart parancsot, ezzel újra betöltődnek a
/dev alatti bejegyzések, majd indítsd el az alsamixer-t.
Ezzel meg kell oldódnia a problémának.
|
Körülbelül így fog kinézni az ALSA Mixer az első indításkor. Figyelj a Master
és PCM csatornákra, amelyek alatt MM látható. Ez azt jelenti, hogy mindkettő
némítva van. Ha megpróbálsz bármit is lejátszani az alsamixer-rel ebben
az állapotban, semmit nem fogsz hallani a hangszórókból..
Ábra 3.1: The Alsa Mixer Main Window, Muted |
 |
Adjunk hangot a csatornákra és állítsuk be a szükséges hangerőt.
Figyelmeztetés:
Mind a Master, mind a PCM csatornára hangot kell adni és hallható hangerőt
beállítani, ha hallani szeretnél valamit a hangszórókból.
|
-
A csatornák közti mozgáshoz használd a balra-nyíl és jobbra-nyíl gombokat. (<-
& ->)
-
A némítás ki- vagy bekapcsolásához menj a megfelelő csatornára, pl. a
Masterre, és nyomd meg a m betűt a billentyűzeten.
-
A hangerő növelését vagy csökkentését a fel-nyíl és le-nyíl billentyűkkel
érheted el.
Megjegyzés:
Óvatosan állítsd be a Bass és Treble értékeit. Az 50 általában mindkettőnek
megfelelő érték. A Bass túlzottan magas értéke recsegést okoz az olyan
hangszórók esetén, amelyek nincsenek felkészítve ennek az értéknek a
kezelésére.
|
Miután mindezzel kész vagy, az ALSA Mixer valahogy így fog kinézni, mint alább.
Figyeld meg a 00 jelzéseket az MM helyett, és az optimális
hangerő-beállításokat.
Ábra 3.2: Alsa Mixer ready to roll |
 |
A hang ellenőrzése
Na végre. Jöhet egy kis zene. Ha eddig minden rendben ment, most már
hallgathatsz egy kis jó zenét. Gyors tesztelésre alkalmas lehet egy
parancssoros eszköz, mint pl. a media-sound/madplay. Használhatsz persze
valami ismertebbet is, mint pl. mpg123. Ha ogg-rajongó vagy, ajánljuk
az ogg123-at, amely része a media-sound/vorbis-tools csomagnak.
Végül is használd nyugodtan azt a lejátszót, amelyiket a legjobban ismered.
Mint mindig, az emerge lesz a barátod.
Kódlista 3.7: Szoftver-telepítés |
# emerge madplay mpg123
# emerge vorbis-tools
|
És most már végre hallgathatod a kedvenc számodat...
Kódlista 3.8: Zenelejátszás |
# 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%
|
Az ALSA és a USE
Most add hozzá az alsa use flaget a /etc/make.conf-hoz,
így az ALSA-támogatással rendelkező alkalmazások ezzel fordulnak majd le.
Néhány architektúrán, pl. x86-on és amd64-en ez a flag alapból engedélyezve
van.
Problémák adódtak?
Ha valamilyen oknál fogva nem hallatszik semmilyen hang, először is ellenőrizd
az alsamixer beállításait. A problémák 80 %-
a a némított csatornákkal vagy az alacsony hangerővel van összefüggésben. Nézd
meg az ablakkezelőd hangbeállításait is, hogy valóban hallható hangerőre van-e
állítva.
A /proc a barátod. Ez esetben pedig a /proc/asound a
legjobb barátod. Nézzük meg, mennyi információval lát el bennünket.
Kódlista 3.9: Szórakozás a /proc/asound segítségével |
# cat /proc/asound/cards
0 [Live ]: EMU10K1 - Sound Blaster Live!
Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11
# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).
# 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
|
A másik leggyakoribb probléma, amivel a felhasználók szembesülnek, a rettegett
"Unknown symbol in module" hibaüzenet. Alább erre mutatunk egy példát.
Kódlista 3.10: Unknown Symbol in module hibaüzenet |
# /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 ]
|
S ha vetsz egy pillantást a dmesg-re, valószínűleg ezt látod:
Kódlista 3.11: dmesg kimenete |
# 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
|
A fenti probléma akkor merül fel, ha alsa-driver-ről kernelben lévő
ALSA-ra váltasz, ugyanis amikor unmergeled az alsa-driver-t, a modul
fájlok konfigurációs védelem alatt vannak, s ezért megmaradnak. Így aztán,
amikor a kernelben lévő meghajtókra váltasz, a modprobe az
alsa-driver és a kernelmodulok keverékét adja, ez okozza a fenti
problémát.
A megoldás igen egyszerű: kézzel el kell távolítani a problémát okozó
könyvtárat az alsa-driver unmergelése után. Vigyázz, hogy a megfelelő
kernelverziót távolítsd el, ne az aktuálisat!
Kódlista 3.12: Az alsa-driver modulok eltávolítása |
# rm -rf /lib/modules/$(uname -r)/alsa-driver
|
A fentiekhez hasonló hibaüzenetek másik forrása lehet esetleg egy fájl a
/etc/modules.d könyvtárban, amely egy fölösleges
device_mode paramétert ad át. Győződj meg róla, hogy valóban ez a
probléma oka, és keresd meg a bűnös fájlt.
Kódlista 3.13: device_mode keresése |
# dmesg | grep device_mode
snd: Unknown parameter `device_mode'
# grep device_mode /etc/modules.d/*
|
Rendszerint egy alsa nevű fájl lesz az, amelyben szerepel egy
ilyen sor: options snd device_mode=0666. Távolítsd el ezt a sort és
indítsd újra az alsasound szolgáltatást, ez megoldja a problémát.
4.
Egyéb ALSA-val kapcsolatos dolgok
MIDI támogatás beállítása
Elsőnek ellenőrizd le, hogy a midi USE flag engedélyezve van-e a
/etc/make.conf fájlban. Ha nem, akkor most tedd meg. Utánna
emergeld újra az összes ALSA csomagot (alsa-lib, alsa-utils, and
alsa-driver), hogy érvényre jusson a beállítás.
Ha a hangkártyádon alaplapi MIDI-szintetizátor van, és szeretnél .mid fájlokat
hallgatni, telepítsd a awesfx csomagot, ami alapvetően olyan eszközök
gyűjteménye, amelyekkel az AWE32 meghajtót lehet vezérelni. Először tehát ezt
kell telepíteni. Ha nincs hardveres szintetizátorod, használhatsz virtuálisat
is. Lásd a Virtuális szintetizátorok fejezetet.
Kódlista 4.1: awesfx telepítése |
# emerge awesfx
|
Megjegyzés:
Másold át a SoundFont (SF2) fájlokat a hangkártyád telepítőcédéjéről vagy egy
Windows-telepítésből a /usr/share/sounds/sf2/ könyvtárba. Például
egy Creative SBLive! hangkártyához tartozó sf2-fájl 8MBGMSFX.SF2 néven
található.
|
Miután átmásoltad a SoundFont fájlokat, az alábbi módon játszhatsz le midi
fájlokat. Hozzáadhatod a asfxload parancsot a
/etc/conf.d/local.start-hoz, így a SoundFont minden
rendszerindításkor betöltődik.
Megjegyzés:
Az alábbi kódlistá(k)ban említett /mnt elérési utak nem
lesznek azonosak a te gépeden találhatóakkal, hiszen ezek csak példák. Ügyelj
arra, hogy a gépednek megfelelő módon írd át az elérési utat.
|
Kódlista 4.2: Soundfont betöltése |
# cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/
# cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/
# asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2
|
Most már le tudsz játszani midi fájlokat, pl. az aplaymidi
alkalmazással. Ha így futtatod: aplaymidi -l, megkapod az elérhető
portok listáját, és kiválaszthatod, melyiken akarod lejátszani a fájlt.
Kódlista 4.3: MIDI lejátszás |
# 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
# aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid
|
Virtuális szintetizátorok
Ha a hangkártyádon nincs hardveres szintetizátor, használhatsz virtuálisat is,
mint pl. a timidity++. A telepítése gyerekjáték.
Kódlista 4.4: timidity++ telepítése |
# emerge timidity++
|
A timiditynek is hangfontokra van szüksége a lejátszáshoz. Valószínűleg
szeretnél c somagot szerezni hozzájuk. A Portageban van néhány hangfont,
például a timidity-eawpatches vagy a timidity-shompatches
program, ami biztosít majd néhány hangfontot. Több hangfont-konfigurációd is
lehet, és a sajátodat beteheted a /usr/share/timidity/ alá. A
különféle timidity-beálllítások között az eselect segítségével válthasz.
Kódlista 4.5: Konfiguráció választása |
# eselect timidity list
# eselect timidity set eawpatches
|
Ne felejtsd el hozzáadni a timidity-t az alapértelmezett futási
szinthez.
Kódlista 4.6: timidity hozzáadása az alapértelmezett futási szinthez |
# rc-update add timidity default
# /etc/init.d/timidity start
|
Most kipróbálhatod mindazt, ami a MIDI
lejátszás fejezetben olvasható.
Eszközök és firmware
Bizonyos hangkártyák képesek kihasználni az alsa-tools és az
alsa-firmware csomagokban lévő eszközöket. Mindkettőt egy egyszerű
emerge paranccsal tudod feltelepíteni.
Kódlista 4.7: ALSA eszközök telepítése |
# emerge alsa-tools
|
Egyszerre több hangkártya
Ha több hangkártya van a gépedben egyidejűleg, akkor az ALSA-t modulként kell
használnod (vagy a alsa-driver csomagot használd). Elsőnek az /
etc/modules.d/alsa fájlban kell részletezned a beállításokat. A
kártyákhoz szükséges modulok innen lesznek beazonosítva. 0 jelenti az első
kártyát, 1 a másodikat, és így tovább.Itt egy példát találhatsz egy kétkártyás
rendszerre:
Kódlista 4.8: Két hangkártya a /etc/modules.d/alsa-ban |
options snd-emu10k1 index=0
options snd-via82xx index=1
|
Vagy, ha két ugyanazt a modult használó kártyád van, akkor az egy sorban is meghatározhatod, csak vesszővel el kell választani a sorszámukat. A lejjebbi példában egy olyan rendszert mutatok be, ami két Intel High Definition Audio kártyát tartalmaz.
Kódlista 4.9: Több hangkártya a /etc/modules.d/alsa-ban |
options snd-ymfpci index=0
options snd-hda-intel index=1,2
|
Pluginok
Feltelepíthetsz extra funkcionalitást biztosító pluginokat is. Az alsa-plugins gyűjteményben található például a PulseAudio output, egy példa ráta-konverter, a jack (egy alacsony elérési idejű hangszerver) és egy enkóder, ami a digitális, 6-csatornás audió S/PDIF kimenetet S/PDIF (optikai és koaxiális) elérheted. A szükséges pluginokat helyi USE flagekkel tudod kiválasztani a /etc/portage/package.use fájlban.
Kódlista 4.10: alsa-plugins telepítése |
# emerge -avt alsa-plugins
|
Nagy-nagy köszönet illeti...
Mindazokat, akik hozzájárultak a Gentoo ALSA Útmutató korábbi változatához:
Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston,
John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin.
Hivatkozások
Ez a dokumentum a Creative Commons -
Attribution / Share Alike licensz védelme alatt áll.
|