Ralink 3090PCIe en Debian Wheezy

Al principio, todo iba bien

Cuando tuve la notebook en el mes de Abril, instalé Debian Wheezy, mismo sistema operativo que venía utilizando en mi máquina de escritorio.

Al momento de instalarlo Wheezy hacía poco tiempo que había sido pasado a testing y me dio algunos problemas menores con el touchpad que pude solucionar rápidamente gracias a la documentación existente en Debian y foros de comunidades como EsDebian.

En ese momento lo más trabajoso fue configurar la placa Wifi que es el motivo de este post. Utilizando el Kernel 2.6 y gracias a que Ralink tiene drivers para linux, pude compilarlos y ponerla a funcionar sin problemas, conectando con la norma 802.11n.

Y se vinieron los problemas

El problema comenzó al momento de actualizar el kernel a la versión 3.0. El driver de Ralink que venía utilizando sólo es compatible con las versiones 2.4 y 2.6. por más que intente compilarlo nuevamente no funcionaba.

Según la Wiki de Debian, el módulo que debía utilizar era 2800pci, el cual tenía bloqueado porque venía usando el módulo compilado por Ralink. Edité /etc/modprobe.d/blacklist.conf y después de probar el módulo funcionó.

De todas maneras algunas cosas fallaban, por ejemplo no podía conectar a más de 54Mbps (Norma 802.11g) y por sobre todo comenzó un síntoma bastante más preocupante, Kernel Panic.

Kernel panic, por decirlo burdamente, es a linux, lo que las pantallas azules es a Windows. Un erro grave, que frena el sistema. Lo particular de este caso es que me sólo se daba cuando la notebook funcionaba con batería.

Después de varias pruebas para determinar si efectivamente venía del módulo que estaba utilizando para manejar la placa wifi o si simplemente se debía a un problema de ACPI, terminé por hacer una prueba muy básica. Dejar la notebook en batería pero sin wifi ni sus módulos cargados, no se produjo ningún error. Indiscutiblemente el problema era de rt2800pci.

La solución

Visité al amigo google muchísimas veces en busca de una solución, una alternativa o un método para palear el error mientras aparecía otra solución. En un foro encontré un mensaje donde un usuario comentaba que tenía la placa funcionando con NdisWrapper porque el módulo rt2800pci le funcionaba mal.

NdisWrapper es un módulo de linux que implementa Windows kernel API y NDIS. Esto es, usando un driver de Windows, a través de este módulo, se puede poner a funcionar una placa de red Wifi en Linux. Si bien había leído sobre NdisWrapper hace algún tiempo, la idea de usar un driver de Windows sobre Linux no me atraía demasiado. Pero ante los Kernel Panic, necesitaba una solución así que me animé.

La instalación no fue nada complicada, ni fuera de lo común, simplmente:

[sourcecode] sudo aptitude ndiswrapper-utils-1.9[/sourcecode]

Para instalar el driver de windows, debemos utilizar drivers para XP, y se hace tan simple como:

[sourcecode] sudo ndiswrapper -i archivo.inf[/sourcecode]

Confirmamos que se haya instalado:

[sourcecode] sudo ndiswrapper -l[/sourcecode]

Veremos a continuación:

[sourcecode]rt2860 : driver installed
device (1814:3090) present (alternate driver: rt2800pci)
[/sourcecode]

Como se puede ver me muestra que el driver se encuentra instalado, que el dispositivo para ese driver está presente en el equipo y por último cuál sería la alternativa que tengo que usar. Ahora todo era cuestión de quitar los módulo de rt2800pci y cargar el módulo ndiswrapper.

[sourcecode]sudo rmmod rt2800pci rt2800lib rt2x00pci rt2x00lib
sudo modprobe ndiswrapper
[/sourcecode]

El tiempo que le toma conectarse es levemente superior, pero como punto a favor, conectó perfectamente con la norma 802.11n.

El último paso sera poner los módulos de rt2800pci en la lista de blacklist y agregar en /etc/modules ndiswrapper para que cargue al inicio del sistema

Después de eso no tuve otro kernel panic hasta el momento, que ya llevo varios ciclos de carga y descarga de la batería.
Como siempre espero que sirva a quién venga teniendo los mismos problemas.

Post a Comment

Your email is kept private. Required fields are marked *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.