lunes, 15 de agosto de 2011

Linux: Configurar ALSA

Vist que a saber qui (i de moment, tampoc em preocupa) ha retirat el binari "alsaconf" he trobat una guia per a compilar els drivers d'alsa. Tot el que hi ha en aquesta guia està extret de http://www.rafalinux.com/?p=673 i està comprovat per mi. Comencem doncs

(Algun dia ho traduiré al català xD)

Paso 1: preparemos el sistema

Definitivamente, creo que el problema es que hay que recompilar ALSA para poder tener sonido en mi Debian Squeeze, así que lo mejor será comenzar. En primer lugar, es obligatorio instalar ciertos paquetes, pues si no, no compilaran de ninguna de las maneras.

sudo apt-get install xmlto linux-headers-2.6.32-5-486 linux-source-2.6.32
libncurses5 libncurses5-dev alsa-source module-assistant build-essential
fakeroot dh-make debhelper debconf libasound2-dev

La mayor parte de los paquetes los tendremos instalados, así que si ya lo están, es sólo cuestión de no escribirlos en la línea de comandos. Mucho cuidado con linux-headers y linux-source, ya que yo he utilizado las versiones de los paquetes a fecha de Abril de 2011, pero si vuestro sistema es diferente, habrá que cambiarlos por la versión del kernel adecuada.
También habrá que parar el demonio alsa:

sudo /etc/init.d/alsa-utils stop

Y después, desinstalar alsa:

sudo apt-get purge alsa-base

Paso 2: descargar los paquetes fuente

Habrá que entrar en la página oficial de ALSA para descargarse los siguientes paquetes:

Driver * 1.0.24
Library * 1.0.24
Utilities * 1.0.24
OSS Compat. Library * 1.0.24

Por supuesto, tendremos que variar la versión del paquete si ésta se ha actualizado (a fecha de hoy, la última es la que pongo aquí). En otras páginas he visto que el orden de compilación es el que veis aquí: primero driver, luego lib, luego utils y por último OSS.

Sin embargo a mi no me ha funcionado, con lo que sólo pondré lo que de verdad ha permitido que compilara ALSA.
Paso 3: compilar los paquetes

Pondré, uno por uno, los pasos y las órdenes que hay que dar para que compile correctamente:

tar xvf alsa-lib-1.0.15.tar.bz2
cd alsa-lib-1.0.15
./configure
make
make install

Luego vamos a por el segundo paquete:

tar xvf alsa-utils-1.0.15.tar.bz2
cd alsa-utils-1.0.15
./configure
make
make install

A mi me ocurrió un error al compilar alsa-utils:

checking form.h presence... yes
checking for form.h... yes
checking for new_panel in -lpanelw... no
configure: error: panelw library not found

Lo solucioné, como descubrí más tarde:

sudo ln -s libpanelw.so.5 /usr/lib/libpanelw.so
sudo ln -s libformw.so.5 /usr/lib/libformw.so
sudo ln -s libmenuw.so.5 /usr/lib/libmenuw.so
sudo ln -s libncursesw.so.5 /lib/libncursesw.so

Y ahora, a por el tercero:

tar xvf alsa-oss-1.0.15.tar.bz2
cd alsa-utils-1.0.15
./configure
make
make install

Paso 4: alsa-driver

En este caso, tenemos un problema, y es que, por más veces que he intentado compilar este paquete, no ha habido manera. Finalmente,tras mucho buscar, encontré una manera de hacerlo “a lo Debian”.
Alternativa 1

Este primer paso es para lo que puedan compilar correctamente alsa-driver. Es igual de sencillo que en el paso anterior:

tar xvf alsa-driver-1.0.15.tar.bz2
cd alsa-driver-1.0.15
./configure --with-kernel=/usr/src/linux-headers-2.6.32-5-486 --with-oss=yes
make
make install

Como ya he dicho antes, hay que colocar adecuadamente la versión de linux que tenemos (yo tenía esta).
Si hay errores a la hora de hacer make, mejor pasar a la siguiente alternativa.
Alternativa 2

Para esta opción, que es la que me ha servido a mi, hay que hacer lo siguiente:

sudo m-a update && m-a prepare
sudo m-a a-i -t alsa-source

Esta manera genera e instala los paquetes .deb, que encontraremos en /usr/src.
Paso 5: completando la instalación

Pues solamente queda reiniciar, y si no ha habido ningún problema, ya tendremos sonido en nuestro Debian Squeeze.

No hay comentarios: