Esta es una pequeña guía para cambiar el limitado firmware con el que vienen los Huawei HG532s, a un firmware de Tplink.
Normalmente los HG532s suelen ser de algún proveedor de internet aunque eso no nos importa demasiado. En este caso el HG532s que vamos a usar uno que dispone de 8 MB de flash (del ISP con nombre de fruta), es lo único relevante en principio.
Requisitos:
- Adaptador de puerto serie TTL para conectar al router, y saber manejarlo mínimamente
- Cliente TFTP en nuestro ordenador. En esta guía usamos un ordenador con sistema operativo GNU/Linux, aunque no es obligatorio, pero es más cómodo para la guía.
El puerto serie UART dispone del siguiente pinout. Solo conectaremos TX, RX y GND, baudrate=115200:
El cambio se basa en reemplazar toda la imagen de la flash por la de un Tplink TD-W8968 v2, cuyo hardware es idéntico. Así que lo que haremos es flashear la imagen completa de la flash cuya estructura es diferente a la del HG532s. Como los datos de calibración y la MAC son únicas de cada dispositivos, lo que primero hacemos es tunear la imagen para que tenga los de nuestro dispositivo particular.
- Tunear la imagen de Tplink
- Hacemos un backup de la flash entera para lo cual ejecutamos este script de phyton rt63365tool.py con el siguiente comando:
python2 rt63365tool.py --read=hg532sfull.bin --addr=0xB0000000 --size=0x800000 --block=0x10000
encendemos el router con el puerto serie conectado, el backup debería comenzar inmediatamente. Puede tardar bastante en completarlo - Descargar el backup de tplink TD-W8968v2-flashbackup-mod.zip. Descomprimimos y lo renombramos a tplinkfull.bin
- Ahora insertamos los datos de calibración del wifi de nuestro router en la imagen de tplink, ejecutar:
dd if=hg532sfull.bin bs=1 skip=$((0x11000)) count=512 | dd of=tplinkfull.bin bs=1 seek=$((0x7f0000)) conv=notrunc
- Insertamos la MAC de nuestro router en la imagen tplink
echo -ne \\x00\\x11\\x22\\x33\\x44\\x55 | dd of=tplinkfull.bin bs=1 seek=$((0x7DF100)) conv=notrunc
En este caso la MAC era 00:11:22:33:44:55
- Flashear la imagen de Tplink en nuestro rotuer
- Apagar el router
- Conectar el adaptador de puerto serie al router
- Conectar el cable ethernet del ordenador al router
- Poner una IP estática en nuestro ordenador compatible con 192.168.1.1 (por ejemplo 192.168.1.33)
- Encender el router e inmediatamente pulsar una tecla en la consola serie, lo cual debería parar el arranque en la línea de comandos del bootloader con el símbolo:
bldr> - Enviar la imagen vía TFTP. En el ordenador ejecutar:
tftp 192.168.1.1 -m binary -c put tplinkfull.bin - Ahora flasheamos la imagen recibida. En la consola serie ejecutar:
flash 0 80020000 800000 - Una vez finalizado el flasheo, reiniciar el router desenchufando la alimentación y volviiendo a conectarla
- Listo, ya debería arrancar con el firmware Tplink
Como ejemplo una sesión de flasheo en la consola serie
RT63365 at Wed Dec 12 17:15:09 CST 2012 version 0.8
Memory size 32MB
Found SPI Flash 8MiB Winbond W25Q64 at 0xb0000000
Press any key in 3 secs to enter boot command mode.
Search PHY addr and found PHY addr=0
bldr>
Starting the TFTP download...
...
Total 8388608 (0x800000) bytes received
bldr> flash 0 80020000 800000
Write to flash from 80020000 to 0 with 800000 bytes
################################################################################################################################
program from 0 to 800000
...
bldr>
Algunas características destacables de este firmware:
- Soporte de modems 3G
- Soporte de función repetidor
- Soporte para ethernet WAN
- Soporte multiprocesador!. El chip RT63365 sorprendentemente dispone de 4 cores. El firmware de Huawei solo usa 1 core
Además en la imagen que suministro hay unas cuantas modificaciones con añadidos interesantes en rootfs, como un acceso
telnet en el puerto 2323, y algunas utilidades que el firm original de Tplink no tenía, por ejemplo la utilidad mtd, para poder reflashear
rootfs personalizados de forma cómoda. Podemos instalar el firmware genuino 100 por cien de Tplink si así lo deseamos simplemente haciendo un upgrade de su firmware oficial después del flasheo descrito en la guía.
La función repetidor del firmware Tplink está en el apartado WDS, el cual no es un WDS real sino un modo AP+client_bridge de Mediatek. Este modo suele ser conocido los que ya tienen cierta experiencia en el mundo WiFi como modo repetidor universal. Aunque el inconveniente del modo repetidor universal para los que no lo sepan es la pérdida de transparencia en el flujo de datos
Para disponer de un WDS real hice una modificación con la que si introducimos en la configuración wifi, en el apartado SSID, el nombre "
WDS", entonces sí actuará como tal. Como es sabido WDS tiene una compatibilidad limitada ya que tiene que emparejarse con otro dispositivo con WDS del mismo fabricante con sus drivers propietarios (Mediatek/Ralink). La ventaja es que aquí sí que tenemos transparencia y rendimiento óptimo en todo momento.
Una captura de la página con la función Repetidor:
En el emulador de la configuración por web podemos ver todo el repertorio completo:
https://emulator.tp-link.com/89680306/index.htmEsta información la publiqué también en
https://wikidevi.wi-cat.ru/Huawei_HG532s donde se pueden encontrar más detalles. Lo bueno de este dispositivo es que es virtualmente imposible de brickear, ya que la CPU dispone de un bootloader básico desde el que podemos cargar un recovery por XMODEM, y así flashear toda la imagen aunque la flash estuviese vacía totalmente.