miércoles, 4 de marzo de 2009

Problemas con adaptador USB wireless en Linux

El objeto de esta entrada es indicar una solución muy sencilla que puede ser útil para resolver problemas con algunos adaptadores inalámbricos USB en Linux.

En mi caso particular, utilizo un adaptador Netgear MA111 (v1), basado en el chipset prism2. Este dispositivo, aunque tiene algo más de cinco años de antigüedad, de soportar únicamente velocidades de 11Mbps (802.11b) y de ser un dispositivo USB1.1, es perfectamente funcional y cumple perfectamente con su cometido.



Utilizo el adaptador en un equipo con una distribución Ubuntu 8.10 de 64 bits. Gracias al enorme esfuerzo de los desarrolladores y la gran cantidad de harware soportado, el adaptador funciona sin realizar ningún tipo de configuración, tanto arrancando con un live-usb como con la distribución recien instalada. El único requisito es introducir la clave de la red, y a funcionar.

El problema aparece al cabo de unos minutos navegando: Se interrumpe la conexión y no es posible volver a establecerla. Tras algunos intentos (deshabilitar y habilitar de nuevo la red, quitar y poner el adaptador, descargar y cargar - rmmod/insmod/modprobe - ) los módulos que controlan el dispositivo, no hay más remedio que reiniciar el equipo para volver a tener red.

El problema se repite en cada sesión. Un tráfico de unos pocos MB es suficiente para bloquear de nuevo el dispositivo de red. Al tratar de obtener más información, descubro que en el momento en que el tráfico de red se interrumpe, en el log del sistema (dmesg) aparecen decenas de mensajes como éste:


hfa384x_usbctlx_complete_sync: CTLX[3] error: state(Request failed)


Tras buscar un poco la cadena con el mensaje de error en cuestión, encuentro con que el error es más o menos habitual y se da con muchos modelos de adaptadores inalámbricos usb. En particular, me encuentro con alguna entrada en launchpad informando del error.

Continuando la búsqueda, aparece también una propuesta de solución.

Decido probarlo:
Marcamos como blacklist el módulo prism2_pci


$ sudo echo blacklist prism2_pci >> /etc/modprobe.d/blacklist


Tras reiniciar el equipo, comienzo a navegar, con múltiples pestañas, escuchando simultáneamente una radio online con Rhythmbox. Me dedico a ver también el capítulo 1 de Aguila Roja, y por el momento todo funciona perfectamente.


$ ifconfig wlan0 |grep RX
RX packets:350374 errors:0 dropped:0 overruns:0 frame:0
RX bytes:508203218 (508.2 MB) TX bytes:15082717 (15.0 MB)


Más de 500MB transferidos, y ni el más mínimo síntoma de error. Conclusión: Muy recomendable el intentarlo para todos aquéllos que tengan algún problema con tarjetas de red inalámbricas en Linux

3 comentarios:

Anónimo dijo...

Si alguien ha probado en esta u otra version de ubuntu la tarjeta Alfa con chipset RTL8187 , me gustaria saber como le ha ido y de donde descargó el controlador

coey1@gmail.com

josean dijo...

Por lo que he leído, esa tarjeta está soportada desde la versión 2.6.23 del kernel, de modo que cualquier Linux reciente la debería de reconocer sin problemas.

Si no es así, puedes probar a descargar los drivers.

pelomher dijo...

La unica forma con la que he conseguido instalar ubuntu 10.04 en un portatil cuyo unico acceso es un lector de cd a traves de puerto usb ha sido mediante
F6----------------------ACPI
tanto para probar ubuntu sin instalarlo, como para instalarlo posteriormente.
Sin embargo y a pesar de que lo he instalado teniendo conectada la tarjeta inalambrica alfa a traves de usb y se encendia el led de la tarjeta duante toda la instalacion, despues , una vez instalado no reconoce esa tarjeta de red, ni otra con chipset Zydas.
Mediante el comando
lsusb
no ve ninguno de los chipset en los puertos.
Sin embargo si ve la tarjeta Conceptronic a traves de usb.
Lo sorpendente es que con el mismo cdlive , ambas tarjetas (alfa y zydas) funcionan perfectamente en otro portatil que por tener regrabadora interna permite tanto la prueba como la instalacion de ubuntu con la opcion por defecto del instalador.
¿Alguna solucion?