El servidor no responde (2ª parte)

Cuando actualicé el kernel, el servidor dejó de responder. Eso era debido a que el módulo de la tarjeta wifi estaba construido a mano y, por lo tanto, compilado con el antiguo kernel. Y es que cada vez que se actualiza el kernel, hay que compilar el driver.

Mirando por internet, descubrí una wiki de debian donde hablaba de los módulos necesarios para esa tarjeta wifi, que no es otra que la D-Link System DWL-G122 802.11g Adapter.

Según esa página, existen tres drivers que se pueden utilizar:

  • rt73 (legacy driver)
  • rt73 (enhanced legacy driver)
  • rt73usb (next-generation driver)

Parecía que la cosa estaba clara, lo mejor parece utilizar el driver rt73usb, que es el recomendado. Para ello sólo hay que dar unos sencillos pasos que se detallan en http://wiki.debian.org/WiFi/rt73#rt73usb.

Eso fue lo que hice, pero de vez en cuando (aleatoriamente), la tarjeta wifi dejaba de responder. En el syslog aparecían mensajes del tipo:

wlan0: No ProbeResp from current AP – assume out of range
wlan0: RX deauthentication from (reason=2)
wlan0: deauthenticated

Viendo que dejaba de funcionar, probé la siguiente opción, el enhanced legacy driver. El proceso de instalación se puede ver también en la wiki.

Pues tampoco conseguí hacerlo funcionar, la interfaz de red wlan0 ¡¡¡desapareció!!!

Así que ya sólo queda el legacy driver. Lo cierto es que en este caso no he seguido las instrucciones de la wiki. El código fuente lo he bajado de SourceForge:

http://sourceforge.net/projects/rt2400/

Y la instalación es la típica:

1. Desempaquetar el código fuente e ir al directorio Module:

$ tar -xvzf rt73-cvs-daily.tar.gz
$ cd ./rt73-cvs-YYYYMMDDHH/Module

2. Compilar el código fuente:

$ make

3. Instalar el driver (como root):

# make install

4. Modificar algunos ficheros de la carga de módulos, para que no se carguen los que no deben y se cargue el que hemos compilado. En debian hay que tocar el fichero /etc/modprobe.d/blacklist hay que añadir las líneas:

blacklist rt73usb
blacklist rt2x00usb

Y crear (si es que no existe) el fichero /etc/modprobe.d/ralink con la línea:

alias wlan* rt73

Lo malo de este método es que el código fuente es un poco antiguo, ya que trata de Enero de 2009. La wiki indica que debe irse a la página web del fabricante y bajarse el código fuente de esa página. Luego hacer un proceso idéntico al comentado.

Este último método no lo he probado, pero parece más interesante, ya que el código fuente está más actualizado. De hecho, el último es de hace nueve días.

Y recordar de nuevo que hay que compilar el driver cada vez que se actualice el kernel.