Recientemente mi novia ha adquirido un ASUS Eee PC 1001PX. Obviamente, el Windows 7 starter que traía de serie (menuda basura…) ha durado muy poquito en el disco duro.
Dado que el chipset WiFi del cacharro en cuestión sólo está soportado por versiones del kernel a partir de la 2.6.34, he aprovechado para ponerlo a funcionar con Ubuntu Netbook Edition 10.10 (la release candidate). Bueno, realmente instalé la 10.04 y después actualicé, dado que el USB de la 10.10 no parecía querer arrancar…
El caso es que, en un principio, parecía que todo funcionaba perfectamente out of the box. Pero más tarde resultó que descubrimos un bug un tanto puñetero en el sistema de sonido. Los altavoces y la salida de auriculares del audio funcionaban perfectamente, pero el micrófono integrado no. Parece ser un bug conocido del subsistema ALSA, y aunque existen mil soluciones, ninguna parece terminar de funcionar del todo. Allá va la solución que he implementado, una combinación lineal de varias que he leído por Internet.
Lo primero es modificar el fichero «/etc/modprobe.d/alsa-base.conf» para añadir al final lo siguiente:
# Hack for Eee PC 1001PX ALSA bug
options snd-hda-intel model=fujitsu
A continuación, o bien reiniciáis, o bien recargáis el módulo del kernel.
$ sudo rmmod snd_hda_intel
$ sudo modprobe snd_hda_intel
Ahora debéis descargar la herramienta hda-verb: http://kernel.org/pub/linux/kernel/people/tiwai/misc/hda-verb/hda-verb-0.3.tar.gz
Tras descargarla al home, debemos descomprimirla, compilarla, y trasladar el binario generado a algún lugar incluido en el path del sistema.
$ tar xfz hda-verb-0.3.tar.gz
$ cd hda-verb*
$ make
$ sudo cp hda-verb /usr/bin
Por último, debéis cargar ciertos comandos en el dispositivo. Para evitar hacerlo cada vez que iniciamos el sistema, vamos a incluirlos en algún script que se ejecute con cada arranque, como por ejemplo «/etc/rc.local«. Sí, un poco bestia, pero es lo que hay. Las líneas a añadir son las siguientes:
/usr/bin/hda-verb /dev/snd/hwC0D0 0x1a SET_CONNECT_SEL 0x0d
/usr/bin/hda-verb /dev/snd/hwC0D0 0x1a SET_PIN_WIDGET_CONTROL 0xe0
/usr/bin/hda-verb /dev/snd/hwC0D0 0x1a 0x3a0 0x00
/usr/bin/hda-verb /dev/snd/hwC0D0 0x1a 0x390 0x00
Tras reiniciar el sistema, todo debería estar funcionando… más o menos. El micrófono funciona, los altavoces también, y la salida de audio también. El problema es que los altavoces y la salida de audio funcionan a la vez. Para «apañarlo«, debéis ir a las preferencias de audio, y en la pestaña de salida, seleccionar los auriculares para que no se escuchen los altavoces. Si queréis volver a escuchar por los altavoces, cambiad de nuevo el control en consecuencia.
Intentaré echar un vistazo a este último detalle y buscar una solución; pero a cambio de esa mínima molestia, el sistema de sonido completo funcionará.
Read Full Post »