miércoles, 21 de noviembre de 2007

Cambiando el firmware del NSLU2 - Unslug 6.8

Para los que no conozcan el NSLU2, es un cacharrillo de Linksys con un puerto Ethernet y dos puertos USB 2.0. El objetivo para el que lo diseñó Linksys es para convertir un par de discos duros USB en discos de red, osea en NAS. Internamente funciona con Linux y comparte los discos utilizando Samba.

Bueno, pues se puede utilizar para casi cualquier cosa que no requiera mucha potencia. Yo lo tengo funcionando conectado a una estación meteorológica 1-wire de forma que mande los datos de temperatura, velocidad y dirección de viento a un servidor. El próximo objetivo es usarlo con Linknx y como servidor web EIB.

La comunidad Linux ha desarrollado varios nuevos firmwares para el NSLU2, siendo el mas simple de instalar y usar Unslug.

Como he tenido que hacer un pequeño manual en castellano sobre como instalar Unslug, lo pongo a continuación. El objetivo del manual es tener una guia paso a paso en castellano bastante simplificada. La hice con un poco de prisa por lo que se aceptan comentarios y correcciones para mejorarla :)

El manual en cuestión:

Requisitos:
- NSLU2
- Memoria flash USB de al menos 512MB

Pasos a seguir.

Comprobación RedBoot (MUY IMPORTANTE)
Antes de poner el nuevo firmware hay que comprobar que el cargador de arranque (bootloader) funciona correctamente. Si no estuviera funcionando, no podriamos recuperar el sistema en caso de fallo en la actualización de firmware.

Para comporbar que el cargador de arranque RedBoot está funcionando seguimos las instrucciones del siguiente documento:

http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot


Ya se que está en inglés pero es bastante simple, básicamente consiste en:
  • Conectar con un cable el NSLU2 a un PC.
  • Ponerle al PC una IP 192.168.0.x donde x debe ser mayor que 1.
  • Hacer un telnet a la IP 192.168.0.1, puerto 9000 en el momento justo que el NSLU2 arranca

Instalación del firmware (resumen en castellano del README)
  • Descargaremos el nuevo firmware de http://www.slug-firmware.net/u-dls.php (o bien www.nlu2-linux.org). En esta guia utilizamos Unslug-6.8-beta
  • Arrancamos el NSLU2 con los puertos USB libres.
  • Accedemos a la interfaz web en la IP 172.16.1.77 con usuario admin y clave admin. Podemos cambiar la IP antes de hacer nada con la utilidad del CD o a través de la interfaz web.
  • Actualizamos el firmware con unslug-6.8. Suele tardar 5 minutos pero puede ser mucho mas tiempo. En el menú Administration -> Advanced -> Upgrade. Mientras actualiza, el LED Ready/Status cambia alternativamente entre color rojo y verde. Una vez actualizado se reiniciará solo.
  • Apagamos el NSLU2, conectamos la memoria flash al puerto 2 (DISK2) y encendemos de nuevo.
  • Comprobamos que seguimos teniendo acceso a la interfaz web del NSLU2 y que la unidad de disco está presente. En caso de que no esté todo bien, parar y leer el README y http://www.nslu2-linux.org/wiki/HowTo/TroubleshootADriveMissingCondition
  • Apagar el NSLU2 de nuevo y desconectar la memoria flash.
  • Encendemos de nuevo el NSLU2 (sin discos conectados).
  • Habilitamos la interfaz Telnet en "http://192.168.1.77/Management/telnet.cgi"
  • Conectamos la memoria flash al DISK2, esperamos un par de minutos a que se monte la unidad.
  • Comprobamos en la interfaz web que se ha montado la unidad y la formateamos con el NSLU2 si no lo habiamos hecho previamente. (Administration -> Advanced -> Disk). El disco tiene que aparecer como "Formatted (EXT)"
  • Conectamos por telnet (telnet 192.168.1.77). El usuario es "root" y la contraseña "uNSLUng".
  • Ejecutamos "/sbin/unsling disk2".Nos pedirá la palabra de paso de root para cuando arranque desde el disco flash.
  • Ejecutamos reboot
