Guía ALSA para Gentoo Linux
1.
Introducción
¿Qué es ALSA?
ALSA es la Arquitectura Avanzada de Sonido Linux y proporciona
audio y MIDI (Interfaz Digital de Instrumentos Musicales ) al
sistema operativo Linux. ALSA es el subsistema de sonido por defecto
en la serie de núcleos 2.6, reemplazando a OSS (Sistema de Sonido
Abierto), que fue el subsistema de sonido usado en la serie de
núcleos 2.4.
Las principales características de ALSA incluyen un soporte eficiente
de todo tipo de interfaz de audio, desde tarjetas de sonido para el
consumidor hasta equipos de sonido profesionales, controladores
completamente modularizados, SMP y seguridad en los hilos,
compatibilidad con el anterior subsistema de sonido OSS y una librería
en espacio de usuario alsa-lib para hacer más sencillo el
desarrollo de aplicaciones.
ALSA en Gentoo
Históricamente, Gentoo ha ofrecido dos maneras de obtener y poner a
funcionar ALSA: el controlador del propio núcleo y el paquete
con el controlador externo alsa-driver. Ambas soluciones hacen
esencialmente lo mismo; pero esto hace que el soporte del paquete
externo sea extremadamente difícil y que consuma mucho tiempo. Los
desarrolladores a cargo en Gentoo decidieron descontinuar el soporte
para el paquete externo alsa-driver, para concentrar los
recursos en los controladores del propio núcleo Linux. Esta guía
enfocará la configuración de ALSA del controlador interno del núcleo.
Si todavía requiere el paquete alsa-driver, por favor envíe
correo a los encargados del
mantenimiento de ALSA en Gentoo con las razones por las cuales
no le sirven los controladores internos del núcleo. Asegúrese de
incluir registros detallados de los errores.
2.
Instalando ALSA
Antes de proceder
Primero debemos averiguar cuales controladores usa la tarjeta de
sonido. En la mayoría de los casos, las tarjetas de sonido (en la
tarjeta madre y demás) son basadas en PCI, por lo que lspci
ayudará a obtener la información requerida. Por favor haga emerge
sys-apps/pciutils para conseguir lspci, si acaso ya no está
instalado. En caso de tener una tarjeta de sonido USB, lsusb
del paquete sys-apps/usbutils tal vez sea de ayuda. Para
las tarjetas ISA, intente usar sys-apps/isapnptools. Además,
las siguientes páginas podría ser de ayuda a los usuarios con
tarjetas de sonido ISA:
Nota:
Para facilitar el uso/explicación en esta guía, asumiremos que el
usuario posee una tarjeta de sonido PCI.
|
Ahora, averiguemos los detalles de la tarjeta de sonido.
Listado de Código 2.1: Detalles de la tarjeta de Sonido |
# lspci -v | grep -i audio
0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)
|
Ahora sabemos que la tarjeta de sonido es una Sound Blaster Live! y
que el fabricante es Creative Labs. Buscamos en la Matriz
de tarjetas ALSA y elegimos Creative Labs de la lista. Pasaremos
a la página con el cuadro de tarjetas de Creative Labs y podemos ver
que la SB Live! usa el módulo emu10k1. Por los momentos, esta
es la información que necesitamos. Si desea obtener información
detallada, pulsamos el enlace al lado de "Details" y nos llevará a la
página específica de emu10k1.
Si tiene intenciones de usar MIDI, agregue el parámetro USE
midi al archivo /etc/make.conf antes de hacer
emerge a los paquetes ALSA. Más adelante mostraremos cómo configurar
el soporte para MIDI.
Configurando el núcleo
Nota:
Desde la edición 2005.0, Gentoo Linux usa la serie 2.6 del núcleo por
defecto. Por favor, compruebe que el núcleo sea de esta serie, ya que
este método no funcionará con un núcleo 2.4.
|
Vamos a configurar el núcleo para activar ALSA.
Importante:
Los usuarios de genkernel deberían ejecutar ahora genkernel
--menuconfig all y luego seguir las instrucciones de Opciones del núcleo para ALSA.
|
Listado de Código 2.2: Código fuente del núcleo |
# cd /usr/src/linux
# make menuconfig
|
Nota:
El ejemplo anterior asume que el enlace simbólico
/usr/src/linux apunta a las fuentes del núcleo que se
quiere usar. Hay que asegurarse de esto antes de continuar.
|
Ahora veamos algunas opciones que hay que habilitar en el núcleo 2.6
para proporcionarle soporte ALSA a nuestra tarjeta de sonido.
Por favor, nótese que para una mayor facilidad, todos los ejemplos
muestran el soporte ALSA construido de manera modular. Es aconsejable
hacer lo mismo, pues permitirá usar alsaconf, que nos
facilitará la configuración de la tarjeta de sonido. Asegúrese de
no saltar la sección Configuración de esta guía. Aún así, si
prefiere integrarlo al núcleo, asegúrese de cambiar las opciones
adecuadamente.
Listado de Código 2.3: Opciones del núcleo para 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 --->
|
Ahora que se han activado las opciones necesarias, podemos
(re)compilar el núcleo y el soporte ALSA debería funcionar al
reiniciar con el nuevo núcleo. No olvidemos actualizar la
configuración de GRUB para utilizar el núcleo recién compilado. Ahora
sigamos con las Utilidades ALSA para
ver si todo funciona como debería.
3.
Configurando/Comprobando ALSA
Utilidades ALSA
alsa-utils forma parte integral de ALSA, ya que tiene muchos
programas muy útiles, incluyendo los guiones de inicio de ALSA. Por
tanto, recomendamos encarecidamente que se instale alsa-utils.
Listado de Código 3.1: Instalar las alsa-utils |
# emerge alsa-utils
|
Nota:
Si no compilamos ALSA en forma de módulos, por favor proceda a
la sección Guión de Inicio de ALSA. Los
demás necesitan configurar ALSA. Esto se ha convertido en algo
sencillo gracias a la herramienta alsaconf, proporcionada por
el paquete alsa-utils.
|
Configuración
Versiones recientes de udev (>=udev-103) facilitan una
cierta autoconfiguración a nivel del núcleo de la tarjeta de
sonido. Si es posible, permítale al núcleo configurar automáticamente
la tarjeta de sonido. Si no, use alsaconf, como se muestra
a continuación.
Nota:
Cierre cualquier programa que podría tener acceso a la tarjeta
de sonido al ejecutar alsaconf.
|
Para configurar la tarjeta de sonido, ejecute alsaconf
desde una consola como el usuario root.
Listado de Código 3.2: Ejecutar alsaconf |
# alsaconf
|
Ahora se verá una interfaz de menús que probará automáticamente los
dispositivos e intentará buscar la tarjeta de sonido. Solicitará que
se seleccione la tarjeta de sonido desde una lista. Una vez hecho,
pedirá permiso para modificar
/etc/modules.d/alsa. Ajustará los niveles de sonido a
niveles óptimos, ejecutará update-modules e iniciará el
servicio /etc/init.d/alsasound. Una vez alsaconf
haya concluído, podremos configurar el guión de inicio de ALSA.
Guión de inicio ALSA
Ya tenemos todo configurado. Cualquiera que sea el método elegido para
instalar ALSA, necesitamos que algo cargue los módulos o inicie ALSA y
restaure los niveles de volumen al iniciar el sistema. El guión de
inicio de ALSA se encarga de todo esto y se llama
alsasound. Hay que añadirlo al nivel de ejecución "boot".
Listado de Código 3.3: Añadir ALSA al nivel de ejecución boot |
# rc-update add alsasound boot
* alsasound added to runlevel boot
* rc-update complete.
|
Hay que comprobar el archivo /etc/conf.d/alsasound para
asegurarse de que la variable SAVE_ON_STOP está como yes. Con ello, se
guardan los ajustes de volumen cuando se apaga el sistema.
El grupo audio
Antes de realizar pruebas, hay que configurar una última cosa
importante.La regla de oro en un sistema operativo *nix: No use
la cuenta root a menos que sea necesario. Esto también es válido aquí
;) Bueno, como la mayoría de las veces estamos en el sistema como un
usuario normal y queremos escuchar música o tener acceso a la tarjeta
de sonido. Para hacer esto, debemos estar en el grupo
"audio". Agregaremos los usuarios al grupo audio para que no tengan
problemas al querer acceso a los dispositivos de sonido. Usaremos
gpasswd como superusario para que esto funcione.
Listado de Código 3.4: Agregar usuarios al grupo audio |
# gpasswd -a <nombre de usuario> audio
Adding user <nombre de usuario> to group audio
|
Comprobación del volumen
Hemos terminado con todas las configuraciones y pre-requisitos, vamos
a iniciar ALSA. Si ejecutamos alsaconf, podemos evitar este
paso, ya que alsaconf ya hizo todo esto por nosotros.
Listado de Código 3.5: Iniciar el servicio |
# /etc/init.d/alsasound start
|
Ahora que todo se ha configurado, necesitamos comprobar el volumen
dado que, en algunos casos, podría encuentrarse silenciado. Para esto
usaremos alsamixer.
Listado de Código 3.6: Iniciar alsamixer |
# alsamixer
|
Importante:
Si experimenta problemas al iniciar alsamixer y obtiene errores
como: alsamixer: function snd_ctl_open failed for default: No such
file or directory, esto normalmente es un problema con udev al
configurar los dispositivos. Se ejecuta killall udevd;
udevstart para recargar las entradas en /dev y luego
se inicia alsamixer. Con esto se debería resolver el problema.
|
Así es como el mezclador ALSA debería aparecer la primera vez
que se ejecuta. Hay que prestar atención a los canales Master y PCM,
los cuales tienen una MM debajo, que significa que están
silenciados. Si intenta reproducir algo con el alsamixer así,
no podrá escuchar nada por los altavoces.
Ilustración 3.1: Ventana principal del mezclador Alsa, silenciado |
 |
