Imaginemos por un momento todo lo que podemos hacer con un “mini router” con Openwrt; Repetidor/Wifi A.P/Cliente, Servidor MQTT, Piratebox…
Se requiere: Un ordenador con Wifi y con GNU/linux (En nuestro caso con Linux Mint)
Paso 1: Descargar y descomprimir el Firmware
Primero descargamos las imágenes necesarias para la instalación del firmware en este enlace:
https://owncloud.hackerspace.pl/index.php/s/7s5c5RDS7Njgwpv
Descomprimimos el fichero descargado dentro de mi home.
Paso 2: Nos conectamos con el zsun
A continuación nos conectamos al zsun con nuestro equipo. Nos dará una dirección IP del rango 10.168.168.X.
Paso 3: Ejecutamos un servidor TFTP en el equipo
Ejecutamos el servidor TFTP y utilizamos este comando:
$ sudo dnsmasq -p0 --enable-tftp --tftp-root=`pwd` -d --user=`whoami`
Paso 4: Accedemos al Zsun.
Ahora nos logueamos en el sistema zsun. Probablemente tengamos que instalar la herramienta socat. Accedemos con el usuario root y la contraseña zsun1188
$ sudo apt-get install socat
$ socat - TCP4:10.168.168.1:11880 (none) login: root Password: zsun1188
Paso 5: Hacer una copia de respaldo del firmware original
Vamos a hacer una copia de lo que tiene dentro para poder dejarlo como estaba en caso de necesidad.
$ dd if=/dev/mtd0 of=/tmp/mtd0.bin $ dd if=/dev/mtd1 of=/tmp/mtd1.bin $ dd if=/dev/mtd2 of=/tmp/mtd2.bin $ dd if=/dev/mtd3 of=/tmp/mtd3.bin $ dd if=/dev/mtd4 of=/tmp/mtd4.bin $ dd if=/dev/mtd5 of=/tmp/mtd5.bin
Para poder descargarlo a través del navegador ponemos:
$ ln -s /tmp /etc/disk
Una vez hecho esto nos conectamos mediante el navegador web a la ip 10.168.168.1 y nos descargamos los archivos creados: mtd0.bin, mtd1.bin, … mtd5.bin.
A continuación borramos los archivos creados en el zsun:
rm /tmp/mtd*
Paso 6: Flashear el firmware
Atención: Este paso es extremadamente peligroso y arriesgado.
Sólo tenemos una oportunidad de hacerlo. En caso de que falle podemos dejar el Zsun inservible.
Lee bien todo a partir de ahora.
Debemos averiguar cual es la dirección IP que nos ha dado nuestro Zsun al conectarnos. En mi caso es 10.168.168.100. En caso de que sea 10.168.168.X cambiaremos ese valor de IP en las órdenes del tftp que viene a continuación.
Nos posicionamos en la carpeta /tmp
# cd /tmp # tftp -g 10.168.168.100 -r openwrt-ar71xx-generic-zsun-sdreader-kernel.bin # tftp -g 10.168.168.100 -r openwrt-ar71xx-generic-zsun-sdreader-rootfs-squashfs.bin
Ahora podremos subir el firmware a la partición “uImage” y “rootfs”:
# cat /proc/mtd dev: size erasesize name mtd0: 00010000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00e90000 00010000 "rootfs" mtd3: 00130000 00010000 "uImage" mtd4: 00010000 00010000 "NVRAM" mtd5: 00010000 00010000 "ART" # mtd_write write openwrt-ar71xx-generic-zsun-sdreader-kernel.bin /dev/mtd3 Unlocking /dev/mtd3 ... Writing from openwrt-ar71xx-generic-zsun-sdreader-kernel.bin to /dev/mtd3 ... [w] # mtd_write write openwrt-ar71xx-generic-zsun-sdreader-rootfs-squashfs.bin /dev/mtd2 Unlocking /dev/mtd2 ... Writing from openwrt-ar71xx-generic-zsun-sdreader-rootfs-squashfs.bin to /dev/mtd2 ... [w] Bus error
Cuando nos aparezca “Bus error”, indica que ya está subido el firmware correctamente.
Ya solo queda reiniciar nuestro Zsun y disfrutar!
Otras consideraciones:
En caso de que metamos la pata al configurar el Openwrt, podemos resetear el dispositivo introduciendo y sacando una tarjeta microsd mientras está arrancando. Para este caso necesitaremos un extensor de cable usb similar a este para poder realizar la operación
Buena entrada Junior. Hay poco por ahí sobre esto.