La unidad flash deberá estar siempre conectada al puerto DISK2

Conectamos de nuevo a la interfaz web y comprobamos que en la parte inferior pone
uNSLUng status: Unslung to disk2, /dev/sda1

Ya tenemos instalado Unslug 6.8

Configuración IP
  • Configuramos a través de la interfaz web la dirección IP definitiva, máscara de subred, puerta de enlace predeterminada y servidores DNS, para que el NSLU2 tenga acceso a Internet. Menú Administration -> LAN

Instalación servicio SSH
  • Volvemos a habilitar telnet con http:///Management/telnet.cgi
  • Entramos por telnet
  • Ejecutamos los siguientes comandos:
    • ipkg update
    • ipkg install dropbear
    • reboot
Si queremos usar sftp para tansferencia segura de ficheros, en vez de instalar el dropbear instalamos openssh.
Ya podemos entrar por SSH de forma segura sin tener que habilitar telnet cada vez.

Prolongando la vida de la memoria flash
Unslug está instalado en una memoria flash y estas memorias tienen un número limitado de escrituras. Vamos a configurar el sistema para que escriba en la memoria flash el menor número de veces posible.

Para ello entramos por telnet o SSH y creamos el archivo .ext3flash en la raiz del sistema de ficheros
touch /.ext3flash

NOTAS: Al reiniciar, el NSLU2 se toma su tiempo, sobre todo si hace una comprobación de disco. No es recomendable apagar el NSLU2 desconectando la alimentación.
Cuando termina de arrancar emite un pitido. Hasta unos segundos después del pitido no podremos entrar por ssh.


Referencias:
http://www.nslu2-linux.org
http://www.nslu2-linux.org/wiki/Unslung/Ext3flash
README del firmware descargado.

4 comentarios:

Unknown dijo...

Hola.

Gracias por el manual.

Instale ssh, pero cual es la contraseña, ya coloque del telnet y webased y nada, como puedo saber cual es.

Saludos

uidas dijo...

Hola.

Cuando ejecutas el comando unsling te pide la contraseña de root. Esa es la que usas para acceder por SSH.

Seguramente tienes que reiniciar despues de instalar SSH.

Unslug tiene tres claves:
1. la de acceso al interfaz web
2. la de root cuando arrancas sin la flash
3. la de root cuando arrancas con flash (esta es la que metiste en la instalación y se usa para el ssh)

Un saludo

Anónimo dijo...

Hola,

Muy bueno el mini tutorial ... pero me gustaría saber si es hipernecesario la memoria flash en el puerto 2. Lo digo porque yo tengo dos discos duros de 500 GB y si siempre tengo conectado el disco flash pues ya no puedo conectar otro disco duro de 500. Supongo que el hacer el "/sbin/unsling disk2" implica que el aparatito busque el arranque en el disk2 no?. Esto es bueno para poder meter muchos pkgs puesto que supongo que la memoria del NSLU2 estará limitada. Yo por ejemplo solo kiero meter el Unslug 6.8 y un paquete, en concreto uno que me permita acceder a paticiones hfs+ (las de Macos). Allá van las preguntas:

¿Se puede obviar el unsling? ¿Cuantos pkgs se puede instalar en el propio NSLU?

1 saludo y gracias de nuevo

uidas dijo...

Si no haces el unsling, el NSLU2 se queda practicamente como estaba de fabrica. Al hacer el unsling metes el unslug en la flash. Lo bueno y lo malo de Unslug es que practicamente no toca el sistema base, lo instala todo en la flash.

No se si se podría instalar unslug en la propia flash del NSLU2 pero me parece que no cabría.

Es posible que con otras distribuciones se pueda hacer pero la cosa ya no es tan fácil.