Ahora debemos quitar el silenciado de los canales y ajustar los
volúmenes adecuadamente.
Aviso:
Ambos Master y PCM necesitan eliminar el silenciado y ajustarse
a volúmenes audibles si se quiere obtener algún sonido por los
altavoces.
|
-
Para moverse entre canales, se usan los cursores izquierdo y derecho. (<-
& ->)
-
Para quitar el silenciado, nos movemos a un canal, por ejemplo Master y
pulsamos la tecla m.
-
Para aumentar y reducir los niveles de volumen, usamos las teclas
arriba y abajo, respectivamente
Nota:
Hay que tener cuidado al ajustar los valores de graves (Bass) y agudos
(Treble). 50 es normalmente un buen valor para ambos. Valores
demasiado altos de graves pueden causar distorsión en altavoces
no diseñados para ello.
|
Luego el mezclador ALSA debería verse como el siguiente. Hay que
fijarse en los 00 en lugar de los MM y en los niveles de volumen para
tener los ajustes óptimos.
Ilustración 3.2: Mezclador Alsa listo para reproducir |
 |
¡Comprobación de sonido!
Finalmente algo de música. Si todo lo anterior está perfecto, se
deberíamos poder escuchar buena música ahora. Una forma rápida de
comprobarlo es usar una herramienta de línea de comandos como
media-sound/madplay. También se puede usar un programa más
conocido como mpg123. Si es fan de ogg, puede usar
ogg123 proporcionado por media-sound/vorbis-tools. Puede
usar cualquier reproductor con el que esté cómodo. Como siempre, se
hace emerge a lo que se necesite.
Listado de Código 3.7: Obtener los programas |
# emerge madplay mpg123
# emerge vorbis-tools
|
Y después a escuchar nuestra pista preferida ...
Listado de Código 3.8: Reproducir música |
# 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 y USE
Ahora podemos agregar el parámetro USE alsa al archivo
/etc/make.conf para asegurarnos que las aplicaciones que
lo requieran sean compiladas con soporte para ALSA. Algunas
arquitecturas como x86 y amd64 tienen este parámetro activado por
defecto.
¿Problemas?
Si por algún motivo no puede escuchar sonido, lo primero que debemos
hacer es comprobar los ajustes del alsamixer. El 80% de los problemas
consiste en canales silenciados o de bajo volumen. También podemos
comprobar con la aplicación de sonido del gestor de ventanas para
verificar que todos los volúmenes están configurados a un nivel
audible.
/proc es nuestro amigo, y en este caso,
/proc/asound es nuestro mejor amigo. Veamos toda la
información que nos puede proporcionar.
Listado de Código 3.9: Información en /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
|
El otro problema común al que los usuarios pueden enfrentarse es el
temible error "Unknown symbol in module". A continuación, se muestra
un ejemplo.
Listado de Código 3.10: Error: 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 ]
|
Cuando consultamos dmesg como sugerido, veremos algo así:
Listado de Código 3.11: mensaje dmesg |
# 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
|
El problema anterior ocurre al cambiar del alsa-driver externo
al ALSA del núcleo, ya que al desinstalar alsa-driver y estando
protegidos los archivos de configuración de los módulos, éstos no son
borrados y permanecen tal cual estaban. Así, al cambiar a los
controladores del núcleo, ejecutando modprobe obtendremos una
mezcla de módulos del controlador externo alsa-driver y de los
del núcleo, que causará los errores anteriores.
La solución es muy sencilla. Solo debemos borrar el directorio que
está causando el problema al desinstalar
alsa-driver. ¡Asegúrese de eliminar la versión del núcleo
correcta y no la actual!
Listado de Código 3.12: Eliminar los módulos alsa-driver |
# rm -rf /lib/modules/$(uname -r)/alsa-driver
|
Otra razón por la que aparecen mensajes de error parecidos a los
mencionados anteriormente podría ser por un archivo en
/etc/modules.d que proporciona el parámetro
device_mode cuando este no se necesita. Confirme que este sea
realmente el problema y averigüe cuál archivo es el culpable.
Listado de Código 3.13: Confirmar y buscar la cadena device_mode |
# dmesg | grep device_mode
snd: Unknown parameter `device_mode'
# grep device_mode /etc/modules.d/*
|
Normalmente se trata de un archivo llamado alsa que
contiene la línea options snd device_mode=0666. Borre esta
línea y reinicie el servicio alsasound, esto debería encargarse del
problema.
4.
Otras cosas de ALSA
Configurando el soporte MIDI
Primero revisemos si hemos activado el parámetro USE midi en el
archivo /etc/make.conf. Si no agréguelo ahora. También
hará falta re-instalar cualquier otro paquete que use el parámetro USE
midi, como alsa-lib y alsa-utils.
Si la tarjeta de sonido es de las que proporcionan un sintetizador
MIDI y se desea escuchar archivos .mid, debemos instalar
awesfx, que es básicamente un conjunto de utilidades para el
controlador AWE32. Si no disponemos de un sintetizador en hardware,
siempre se puede usar uno virtual. En la sección Sintetizador virtual se proporciona toda la
información necesaria.
Listado de Código 4.1: Instalar awesfx |
# emerge awesfx
|
Nota:
Necesitaremos copiar el catálogo de instrumentos midi, o fuente de
sonido (SF2) desde el CD de controladores de la tarjeta o desde una
instalación de Windows en /usr/share/sounds/sf2/. Por
ejemplo, el archivo de la fuente de sonido para la SBLive! de Creative
sería el 8MBGMSFX.SF2.
|
Después de copiar el archivo o los archivos de fuentes de sonido se
podrán reproducir archivos midi como se muestra. Podemos añadir el
comando asfxload a /etc/conf.d/local.start, para
cargar la fuente de sonido cada vez que se inicia el sistema.
Nota:
Las rutas /mnt mencionadas pueden no ser las
mismas en otros sistemas. Sólo son un ejemplo. Será necesario
modificarlas y adaptarlas a cada caso.
|
Listado de Código 4.2: Cargar las fuentes de sonido |
# 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
|
Ahora podemos reproducir archivos midi usando un programa como
aplaymidi. Debemos ejecutar aplaymidi -l para obtener
una lista de puertos disponibles y elegir uno para reproducir el
archivo.
Listado de Código 4.3: Reproducir 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
|
Sintetizadores virtuales
Si la tarjeta de sonido no dispone de un sintetizador en hardware, se
puede usar uno virtual como timidity++. Su instalación es muy
sencilla.
Listado de Código 4.4: Instalar timidity++ |
# emerge timidity++
|
Para reproducir sonidos con timidity, hace falta una fuente de
sonido. Existen algunos paquetes de fuentes de sonido como
timidity-freepats y timidity-eawpatches. Podemos tener
múltiples configuraciones de fuentes de sonido instaladas además de
colocar nuestras propias fuentes en
/usr/share/timidity/. Para seleccionar entre distintas
configuraciones de timidity, utilice eselect.
Listado de Código 4.5: Cambiando de configuración |
# eselect timidity list
# eselect timidity set eawpatches
|
No olvide poner timidity en el nivel de ejecución por defecto.
Listado de Código 4.6: Añadir timidity al nivel de ejecución por defecto |
# rc-update add timidity default
# /etc/init.d/timidity start
|
Ahora podemos ir a la sección Reproduciendo MIDI.
Herramientas y microcódigo (firmware)
Algunas tarjetas de sonido pueden beneficiarse de ciertas herramientas
proporcionadas por los paquetes alsa-tools y
alsa-firmware. Puede instalar cualquiera de los dos paquetes
con emerge.
Listado de Código 4.7: Instalación de ALSA Tools |
# emerge alsa-tools
|
Si no definimos la variable ALSA_TOOLS, se compilarán todas las
herramientas disponibles. Ahora se instala alsa-tools (y/o
alsa-firmware):
Listado de Código 4.8: Instalar las herramientas ALSA |
# emerge alsa-tools
|
Múltiples tarjetas de sonido
Podemos tener más de una tarjeta de sonido simultáneamente, pero solo
si hemos construido el soporte en el núcleo de manera modular. Solo
hace falta especificar cual iniciar primero en
/etc/modules.d/alsa. En este archivo, las tarjetas se
identifican por los nombres de sus controladores. El 0 corresponde a
la primera, el 1 a la segunda, etc. A continuación damos un ejemplo de
un sistema con dos tarjetas de sonido.
Listado de Código 4.9: Dos tarjetas de sonido en /etc/modules.d/alsa |
options snd-emu10k1 index=0
options snd-via82xx index=1
|
Si tiene dos tarjetas que usan el mismo controlador, póngalas en la
misma línea, separando los números con una coma. A continuación un
ejemplo de un sistema con tres tarjetas de sonido, dos de las cuales
son la mismas Intel High Definition Audio.
Listado de Código 4.10: Multiple sound cards in /etc/modules.d/alsa |
options snd-ymfpci index=0
options snd-hda-intel index=1,2
|
Plugins
Quizás desee instalar algunos plugins para activar características
adicionales. alsa-plugins es una colección de plugins útiles,
que incluye: salida PulseAudio, un convertidor de tasas de muestreo,
jack (un servidor de audio de baja latencia) y un codificador que
permite sacar audio de 6 canales a través de una conexión digital
S/PDIF (óptica o coaxial). Seleccione cual plugin instalar agregando
los correspondientes parámetros USE al archivo
/etc/portage/package.use.
Listado de Código 4.11: Instalando los alsa-plugins |
# emerge -avt alsa-plugins
|
Quisiéramos dar un gran agradecimiento a ...
Todos aquellos que contribuyeron a la versión anterior de la guía
Gentoo ALSA: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy
Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft y
Erwin.
Referencias
El contenido de este documento está registrado bajo los términos de
la licencia
Creative Commons - Reconocimiento / Compartir Igual
|