Ghid ALSA pentru Gentoo Linux
1.
Introducere
Ce este ALSA?
ALSA, ce înseamnă Advanced Linux Sound Architecture (Arhitectura
Avansată de Sunet în Linux), oferă funcţionalitate audio şi MIDI
(Musical Instrument Digital Interface - Interfaţa Digitală pentru
Instrumente Muzicale) în sistemul de operare Linux. ALSA este subsistemul
implicit în versiunea de kernel 2.6, acesta înlocuind OSS (Open Sound
System - Sistemul Deschis pentru Sunet), ce a fost utilizat în versiunile
de kernel 2.4.
Principalele caracteristici ale ALSA includ suportul eficient pentru toate
tipurile de interfeţe audio, de la plăcile de sunet pentru consumatorii
normali, până la echipamente de sunet profesionale, driver-e modularizate,
suport SMP şi comunicarea sigură între thread-uri, compatibilitate
inversă cu OSS şi o librărie din spaţiul utilizator denumită
alsa-lib pentru a înlesni dezvoltarea de aplicaţii.
ALSA în Gentoo
Una din caracterisiticile cele mai puternice din Gentoo reprezintă oferirea
controlului maxim asupra modului în care un sistem este instalat/configurat.
ALSA din Gentoo urmează acelaşi principiu. Există două modalităţi
în care puteţi să includeţi suportul ALSA în sistem. Le vom trata în
detaliu în capitolul următor.
2.
Instalarea ALSA
Opţiuni
Atenţie:
Metodele descrise mai jos se exclud mutual. Nu puteţi avea ALSA compilată
în kernel şi utiliza şi media-sound/alsa-driver. Va returna cu
siguranţă eroare.
|
Cele două opţiuni sunt :
-
Utilizarea sistemului ALSA oferit de kernel-ul dvs. Aceasta este metoda
preferată/recomandată.
-
Utilizaţi pachetul media-sound/alsa-driver din Gentoo.
Vom arunca o privire în ambele variante înainte de a decide, în final,
pentru una din ele.
Dacă aţi utiliza ALSA din kernel, există următoarele argumente pro şi
contra:
| ALSA din Kernel |
Pro şi Contra |
| + |
Destul de stabil şi driver-ele sunt integrate în kernel. |
| + |
O singură instalare, nu există operaţii de emerge repetate. |
| - |
Poate fi o versiune puţin mai veche decât alsa-driver. |
Iar, dacă aţi utiliza alsa-driver,
| alsa-driver |
Pro şi Contra |
| + |
Ultimile driver-e publicate de Proiectul ALSA. |
| - |
Fiecare recompilare de kernel necesită o reinstalare a pachetului
alsa-driver.
|
| - |
Are nevoie ca anumite opţiuni de kernel să fie dezactivate pentru a
funcţiona corect.
|
Deci...
Principala diferenţă între utilizarea pachetului alsa-driver şi a
modulelor ALSA ce sunt integrate în kernel este că alsa-driver este,
în general, mai actualizată decât versiunea din kernel. Deoarece aceasta nu
face o diferenţă imensă, sunteţi încurajaţi să utilizaţi modulele
ALSA oferite de kernel, pentru o utilizare mai uşoară. Înainte de a
raporta orice probleme legate de sunet în Gentoo Bugzilla, vă rugăm să
încercaţi să le reproduceţi utilizând alsa-driver şi apoi să
completaţi raportul indiferent de rezultat.
Înainte de a începe
Orice metodă de instalare veţi alege, trebuie să ştiţi ce driver-e
utilizează placa dvs. de sunet. În majoritatea cazurilor, plăcile de
sunet (integrate sau nu) sunt bazate pe PCI iar lspci vă va ajuta în
descoperirea informaţiei necesare. Vă rugăm să efectuaţi emerge
sys-apps/pciutils pentru a avea comanda lspci, în cazul în care nu
îl aveţi deja instalat. În cazul în care aveţi o placă de sunet pe USB,
comanda lsusb din pachetul sys-apps/usbutils vă poate fi de
folos. Pentru plăcile ISA, încercaţi să utilizaţi
sys-apps/isapnptools. De asemenea, următoarele pagini pot ajuta
utilizatorii cu plăcile de sunet pe magistrală ISA.
Notă:
Pentru uşurinţa explicaţiei, vom presupune că utilizatorul deţine o
placă bazată pe PCI pentru tot restul acestui ghid.
|
Vom începe prin găsirea detaliilor despre placa de sunet.
Cod 2.1: Detalii despre Placa de Sunet |
# lspci -v | grep -i audio
0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)
|
Acum, cunoaştem că placa dvs. de sunet de pe maşină este modelul Sound
Blaster Live! şi producătorul acesteia este Creative Labs. Deschideţi Matricea Plăcilor de Sunet
ALSA şi selectaţi Creative Labs din căsuţa meniu. Veţi fi
direcţionaţi către pagina cu matricea Creative Labs unde veţi putea
observa că SB Live! utilizează modulul emu10k1. Aceasta este
informaţia de care avem nevoie momentan. Dacă sunteţi interesat de
informaţiile detaliate, puteţi efectua click pe link-ul de lângă textul
"Details" şi veţi fi direcţionaţi către pagina specifică
emu10k1.
Utilizarea modulelor ALSA oferite de Kernel
Dacă sunteţi o persoană care păstrează lucrurile simple, aşa cum fac
eu, atunci aceasta este soluţia ce trebuie urmată.
Notă:
Începând cu versiunea 2005.0, Gentoo Linux utilizează 2.6 ca kernel
implicit. Doar în cazul în care utilizaţi în mod special profilul 2.4,
gentoo-sources va fi un kernel 2.6 pe majoritatea arhitecturilor.
Vă rugăm să verificaţi dacă versiunea dvs. de kernel este din seria
2.6. Această metodă nu va funcţiona pe un kernel 2.4.
|
Haideţi, acum, să configurăm kernel-ul pentru a activa ALSA.
Important:
Utilizatorii genkernel ar trebui să ruleze, acum, genkernel
--menuconfig all şi apoi să urmeze instrucţiunile din Opţiuni de Kernel pentru ALSA.
|
Cod 2.2: Navigând către surse |
# cd /usr/src/linux
# make menuconfig
|
Notă:
Exemplul de mai sus presupune că link-ul simbolic /usr/src/linux
indică spre sursele kernel-ului pe care doriţi să-l utilizaţi. Vă
rugăm să vă asiguraţi de acest lucru înainte de a începe.
|
Acum, vom vedea unele din opţiunile ce vor trebui activate în kernel-ul 2.6
pentru a ne asigura suportul ALSA corect pentru placa noastră de sunet.
Vă rugăm să notaţi că, pentru o mai mare uşurinţă, toate
exemplele vor indica ALSA compilată cu module. Este recomandată această
soluţie pentru că permite utilizarea ulterioară a alsaconf ce este
foarte utilă când vă configuraţi placa de sunet. Vă rugăm să
nu omiteţi secţiunea despre Configurare
a acestui document. Dacă tot mai doriţi să aveţi opţiunile direct în
kernel, asiguraţi-vă că efectuaţi modificări configuraţiei, în
concordanţă.
Cod 2.3: Opţiuni de Kernel pentru ALSA |
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 --->
|
Acum, că toate opţiunile sunt selectate, puteţi (re)compila kernel-ul şi
suportul ALSA pentru placa dvs. de sunet ar trebui să fie funcţional odată
ce reporniţi în noul kernel. Nu uitaţi să actualizaţi configuraţia GRUB
pentru a utiliza noul kernel compilat. Puteţi continua, acum, cu Utilitare ALSA şi să vedeţi dacă totul
funcţionează aşa cum ar trebui.
Utilizarea pachetului ALSA Driver
Aşadar, aţi decis să utilizaţi soluţia alsa-driver. Să
începem, atunci. Există unele lucruri minore ce trebuie efectuate pentru a
vă asigura că numai driver-ele pentru placa dvs. de sunet sunt compilate.
Deşi acest pas nu este chiar necesar, acesta va determina necompilarea
tuturor driver-e, ce vor fi compilate altfel.
Dacă nu aveţi nici o idee despre ce driver-e necesită placa dvs. de sunet,
vă rugăm să consultaţi secţiunea lspci a
acestui ghid. Odată ce aveţi un nume de driver (emu10k1 în exemplul
nostru), editaţi /etc/make.conf şi adăugaţi o variabilă,
ALSA_CARDS.
Cod 2.4: Adăugarea ALSA_CARDS în make.conf |
ALSA_CARDS="emu10k1"
ALSA_CARDS="emu10k1 via82xx"
|
Notă:
Utilizatorii genkernel pot continua cu Instalarea alsa-driver deoarece configuraţia lor
este aceeaşi cu cea descrisă mai jos, implicit.
|
Dacă aţi compilat kernel-ul dvs. şi doriţi să utilizaţi
alsa-driver, vă rugăm să vă asiguraţi că urmaţi următorii
paşi înainte de a începe, altfel alsa-driver probabil că va
returna eroare. Următorul cod vă oferă o modalitate de a efectua aceste
verificări.
-
CONFIG_SOUND este activat. (suportul Basic Sound activat)
-
CONFIG_SOUND_PRIME nu este activat. (Suportul din kernel pentru OSS
este dezactivat)
-
CONFIG_SND nu este activat. (Suportul ALSA din kernel este
dezactivat)
-
/usr/src/linux indică kernel-ul în care doriţi să
funcţioneze ALSA.
Cod 2.5: verificări pentru .config |
# cd /usr/src/linux
# grep SOUND .config
CONFIG_SOUND=y
CONFIG_SOUND_PRIME is not set
# grep SND .config
CONFIG_SND is not set
|
Acum, tot ce trebuie să faceţi este să tastaţi cuvintele magice... şi
nu, nu este vorba de abracadabra.
Cod 2.6: Instalarea alsa-driver |
# emerge alsa-driver
|
Important:
Vă rugăm să notaţi că va trebui să rulaţi emerge alsa-driver
după fiecare (re)compilare de kernel, deoarece driver-ele precedente sunt
şterse.
|
3.
Configurarea/Testarea ALSA
Utilitare ALSA
alsa-utils formează o parte integrală cu ALSA şi conţine multe
programe ce sunt foarte utile, inclusiv script-urile de iniţializare ALSA. De
aceea, vă recomandăm foarte mult să instalaţi alsa-utils
Cod 3.1: Instalarea alsa-utils |
# emerge alsa-utils
|
Notă:
Dacă aţi activat ALSA în kernel şi nu
aţi compilat ALSA ca module, vă rugăm să continuaţi cu secţiunea
despre Script-ul de iniţializare. Restul, va
trebui să configuraţi ALSA. Aceasta se efectuează foarte uşor prin
existenţa utilitarului alsaconf oferit de alsa-utils.
|
Configurare
Notă:
Vă rugăm să închideţi orice program ce ar putea să acceseze
placa de sunet în timp ce rulează alsaconf.
|
Cea mai uşoară soluţie pentru a vă configura placa de sunet este rularea
alsaconf. Trebuie doar să tastaţi alsaconf într-o sesiune
shell a utilizatorului de sistem root.
Cod 3.2: Invocarea alsaconf |
# alsaconf
|
Acum, veţi vedea o interfaţă simplă bazată pe meniuri ce vă va proba
automat dispozitivele dvs. şi va încerca să vă găsească placa dvs.
de sunet. Vi se va cere să selectaţi placa de sunet dintr-o listă. Odată
ce efectuaţi acest pas, vi se va cere permisiunea de a efectua automat
modificările necesare în /etc/modules.d/alsa. Vă va ajusta,
apoi, nivelele de volum la valori optime şi va rula modules-update
şi porni serviciul /etc/init.d/alsasound. Odată ce
alsaconf există, puteţi începe setarea script-ului de iniţializare
ALSA.
Script-ul de Iniţializare ALSA
Suntem aproape gata cu toate setările. Oricare metodă alegeţi pentru a
instala ALSA, va trebui să vi se încarce modulele sau să vi se
iniţializeze ALSA şi să vă restaureze setările de volum când sistemul
este pornit. Script-ul de iniţializare ALSA manipulează toate aceste
operaţii pentru dvs., şi este denumit alsasound. Adăugaţi-l în
nivelul de iniţializare boot.
Cod 3.3: Adăugarea ALSA în nivelul boot |
# rc-update add alsasound boot
* alsasound added to runlevel boot
* rc-update complete.
|
Apoi, trebuie doar să verificaţi fişierul
/etc/conf.d/alsasound şi să vă asiguraţi că variabila
SAVE_ON_STOP este setată pe yes. Aceasta salvează setările plăcii dvs.
de sunet când opriţi sistemul.
Grupul Audio
Înainte de a continua cu testarea, mai există un ultim lucru
important ce trebuie setat. Regula de bază într-un sistem de operare
*nix: Nu rulaţi ca root decât dacă este necesar. Aceasta se aplică şi
aici, de asemenea ;) Cum? Ei bine, în majoritatea situaţiilor când ar trebui
să vă autentificaţi ca un utilizator de sistem veţi dori să ascultaţi
muzică sau să accesaţi placa de sunet. Pentru aceasta să se poată
întâmpla, trebui să fiţi în grupul "audio". La acest pas vom adăuga
utilizatori în grupul audio pentru ca aceştia să nu întâmpine nici o
problemă când vor dori să acceseze dispozitive de sunet. Vom utiliza
gpasswd acum, şi trebuie să fiţi autentificaţi ca root pentru ca
aceasta să funcţioneze.
Cod 3.4: Adăugarea utilizatorilor în grupul audio |
# gpasswd -a <nume-utilizator> audio
Adding user <nume-utilizator> to group audio
|
Verificarea Volumului!
Am completat toate setările şi necesităţile, deci haideţi să pornim
ALSA. Dacă aţi rulat alsaconf, puteţi omite acest pas, deoarece
alsaconf l-a efectuat deja pentru dvs.
Cod 3.5: Pornirea serviciului |
# /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 ]
# /etc/init.d/alsasound start
* Loading ALSA modules ...
* Restoring Mixer Levels ... [ ok ]
|
Acum, că acţiunile necesare au fost efectuate, trebuie să verificăm
volumul, deoarece, în anumite cazuri, este mut. Vom utiliza alsamixer
în acest scop.
Cod 3.6: Rularea alsamixer |
# alsamixer
|
Important:
Dacă aveţi probleme la pornirea alsamixer şi primiţi erori ca
alsamixer: function snd_ctl_open failed for default: No such file or directory,
aceasta se întâmplă de obicei din cauza unei probleme cu udev la setarea
dispozitivelor. Rulaţi killall udevd; udevstart pentru a reîncărca
intrările din directorul /dev şi porniţi alsamixer. Ar
trebui să rezolve problema.
|
Aşa ar putea arăta ALSA Mixer, prima data când o deschideţi. Fiţi
atenţi la canalele Master şi PCM care, amândouă, au afişat MM dedesupt.
Aceasta înseamnă că sunt mute. Dacă încercaţi să rulaţi ceva cu
alsamixer în această stare, nu veţi auzi nimic în difuzoare.
Figura 3.1: Fereastra Principală a Alsa Mixer, Mută |
 |
