24 diciembre 2007

NSLU2 + DWL-G122 = NAS con Wi-Fi

Partimos de una NSLU2 de Linksys con Debian GNU/Linux 4.0 (alias etch) y de un adaptador USB Wi-Fi DWL-G122 Ver. C1 de D-Link. Para que dicho adaptador funcione con la NSLU2, hay que compilar los drivers oportunos, pues el Linux de la Debian para este cacharro viene sin ellos. La versión C1 del DWL-G122 trae el 'chipset' rt73 de Ralink y los fuentes para los mismos se pueden encontrar en la página del proyecto rt2x00. Ahí proporcionan dos tipos de drivers: 'antiguos pero mejorados' y de 'nueva generación'. Puesto que los de nueva generación están muy ligados a las últimas versiones del núcleo, opté por utilizar los antiguos. Los pasos que dí para compilarlos fueron los que se pueden ver en este foro (primer comentario de Sinclair73). Es decir, desde el Linux de la NSLU2 (previamente hay que tener instalados los paquetes make, gcc & co.) ir ejecutando:

1) Bajar y descomprimir los fuentes del driver:
$ wget http://rt2x00.serialmonkey.com/rt73-cvs-daily.tar.gz
$ tar zxvf rt73-cvs-daily.tar.gz


2) Editar el fichero Module/rtmp_init.c para cambiar el cuerpo de la función RTMPMoveMemory a solo { memcpy(pDest, pSrc, Length); }
$ cd rt73-cvs-AAAAMMDDHH
$ vi Module/rtmp_init.c
// RTMPMoveMemory debe quedar así:
VOID RTMPMoveMemory(
 
OUT PVOID pDest,
  IN PVOID pSrc,
  IN ULONG Length
)
{
 
memcpy(pDest, pSrc, Length);
}

3) Compilar el driver:
$ cd Module
$ make arm

4) Copiar el modulo rt73.ko resultante a un punto adecuado en /lib:
$ su
# mkdir -p /lib/modules/`uname -r`/kernel\
/drivers/net/wireless/rt2x00-legacy/

# cp rt73.ko /lib/modules/`uname -r`/kernel\
/drivers/net/wireless/rt2x00-legacy/


5) Copiar el firmware rt73.bin a /lib/firmware:
# cp rt73.bin /lib/firmware

6) Actualizar las dependencias de módulos:
# depmod

7) Editar el /etc/network/interfaces y dejarlo a nuestro gusto según la red inalámbrica que tengamos, teniendo en cuenta que el alias para la interfaz de red de la DWL-G122 será wlan0. Así que para una red sin encriptación y con asignación de direcciones ip estáticas, la entrada correspondiente en dicho fichero podría ser:
allow-hotplug wlan0
iface wlan0 inet static
 
pre-up ifconfig wlan0 up
  pre-up iwconfig wlan0 mode Managed
  pre-up iwconfig wlan0 essid
"nombredelared"
 
address 192.168.0.188
 
netmask 255.255.255.0
 
gateway 192.168.0.1

Con esto ya podemos poner nuestra NSLU2 en cualquier sitio de la casa. Hay opciones más inmediatas para tener una NAS con conexión inalámbrica, como la Asus WL-HDD 2.5, pero la instalación en estas de cualquier otra versión de GNU/Linux que no sea la de fábrica no está tan 'trabajada' como la de la NSLU2. Y si ya tenemos una NSLU2, pues viene bien esta 'ampliación'.

Notas: en algunas ocasiones he tenido un comportamiento algo inestable, de modo que al arrancar la NSLU2 el enlace no estaba disponible o este sufría caídas intermitentes. La solución siempre era o tirar y levantar el enlace con:
# ifdown wlan0
# ifup wlan0

o, desconectar y volver a conectar físicamente el DWL-G122, si no disponía de una sesión telnet/ssh contra la NSLU2. Puesto que últimamente no he sufrido casi estos inconvenientes, me inclino a pensar que son causados por factores ambientales (¿interferencias de algún tipo?). Seguiré investigando, y si encuentro algo, añadiré comentarios.

Actualización: Aquí se puede encontrar mucha más información sobre como conectar adaptadores WiFi a nuestra NSLU2.

4 comentarios:

Joel dijo...

Yo tengo mi NSLU2 con el firmaware UnSlug y justamente estoy compilando los drivers de rt2x00 para una de mis PCs de escritorio con Ubuntu. Ahora lo voy a intentar en la NSLU2 pero no sé si se puede con UnSlug.

Héctor dijo...

Lo siento Joel, según he leído aquí,
parece que no se puede con UnSlug. Eso si, en esa referencia se muestran mas opciones interesantes para ponerle WiFi a una NSLU2, con adaptadores basados en rt73 y otros.

David dijo...

Hola, antes que nada queria felicitarte por encontrar mas formas de sacarle jugo al nslu2 .! yo tengo uno y fui probando las distintas actualizaciones de firmware hasta que me quede con debian. Funciona muy bien, es muy estable. Esta posibilidad de ponerle wifi es bastante tentadora. Estoy seguro que en algun momento voy a intentarla. !

Anónimo dijo...

Está de moda los HHDD multimedia con WiFi. El mío no lo tiene esa conexión WiFi, es un Conceptronic csm3pl con el firmware actualizable. Además tengo una llave USB WiFi que compré para darle conexión WiFi a un portátil viejuno. ¿Sería posible darle conexión WiFi a ese HHDD multimedia?

Creo que su se puede hacer con el NSLU2 también podria hacerse con HHDD multimedia. ¿Sabeis de alguna weberia donde se hable de esto? Por más que busco nadie dice nada claro.

Un saludo y muchas gracias