Acum, vom activa volumele canalelor, şi seta volumele acestora, după
necesităţi.
Atenţie:
Atât Master cât şi PCM trebuie să fie active şi setate la nivele
de volum sesizabile dacă doriţi să auziţi ceva în difuzoare.
|
-
Pentru a naviga între canale, utilizaţi tastele cu săgeţi pentru
stânga sau dreapta. (<- & ->)
-
Pentru a comuta între mut şi activ, mutaţi-vă pe respectivul canal,
spre exemplu Master, şi apăsaţi tasta m de pe tastatură.
-
Pentru a mări sau micşora nivelele de volum, utilizaţi tastele cu
săgeţi sus şi jos, respectiv.
Notă:
Atenţie la setarea valorilor pentru Bass şi Treble (Înalte). 50 este, de
obicei un număr bun pentru amândouă. Valorile extrem de mari pentru Bass
poate cauza trepidarea difuzoarelor ce nu sunt proiectate să le
interpreteze.
|
După ce sunteţi gata cu tot, ALSA Mixer ar trebui să arate similar cu cea
de mai jos. Notaţi valorile 00 în locul MM şi, de asemenea, nivelurile
volumelor, pentru setări optime.
Figura 3.2: Alsa Mixer gata de acţiune |
 |
Verficarea Sunetului!
În sfârşit. Ceva muzică. Dacă toţi paşii anteriori s-au încheiat
cu succes, ar trebui să puteţi, acum, să ascultaţi nişte muzică
bună. O modalitate rapidă de a testa, este utilizarea unui utilitar în
linie de comandă, cum este media-sound/madplay. Puteţi utiliza şi
altele ceva mai cunoscute, cum ar fi mpg123 sau xmms. Dacă
sunteţi un fan al fişierelor ogg, puteţi utiliza ogg123 oferit de
media-sound/vorbis-tools. Utilizaţi orice aplicaţie cu care vă
simţiţi confortabili. Ca de obicei, emerge este ceea ce aveţi nevoie.
Cod 3.7: Instalarea aplicaţiilor |
# emerge madplay mpg123 xmms
# emerge vorbis-tools
|
Apoi, rulaţi piesele dvs. favorite...
Cod 3.8: Rularea Muzicii |
# 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 şi USE
Puteţi adăuga indicatorul USE alsa în /etc/make.conf
pentru a vă asigura că aplicaţiile dvs. care suportă ALSA sunt compilate
cu suport pentru aceasta. Unele arhitecturi ca x86 şi amd64 au indicatorul
activat implicit.
Probleme?
Dacă, dintr-un anume motiv, nu puteţi auzi sunetul, primul lucru care
trebuie verificat sunt alsamixer. 80% din
probleme se află în canalele mute sau volumele joase. De asemenea,
verificaţi aplicaţia applet pentru sunet din Managerul dvs. de Ferestre,
anume dacă volumele sunt setate la nivele sesizabile.
/proc este prietenul dvs. Şi în acest caz,
/proc/asound este prietenul dvs. cel mai bun. Vom arunca doar o
scurtă privire la câte informaţii sunt disponibile pentru noi, în acesta.
Cod 3.9: Distracţia cu /proc/asound |
# 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
|
Cealaltă problemă comună pe care utilizatorii o întâlnesc este eroarea
"Unknown symbol in module". Un exemplu aveţi mai jos.
Cod 3.10: eroarea 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 ]
|
Iar când analizaţi textul afişat de dmesg, aşa cum vi s-a sugerat,
veţi observa cel mai probabil:
Cod 3.11: dmesg output |
# 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
|
Problema de mai sus este cauzată în momentul în care comutaţi de la
alsa-driver la driver-ele ALSA din kernel, deoarece când dezinstalaţi
alsa-driver, fişierele module sunt protejate şi sunt lăsate în
urmă. Deci, când comutaţi la driver-ele ALSA din kernel, rulând
modprobe vă va afişa o mixtură de module ale pachetului
alsa-driver şi a celor din kernel, cauzând erorile de mai sus.
Soluţia este destul de uşoară. Trebuie doar să ştergem manual
directorul problematic după ce dezinstalaţi alsa-driver.
Asiguraţi-vă că ştergeţi versiunea de kernel corectă şi nu pe cea
curentă!
Cod 3.12: Ştergerea modulelor pachetului alsa-driver |
# rm -rf /lib/modules/KERNELVER/alsa-driver
|
Un alt motiv pentru mesajele de eroare similar cu cele de mai sus, ar putea fi
un fişier din /etc/modules.d ce oferă un parametru
device_mode când acesta nu este necesar. Confirmaţi că,
într-adevăr, acesta este motivul şi găsiţi care fişier este
problematic.
Cod 3.13: Confirmarea şi căutarea device_mode |
# dmesg | grep device_mode
snd: Unknown parameter `device_mode'
# grep device_mode /etc/modules.d/*
|
De obicei este un fişier denumit alsa cu linia options snd
device_mode=0666. Ştergeţi această linie şi reporniţi serviciul
alsasound şi aceasta ar trebui să vă rezolve problema.
4.
Alte lucruri despre ALSA
Setarea suportului MIDI
Dacă placa dvs. de sunet este una dintre cele ce conţin sintetizatoare MIDI
integrate pe placă, şi doriţi să ascultaţi unele fişiere .mid, va
trebui să instalaţi awesfx, care este, în principiu, un set de
utilitare pentru manipularea driver-ului AWE32. Va trebui să-l instalăm mai
întâi. Dacă nu aveţi un sintetizator hardware, puteţi utiliza unul
virtual. Vă rugăm să consultaţi secţiunea despre Sintetizatoare Virtuale pentru mai multe informaţii.
Cod 4.1: Instalarea awesfx |
# emerge awesfx
|
Notă:
Va trebui să copiaţi fişierele SoundFont (SF2) de pe mediul CD al
driver-ului plăcii dvs. de sunet sau dintr-o instalare Windows în
/usr/share/sounds/sf2/. Spre exemplu, un fişier de font de sunet
pentru placa Creative SBLive! ar fi 8MBGMSFX.SF2.
|
După copierea fişierelor SoundFont, putem rula un fişier midi, ca în
următorul exemplu. Puteţi adăuga, de asemenea, comanda asfxload în
fişierul /etc/conf.d/local.start, pentru ca fişierul de font
de sunet să fie încărcat la fiecare pornire a sistemului.
Notă:
Căile /mnt menţionate în afişările de cod de mai jos
nu vor fi aceleaşi pe maşina dvs. Aceasta sunt doar un exemplu. Vă
rugăm să fiţi atenţi să modificaţi calea pentru a se potrivi cu
sistemul dvs.
|
Cod 4.2: Încărcarea fişierelor Soundfont |
# 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
|
Acum, puteţi rula fişiere midi utilizând un program ca aplaymidi.
Rulaţi aplaymidi -l pentru a vi se afişa o listă cu toate porturile
disponibile şi apoi alegeţi unul prin care să rulaţi fişierul.
Cod 4.3: Rularea MIDI |
# 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
|
Sintetizatoare Virtuale
Dacă placa dvs. de sunet nu deţine un sintetizator hardware, puteţi utiliza
unul virtual, cum ar fi timidity++. Instalarea este foarte uşoară.
Cod 4.4: Instalarea timidity++ |
# emerge timidity++
|
Pentru ca timidity să poată rula sunete, are nevoie de un font de sunet.
Dacă nu aveţi nici unul, instalaţi timidity-eawpatches sau
timidity-shompatches ce vă vor oferi câteva fonturi. Puteţi avea
multiple configuraţii de fonturi de sunet instalate, şi vi le puteţi stoca
pe cele proprii în /usr/share/timidity/. Pentru a comuta între
diverse configurări timidity, ar trebui să utilizaţi utilitarul
timidity-update oferit în pachetul timidity++.
Cod 4.5: Instalarea fonturilor de sunet |
# emerge timidity-eawpatches
# timidity-update -g -s eawpatches
# emerge timidity-shompatches
# timidity-update -g -s shompatches
|
Nu uitaţi să adăugaţi timidity nivelului de iniţializare default.
Cod 4.6: Adăugarea timidity nivelului de iniţializare default |
# rc-update add timidity default
# /etc/init.d/timidity start
|
Acum, puteţi să încercaţi Rularea MIDI
din fişiere.
Utilitare şi Suport Firmware
Unele plăci de sunet pot beneficia de anumite utilitare oferite de către
pachetele alsa-tools şi alsa-firmware. Dacă aveţi nevoie de
alsa-tools, asiguraţi-vă că definiţi variabila ALSA_TOOLS în
/etc/make.conf cu utilitarele de care aveţi nevoie. Spre exemplu:
Cod 4.7: Selectarea Utilitarelor ALSA în /etc/make.conf |
ALSA_TOOLS="as10k1 ac3dec"
|
Dacă variabila ALSA_TOOLS nu este setată, toate utilitarele disponibile vor
fi compilate. Acum, instalaţi pachetul(ele) alsa-tools (şi/sau
alsa-firmware):
Cod 4.8: Instalarea Utilitarelor ALSA |
# emerge alsa-tools
|
Multe mulţumiri către...
Toţi ce au contribuit la versiunea anterioară a Ghidului Gentoo ALSA:
Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P.
Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft şi Erwin.
Referinţe
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|