Seguridad Wireless - Wifi

Equipos y materiales => Puntos de acceso, routers, switchs y bridges => Mensaje iniciado por: danitool en 10-12-2018, 00:51 (Lunes)

Título: [HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 10-12-2018, 00:51 (Lunes)
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:

El puerto serie UART dispone del siguiente pinout. Solo conectaremos TX, RX y GND, baudrate=115200:
(http://images.shoutwiki.com/en.techinfodepot/9/9d/Hg532s-uart.jpg)

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.


Como ejemplo una sesión de flasheo en la consola serie
Código: [Seleccionar]
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:

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:

(https://i.imgur.com/38JfhDR.png)

En el emulador de la configuración por web podemos ver todo el repertorio completo: https://emulator.tp-link.com/89680306/index.htm

Esta 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.
Título: Re:[HG532s] Cambio de firmware a Tplink con función repetidor
Publicado por: jar229 en 13-12-2018, 19:28 (Jueves)
Como siempre, danitool, estupendo aporte  >:(
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: ablinux en 10-04-2019, 09:04 (Miércoles)
Hola, encontré este post al buscar si era posible activar la función de "router" al HG532s (habilitarle el puerto wan). Realmente odio preguntar esto (en general siempre trato de interiorizarme y no preguntar pavadas), pero no tengo el equipamiento ni creo que tampoco los conocimientos para seguir las instrucciones del post.

En cambio se me ocurrió si sería posible subir la imagen tplinkfull.bin como si fuera una firmware del router (en la página del router, hay una opción para flashearle un firmware). Anteriormente le puse el firmware de fábrica, ¿sería posible repetir estos pasos con "tplinkfull.bin"?

Muchas gracias y perdón por molestar. Saludos
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 10-04-2019, 21:08 (Miércoles)
Hola, encontré este post al buscar si era posible activar la función de "router" al HG532s (habilitarle el puerto wan). Realmente odio preguntar esto (en general siempre trato de interiorizarme y no preguntar pavadas), pero no tengo el equipamiento ni creo que tampoco los conocimientos para seguir las instrucciones del post.

En cambio se me ocurrió si sería posible subir la imagen tplinkfull.bin como si fuera una firmware del router (en la página del router, hay una opción para flashearle un firmware). Anteriormente le puse el firmware de fábrica, ¿sería posible repetir estos pasos con "tplinkfull.bin"?

Muchas gracias y perdón por molestar. Saludos

No es posible, el firmware de fábrica tiene un empaquetamiento especial no compatible con la imagen de la flash. De ahí el usar un procedimiento a bajo nivel como el que describo para meter el firmware de Tplink.

En realidad solo necesitas como equipamiento especial un adaptador de puerto serie UART (3.3V), para lanzar los comandos que flashean la imagen.

Hay un post que describe en que consiste acceder por puerto serie al router:
https://foro.seguridadwireless.net/openwrt/(tutorial)-puerto-serie-como-acceder/
Que básicamente es usar el adaptador UART con el software correspondiente.

Saludos
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: cheche en 11-04-2019, 02:25 (Jueves)
Danitool,
Tengo un adaptador USB, y cables para conectar, pero soy un manazas con el soldador, ¿Cual crees tu seria la mejor manera de soldar eso?

¿Recomiendas soldar este tipo de pines macho?:
https://www.ebay.es/itm/5x-TIRA-40-PINES-MACHO-simple-row-male-soldar-Arduino-pin-header-PCB/201601894577

La idea es soldar y solamente conectar con el cable al actualizar. Tengo un par de routers de estos.
Si le hace falta a alguien, que me lo diga y se los envío sin coste.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 12-04-2019, 18:09 (Viernes)
Hola cheche.
La mejor forma, personalmente pienso, es dejar acceso externo al puerto serie desde fuera de la carcasa, con ella montada.

Aunque si solo tenemos pensado usar muy poco el puerto serie podemos soldar directamente el pinheader al que has hecho referencia (2.54 mm pitch). Lo de soldar un pinheader directamente a mi se me hace un poco difícil ya que hay que fundir todo el estaño que atasca los agujeros.

O bien se elimina primero el estaño de todos los agujeros con malla de desoldar para luego introducir cómodamente el pin header en frío.  O se suelda en caliente fundiendo cada agujero. Particularmente incordiante es el pin de GND si no tenemos un soldador con potencia.

En este modelo de router usé hilos rígidos de un cable de red y un pinheader hembra pegado en el conector de power. Al ser rígidos es fácil soldar uno a uno en cada agujero introduciéndolos dentro. Adjunto un par de imágenes
(https://i.imgur.com/XHCgtx0.jpg)  (https://i.imgur.com/h10CIMy.jpg)

La forma más facil tal vez sea soldar un pinheader macho (o hembra), con cables flexibles y sin necesidad de pegar el conector, para un uso ocasional sería más que suficiente.

Saludos.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: gracasola en 10-05-2019, 15:32 (Viernes)
Hola danitool,

Me preguntaba si existe alguna forma de recibir el backup de la memoria flash via tftp (con algún comando de la consola serie como decomp), ya que empleando el puerto serie el proceso se eterniza.

Un Saludo.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 14-05-2019, 22:55 (Martes)
Hola danitool,

Me preguntaba si existe alguna forma de recibir el backup de la memoria flash via tftp (con algún comando de la consola serie como decomp), ya que empleando el puerto serie el proceso se eterniza.

Un Saludo.

Para el backup no, ya qeu es imposible enviar archivos por TFTP del router al ordenador, solo recibir. O al menos eso es lo que recuerdo cuando exploré las posibilidades del bootloader.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: javihijate en 02-06-2019, 14:46 (Domingo)
BUenas,
en primer lugar, muchas gracias por tu aporte. Resulta que he tenido un problema, al flashear, supongo que no le habra llegado la imagen por tftp y al flashear se ha borrado la memoria y ahora ek router no muestra nada por serial al iniciar. He iniciado el bootloader que trae integrado el router presionando reset al encender el router y me sale esto:
RT63365 at Tue May 8 19:47:16 CST 2012 version 0.8

Memory size 32MB

HWCONF=02007d00
DRAM Mode=00000000
MCC1=00000000

Search PHY addr and found PHY addr=0
done

Asique le he flasheado el recovery via xmodem con minicom y me sale esto:
RT63365 at Thu Apr 2 18:14:49 MSK 2015 version 1.1                             
                                                                               
Memory size 32MB                                                               
                                                                               
flash base: b0000000                                                           
Found SPI Flash 16MiB S25FL128P at 0xb0000000                                 
                                                                               
cmd > help                                                                     
                                                                             
?                                   Print out help messages.                   
help                                Print out help messages.                 
memrl <addr>                        Read a word from addr.                     
memwl <addr> <value>                Write a word to addr.                       
dump <addr> <len>                   Dump memory content.                       
jump <addr>                         Jump to addr.                               
flash <dst> <src> <len>             Write to flash from src to dst.             
xmdm <addr> <len>                   Xmodem receive to addr.                     

Ahora le envio por tftp la imagen del firm y nada, tampoco la lee, tengo puesta IP fija 192.168.1.33 y por supuesto tengo conectado el router al pc por ethernet y el wifi deshabilitado, pero no hay manera, no sale el "Starting the TFTP download..." por lo que al flashear no hace nada, se queda sin boot y tengo que volver a cargarle el recovery y vuelta a empezar. Llegados a este punto me pregunto, ¿como puedo cargarle la imagen por xmodem en lugar de por tftp para flashearla? UN saludo y gracias
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 05-06-2019, 17:22 (Miércoles)
BUenas,
en primer lugar, muchas gracias por tu aporte. Resulta que he tenido un problema, al flashear, supongo que no le habra llegado la imagen por tftp y al flashear se ha borrado la memoria y ahora ek router no muestra nada por serial al iniciar. He iniciado el bootloader que trae integrado el router presionando reset al encender el router y me sale esto:
RT63365 at Tue May 8 19:47:16 CST 2012 version 0.8

Memory size 32MB

HWCONF=02007d00
DRAM Mode=00000000
MCC1=00000000

Search PHY addr and found PHY addr=0
done

Asique le he flasheado el recovery via xmodem con minicom y me sale esto:
RT63365 at Thu Apr 2 18:14:49 MSK 2015 version 1.1                             
                                                                               
Memory size 32MB                                                               
                                                                               
flash base: b0000000                                                           
Found SPI Flash 16MiB S25FL128P at 0xb0000000                                 
                                                                               
cmd > help                                                                     
                                                                             
?                                   Print out help messages.                   
help                                Print out help messages.                 
memrl <addr>                        Read a word from addr.                     
memwl <addr> <value>                Write a word to addr.                       
dump <addr> <len>                   Dump memory content.                       
jump <addr>                         Jump to addr.                               
flash <dst> <src> <len>             Write to flash from src to dst.             
xmdm <addr> <len>                   Xmodem receive to addr.                     

Ahora le envio por tftp la imagen del firm y nada, tampoco la lee, tengo puesta IP fija 192.168.1.33 y por supuesto tengo conectado el router al pc por ethernet y el wifi deshabilitado, pero no hay manera, no sale el "Starting the TFTP download..." por lo que al flashear no hace nada, se queda sin boot y tengo que volver a cargarle el recovery y vuelta a empezar. Llegados a este punto me pregunto, ¿como puedo cargarle la imagen por xmodem en lugar de por tftp para flashearla? UN saludo y gracias

Hola, no te preocupes porque es sencillo recuperar este router con el recovery.

Una vez has iniciado el recovery, puedes enviarle la imagen completa por xmodem. Únicamente necesitas inicar la bajada del xmodem desde el recovery
Código: [Seleccionar]
xmdm 80020000 800000Ahora subimos nuestro backup de 8 MB desde el ordenador mediante el programa de consola serie que usemos
Tardará bastante porque xmodem es lento. (Para acelerarlo se podría solo subir el bootloader para luego una vez flasheado usarlo con TFTP)

Y luego flashea lo que ha bajado el recovery
Código: [Seleccionar]
flash 0 80020000 800000


Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: javihijate en 22-06-2019, 01:34 (Sábado)
Buenas,
he hecho lo que tu me dices pero se me para la transferencia de xmodem cuando ya lleva casi 100kb subidos, en la consola me sale esto:


CCCn=8000b2cc
CP0_BADVADDR=800394bb

 lo=4350305f hi=43415553
 cp0_epc=453d2578 cp0_badvaddr=a000000
 cp0_status=4350305f cp0_cause=4550433d
pad0

 0x206c6f3d 0x25782068 0x693d2578 0xa000000
 0x20637030 0x5f657063
regs

 3d257820 6370305f 62616476 61646472
 3d25780a 0 20637030 5f737461
 7475733d 25782063 70305f63 61757365
 3d25780a 0 70616430 a000000
 20307825 78000000 a726567 730a0000
 20257800 556e6465 66696e65 64204578
 63657074 696f6e20 68617070 656e2e00
 4350305f 53544154 55533d25 780a0000Cn=8000b2cc
CP0_BADVADDR=800394bb

 lo=4350305f hi=43415553
 cp0_epc=453d2578 cp0_badvaddr=a000000
 cp0_status=4350305f cp0_cause=4550433d
pad0

 0x206c6f3d 0x25782068 0x693d2578 0xa000000
 0x20637030 0x5f657063
regs

 3d257820 6370305f 62616476 61646472
 3d25780a 0 20637030 5f737461
 7475733d 25782063 70305f63 61757365
 3d25780a 0 70616430 a000000
 20307825 78000000 a726567 730a0000
 20257800 556e6465 66696e65 64204578
 63657074 696f6e20 68617070 656e2e00
 4350305f 53544154 55533d25 780a0000
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: javihijate en 22-06-2019, 01:35 (Sábado)
he probado a subir directamente el de tplink y la copia de seguridad del firm original y me da el mismo error
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 22-06-2019, 21:58 (Sábado)
he probado a subir directamente el de tplink y la copia de seguridad del firm original y me da el mismo error

Prueba subiendo la imagen a otra dirección de memoria diferente, por ejemplo 80120000
Código: [Seleccionar]
xmdm 80120000 800000
flash 0 80120000 800000
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: RonAshman en 26-09-2019, 13:26 (Jueves)
Hola,

Llegué aquí desde wikidevi y google luego de mucho tiempo de buscar opciones para este router.

Sinceramente, el único motivo por el cual lo quiero hacer es para usar el print server (que parece no funcionar con el firmware que trae)

Quería saber si alguien lo pudo utilizar y le funcionó. Voy a conectar este router a mi red y usarlo como repetidor wifi, tal como estoy haciendo ahora, pero quisiera también usar el puerto usb para conectar una vieja impresora usb y acceder a ella desde Windows, Linux y quizá Android.

¿A alguien le funcionó para eso?

No tengo un adaptador de puerto serie UART y nunca lo hice pero no tengo problema en conseguir uno e intentarlo, pero quisiera saber antes si a alguien le funcionó el servidor de impresión para no hacer todo en vano.

Gracias!
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: gracasola en 27-10-2019, 23:36 (Domingo)
Hola,

Llegué aquí desde wikidevi y google luego de mucho tiempo de buscar opciones para este router.

Sinceramente, el único motivo por el cual lo quiero hacer es para usar el print server (que parece no funcionar con el firmware que trae)

Quería saber si alguien lo pudo utilizar y le funcionó. Voy a conectar este router a mi red y usarlo como repetidor wifi, tal como estoy haciendo ahora, pero quisiera también usar el puerto usb para conectar una vieja impresora usb y acceder a ella desde Windows, Linux y quizá Android.

¿A alguien le funcionó para eso?

No tengo un adaptador de puerto serie UART y nunca lo hice pero no tengo problema en conseguir uno e intentarlo, pero quisiera saber antes si a alguien le funcionó el servidor de impresión para no hacer todo en vano.

Gracias!
Yo te puedo decir que en su día use el print server del firmware original (Orange ISP) y me funcionó correctamente. Respecto al firmware de TPLink, lo bueno es que puedes usar la función repetidor de WiFi a WiFi. Además puedes tener varios puntos de acceso funcionando simultáneamente (cada uno con su nombre de red y respectiva contraseña), aunque no he probado el print ser ver, que me imagino que funcionará. Un Saludo.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: gracasola en 24-11-2019, 19:04 (Domingo)
Muy buenas. He estado trasteando el puerto serie del HG532s, y me llamó la atención la consola Linux. Me gustaría saber cómo se podría modificar ficheros usando el editor vi, ya que me ha sido imposible. En un principio lo más sencillo para probar fue editar un archivo html, pero era imposible, porque saltaba el aviso de partición de solo lectura. Personalmente aún no he trabajado con montaje de particiones (Estudio Ing informática), pero siguiente algún tutorial, hice un remount para que todas fueran de lectura y escritura. Luego me permitió hacer un chmod 777 sobre el fichero(haciendo la -la salen todos los permisos para todos), pero aún así salta un error con otro texto, pero que viene a decir lo mismo, que no tengo permisos. Espero me podáis ilustrar. P.D: Hablas brevemente de mtd para modificar rootfs, pero ni idea de cómo usarlo. Saludos.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 25-11-2019, 11:07 (Lunes)
Muy buenas. He estado trasteando el puerto serie del HG532s, y me llamó la atención la consola Linux. Me gustaría saber cómo se podría modificar ficheros usando el editor vi, ya que me ha sido imposible. En un principio lo más sencillo para probar fue editar un archivo html, pero era imposible, porque saltaba el aviso de partición de solo lectura. Personalmente aún no he trabajado con montaje de particiones (Estudio Ing informática), pero siguiente algún tutorial, hice un remount para que todas fueran de lectura y escritura. Luego me permitió hacer un chmod 777 sobre el fichero(haciendo la -la salen todos los permisos para todos), pero aún así salta un error con otro texto, pero que viene a decir lo mismo, que no tengo permisos. Espero me podáis ilustrar. P.D: Hablas brevemente de mtd para modificar rootfs, pero ni idea de cómo usarlo. Saludos.

Hola gracasola. En firmwares empotrados como es este caso casi siempre todo el sistema es de solo lectura, por lo que es imposible realizar modificaciones al firmware. En firmwares de fabricante solo hay un archivo que es modificable, y este es el archivo de configuración que suele hallarse al final de la memoria flash. Ni siquiera podría llamarse archivo, solo datos en bruto en la flash.

Esto es así porque el directorio root es un sistema de archivo comprimido tipo squashfs, debido al limitado tamaño disponible en la memoria flash. Además siendo de solo lectura proporciona la ventaja de tener un firmware "incorrompible" instalado. Cuando se inicia el sistema, lo que necesite linux para poder funcionar con archivos de escritura, estos simplemente se llevan o se montan en un directorio localizado en la RAM y por tanto serán datos volátiles, podremos escribir y efectuar cambios ahí pero no se conservarán.

En Openwrt también ocurre algo parecido, solo que actúa de forma más versátil, root sigue siendo de solo lectura, pero se combina con otra partición que sí es escribible "rootfs_data", y a ojos del kernel root acaba comportándose como una partición de "lectura/escritura". En este caso podemos "modificar" cualquier fichero, y los cambios se conservan en los reinicios porque la capa de montaje por encima de root así lo permite. Pero si hacemos un reset de fábrica, root vuelve al estado original ya que en realidad no se produjo ningún cambio. Esta forma de funcionar es una de las grandes ventajas de OpenWrt sobre el resto de firmwares.

Obviamente es imposible que consigamos que este firmware se parezca a OpenWrt. Y por tanto la única forma de hacer modificaciones es extraer rootfs de la flash del router en nuestro ordenador personal, hacer allí las modificaciones oportunas, volver a comprimir root en un archivo "squashfs" y finalmente flashearlo en el router.

En su día hice varias modificaciones en la partición root para el HG532s, que es la que se usa en este tutorial, entre esas modificaciones lo que hice fue incluir la utilidad mtd, para flahear root de forma cómoda desde el propio router.

Espero haber aclarado un poco del como funcionan los sistemas de archivos de estos routers, y por qué son de solo lectura.

Saludos
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: gracasola en 25-11-2019, 23:52 (Lunes)
Muy buenas. He estado trasteando el puerto serie del HG532s, y me llamó la atención la consola Linux. Me gustaría saber cómo se podría modificar ficheros usando el editor vi, ya que me ha sido imposible. En un principio lo más sencillo para probar fue editar un archivo html, pero era imposible, porque saltaba el aviso de partición de solo lectura. Personalmente aún no he trabajado con montaje de particiones (Estudio Ing informática), pero siguiente algún tutorial, hice un remount para que todas fueran de lectura y escritura. Luego me permitió hacer un chmod 777 sobre el fichero(haciendo la -la salen todos los permisos para todos), pero aún así salta un error con otro texto, pero que viene a decir lo mismo, que no tengo permisos. Espero me podáis ilustrar. P.D: Hablas brevemente de mtd para modificar rootfs, pero ni idea de cómo usarlo. Saludos.

Hola gracasola. En firmwares empotrados como es este caso casi siempre todo el sistema es de solo lectura, por lo que es imposible realizar modificaciones al firmware. En firmwares de fabricante solo hay un archivo que es modificable, y este es el archivo de configuración que suele hallarse al final de la memoria flash. Ni siquiera podría llamarse archivo, solo datos en bruto en la flash.

Esto es así porque el directorio root es un sistema de archivo comprimido tipo squashfs, debido al limitado tamaño disponible en la memoria flash. Además siendo de solo lectura proporciona la ventaja de tener un firmware "incorrompible" instalado. Cuando se inicia el sistema, lo que necesite linux para poder funcionar con archivos de escritura, estos simplemente se llevan o se montan en un directorio localizado en la RAM y por tanto serán datos volátiles, podremos escribir y efectuar cambios ahí pero no se conservarán.

En Openwrt también ocurre algo parecido, solo que actúa de forma más versátil, root sigue siendo de solo lectura, pero se combina con otra partición que sí es escribible "rootfs_data", y a ojos del kernel root acaba comportándose como una partición de "lectura/escritura". En este caso podemos "modificar" cualquier fichero, y los cambios se conservan en los reinicios porque la capa de montaje por encima de root así lo permite. Pero si hacemos un reset de fábrica, root vuelve al estado original ya que en realidad no se produjo ningún cambio. Esta forma de funcionar es una de las grandes ventajas de OpenWrt sobre el resto de firmwares.

Obviamente es imposible que consigamos que este firmware se parezca a OpenWrt. Y por tanto la única forma de hacer modificaciones es extraer rootfs de la flash del router en nuestro ordenador personal, hacer allí las modificaciones oportunas, volver a comprimir root en un archivo "squashfs" y finalmente flashearlo en el router.

En su día hice varias modificaciones en la partición root para el HG532s, que es la que se usa en este tutorial, entre esas modificaciones lo que hice fue incluir la utilidad mtd, para flahear root de forma cómoda desde el propio router.

Espero haber aclarado un poco del como funcionan los sistemas de archivos de estos routers, y por qué son de solo lectura.

Saludos
Buenas danitool.
La verdad me aclaraste bastante. He extraido la parte de rootfs del firmware, y despues de varios intentos la consegui descomprimir con sasquatch. El problema está en que despues de la modificación no he conseguido volver a comprimirla correctamente. Usando la version 3.0 de squashfs (que es la que tu usaste entonces), el problema es que la compresion lzma no viene por defecto como opcion. Aunque me descargue algunas utilidades con lzma https://github.com/mirror/firmware-mod-kit (https://github.com/mirror/firmware-mod-kit), ninguna me sirvió. Probe el "squashfs-3.2-r2-hg612-lzma" entre otros, obteniendo un archivo con las siguientes caracteristicas (en esta prueba solo descomprimí y volví a comprimir el mismo contenido):
"Squashfs filesystem, big endian, version 3.0, size: 5920862 bytes, 559 inodes, blocksize: 65536 bytes, created: 2019-11-25 21:53:08", en comparación con el tuyo:
"Squashfs filesystem, big endian, version 3.0, size: 5917513 bytes, 559 inodes, blocksize: 65536 bytes, created: 2018-12-04 20:15:22"
Aun así flasheandolo con la utilidad mtd, provoca errores de descompresión, teniendo que flashear de nuevo desde el bootloader. Espero me puedas ayudar, en este tema que considero interesante.
Un saludo.
EDITO: Ya consegui comprimir rootfs, miré en todas las carpetas menos en la mas obvia.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: pajarraco en 01-12-2019, 21:08 (Domingo)
Buenas y santas Danitool
Que magnifico aporte, no puedo creer haberle dado una segunda vida a este router que estaba juntando polvo en un cajón.
Tengo una duda... es posible conectar este router (ahora tplink) como cliente, a un AP con internet (cuya IP sea 192.168.0.1, por ej) y "rutear" a los puertos ethernet, para conectar mediante red cableada una computadora por ej.

Se que esto es muy fácil con Openwrt, pero no lo he conseguido con este router activando WDS.
Tal vez mediante comandos Telnet o modificando el rootfs se pueda lograr, pero no se ni como buscar la respuesta en google.
Saludos.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 02-12-2019, 00:28 (Lunes)
Buenas y santas Danitool
Que magnifico aporte, no puedo creer haberle dado una segunda vida a este router que estaba juntando polvo en un cajón.
Tengo una duda... es posible conectar este router (ahora tplink) como cliente, a un AP con internet (cuya IP sea 192.168.0.1, por ej) y "rutear" a los puertos ethernet, para conectar mediante red cableada una computadora por ej.

Se que esto es muy fácil con Openwrt, pero no lo he conseguido con este router activando WDS.
Tal vez mediante comandos Telnet o modificando el rootfs se pueda lograr, pero no se ni como buscar la respuesta en google.
Saludos.

Tengo anotado algún experimento de este tipo. Asumiendo que usamos el falso WDS de tplink (en realidad modo bridged client de ralink).
Código: [Seleccionar]
brctl delif br0 apcli0

iptables -t nat -A POSTROUTING -o apcli0 -j MASQUERADE
ifconfig apcli0 192.168.0.253
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
echo 1 > /proc/sys/net/ipv4/ip_forward
no sé si funciona, lo pongo simplemente como referencia
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: pajarraco en 03-12-2019, 02:41 (Martes)
Funciona perfecto o casi perfecto !!.

Tengo Internet y acceso al router con internet (192.168.0.1), pero a las maquinas se les asignan IP en el rango 192.168.0.xx directamente. Esto para mi no es un gran problema pero no se, si debería funcionar así. Ademas pierdo el acceso al tplink (cuyo IP es 192.168.2.1), (ahora que lo pienso no probé conectarme a traves de 192.168.0.253).

Para poder crear una subred en 192.168.2.xx, aislada y no visible por las maquinas en 192.168.0.0 probé activar el DHCP server del TP-link. De esta forma, cada maquina en la red se le asignó un IP en el rango 192.168.2.xx, tengo acceso al router 192.168.0.1 y puedo hacer ping a las maquinas de ambas redes 192.168.0.xx y 192.168.2.xx, pero no tengo acceso a internet, por ej. ping 8.8.8.8 no funciona. Cuando entro a router con internet, veo la lista de clientes DHCP y figura 192.168.0.253, así que no se bien porque no tengo conexión a internet.

PD: ¿ hay forma de apagar el AP del tplink, pero mantener la conexion WDS ?
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 03-12-2019, 09:39 (Martes)
Funciona perfecto o casi perfecto !!.

Tengo Internet y acceso al router con internet (192.168.0.1), pero a las maquinas se les asignan IP en el rango 192.168.0.xx directamente. Esto para mi no es un gran problema pero no se, si debería funcionar así. Ademas pierdo el acceso al tplink (cuyo IP es 192.168.2.1), (ahora que lo pienso no probé conectarme a traves de 192.168.0.253).

Para poder crear una subred en 192.168.2.xx, aislada y no visible por las maquinas en 192.168.0.0 probé activar el DHCP server del TP-link. De esta forma, cada maquina en la red se le asignó un IP en el rango 192.168.2.xx, tengo acceso al router 192.168.0.1 y puedo hacer ping a las maquinas de ambas redes 192.168.0.xx y 192.168.2.xx, pero no tengo acceso a internet, por ej. ping 8.8.8.8 no funciona. Cuando entro a router con internet, veo la lista de clientes DHCP y figura 192.168.0.253, así que no se bien porque no tengo conexión a internet.

PD: ¿ hay forma de apagar el AP del tplink, pero mantener la conexion WDS ?

Esta configuración debería solucionar lo del acceso a internet
Código: [Seleccionar]
brctl delif br0 apcli0
iptables -t nat -A POSTROUTING -o apcli0 -j MASQUERADE
ifconfig apcli0 192.168.0.253
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1
echo 1 > /proc/sys/net/ipv4/ip_forward

Es obvio que son cambios volátiles y si reinicias el router los pierdes. La única forma es que modifiques rootfs.
En el rootfs que modifiqué para el tutorial de instalación, hay un script para configuraciones extra que coloqué en el archivo /bin/custom_config
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: pajarraco en 03-12-2019, 22:33 (Martes)
Muchas gracias Danitool, funciona perfectamente !!. Lo que sí, tuve que setear el DNS manualmente en la configuracion DHCP, ( 8.8.8.8 ), pues tenia ping a todas las IP externas, pero no me resolvía las direcciones.
Ahora queda modificar el rootfs para que los cambios sean permanentes, y si tengo tiempo, estudiar un poco como modificar la pagina de configuración para activar este "modo" de funcionamiento a voluntad.

Estaba pensando en aplicar este router a una antena externa, ya que este modo de funcionamiento me permite tirar cable de ethernet, en vez de coaxil.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: gracasola en 03-12-2019, 23:15 (Martes)
Por cierto, si alguien ha conseguido compilar en C/C++ para este dispositivo, agradecería me indicase las herramientas que uso y sus versiones. Haciendo una compilación cruzada en MIPS Big Endian (gcc-mips-linux-gnu) solo he conseguido errores de violación del segmento. Sospecho que tiene que ver con las librerias de c, que deben ser para una version del kernel 2.6, o bien de la cabecera. Sinceramente, es la primera vez que intento una compilación cruzada. Uso Ubuntu 18.04. Gracias de antemano.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 04-12-2019, 17:54 (Miércoles)
Hola gracasola, cuando realicé ciertas modificaciones en el rootfs del tutorial también compilé algunos extras para el mismo. Desgraciadamente después del último fiasco en el disco duro que almacenaba parte del proyecto perdí las configuraciones y anotaciones varias para compilar, aunque realmente no tuve problemas para hacerlo.

La toolchain que usé es una preparada para este SoC en particular, que es un Trendchip a pesar de ser del fabricante Ralink.

La toolchain la conservo, la tengo en la ruta "/opt/trendchip/mips-linux-uclibc", creo que la situé ahí para que no dé problemas para compilar. Puedes encontrarla en la GPL del Asus DSL-N14U

https://dlcdnets.asus.com/pub/ASUS/wireless/DSL-N14U/GPL_DSL-N14U_1123617.zip

Para compilar cosas sencillas no debería haber problemas. Por ejemplo usando este script para realizar la compilación cruzada, a modo de ejemplo:
Código: [Seleccionar]
#!/bin/bash
export CROSS_COMPILE=/opt/trendchip/mips-linux-uclibc/usr/bin/mips-linux
export AR=${CROSS_COMPILE}-ar
export AS=${CROSS_COMPILE}-as
export LD=${CROSS_COMPILE}-ld
export RANLIB=${CROSS_COMPILE}-ranlib
export CC=${CROSS_COMPILE}-gcc
export CPP=${CROSS_COMPILE}-cpp
export NM=${CROSS_COMPILE}-nm
export CXX=${CROSS_COMPILE}-c++
#export LIBS="-static"
export CFLAGS="-fomit-frame-pointer -O2 -DTCSUPPORT_CPU_RT63365 -DTC3262"
export STRIP=${CROSS_COMPILE}-strip

./configure \
--host=mips \
--build=i586-pc-linux-gnu \
--without-ssl \
--disable-debug \
--disable-nls
make
$STRIP -s aplicacion

Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: gracasola en 05-12-2019, 00:10 (Jueves)
Hola gracasola, cuando realicé ciertas modificaciones en el rootfs del tutorial también compilé algunos extras para el mismo. Desgraciadamente después del último fiasco en el disco duro que almacenaba parte del proyecto perdí las configuraciones y anotaciones varias para compilar, aunque realmente no tuve problemas para hacerlo.

La toolchain que usé es una preparada para este SoC en particular, que es un Trendchip a pesar de ser del fabricante Ralink.

La toolchain la conservo, la tengo en la ruta "/opt/trendchip/mips-linux-uclibc", creo que la situé ahí para que no dé problemas para compilar. Puedes encontrarla en la GPL del Asus DSL-N14U

https://dlcdnets.asus.com/pub/ASUS/wireless/DSL-N14U/GPL_DSL-N14U_1123617.zip

Para compilar cosas sencillas no debería haber problemas. Por ejemplo usando este script para realizar la compilación cruzada, a modo de ejemplo:
Código: [Seleccionar]
#!/bin/bash
export CROSS_COMPILE=/opt/trendchip/mips-linux-uclibc/usr/bin/mips-linux
export AR=${CROSS_COMPILE}-ar
export AS=${CROSS_COMPILE}-as
export LD=${CROSS_COMPILE}-ld
export RANLIB=${CROSS_COMPILE}-ranlib
export CC=${CROSS_COMPILE}-gcc
export CPP=${CROSS_COMPILE}-cpp
export NM=${CROSS_COMPILE}-nm
export CXX=${CROSS_COMPILE}-c++
#export LIBS="-static"
export CFLAGS="-fomit-frame-pointer -O2 -DTCSUPPORT_CPU_RT63365 -DTC3262"
export STRIP=${CROSS_COMPILE}-strip

./configure \
--host=mips \
--build=i586-pc-linux-gnu \
--without-ssl \
--disable-debug \
--disable-nls
make
$STRIP -s aplicacion
Muchas gracias. Antes de que me respondieras he compilado usando buildroot-2011.05, aunque aun no lo he podido probar. Espero en estos días hacer la prueba, y echare un vistazo a link de Asus. Con lo que sea comentaré. Un saludo
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: Algo96 en 22-12-2019, 18:08 (Domingo)
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 dispone de 8 MB de flash, 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:
(http://images.shoutwiki.com/en.techinfodepot/9/9d/Hg532s-uart.jpg)

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 (https://github.com/danitool/bootloader-dump-tools/blob/master/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 (https://drive.google.com/uc?export=download&id=1qt07ToRzBz64DNIpFflhSyPWMBM5drOK). 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
Código: [Seleccionar]
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. Aparentemente en el firmware  de Huawei no parece estar habilitado en el kernel el soporte multiprocesador. En el de Tplink sí.

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:

(https://i.imgur.com/38JfhDR.png)

En el emulador de la configuración por web podemos ver todo el repertorio completo: https://emulator.tp-link.com/89680306/index.htm

Esta información la publiqué también en http://en.techinfodepot.shoutwiki.com/wiki/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.


Buenas tardes DaniTool,

Primero de todo te doy la enhorabuena por el trabajazo que has hecho con este router, al fin tendrá una utilidad práctica este router.

Te quería comentar el siguiente problema que tengo y que no me deja continuar con el tutorial. Al ejecutar el comando de Python para obtener un backup del router se me queda pillado eternamente en "Waiting for a prompt...". Lo que hago es ejecutar el comando con sudo, puesto que si no lo hago así me dice que no tiene permisos para acceder a /deb/ttyUSB0, y posteriormente enciendo el router con el puerto serial ya conectado al portatil. Qué puedo estar haciendo mal?
PD: si me conecto al router con Putty a través del puerto serial obtengo lectura del mismo sin problemas.

Un saludo y gracias por adelantado!!!
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 23-12-2019, 15:10 (Lunes)
Hola Algo96, para solucionar lo de los permisos del puerto serie usa este comando:
Código: [Seleccionar]
sudo chmod ugo+rw /dev/ttyUSB0
Comprueba que la linea de comandos de tu bootloader usa el prompt
Código: [Seleccionar]
bldr>Ya que es la cadena de caracteres que usa el script para saber que está listo para empezar el backup enviando comandos de volcado

No hay ningún requerimiento más en particular para que el script funcione. Comprueba que todo está conectado correctamente, en putty deberías ser capaz de parar tu mismo manualmente en la consola de comandos del bootloader (obteniendo el prompt bldr>), de otra forma tal vez el cable TX del puerto serie no funcionaría.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: ebonggio en 31-12-2019, 20:28 (Martes)
Hola! buscando en internet que poder hacer con mi HG532s me encontré con esta guia.
Siendo que soy una persona que no sabe ni como cambiar un bombillo voy a hacer una pregunta bastante boba.

Como deberia conectar el adaptador de puerto serie en la placa? Deberia soldar los cables o existe otra manera de conectarlos?

(https://http2.mlstatic.com/puerto-com-serial-adaptador-conversor-usb-a-uart-rs232-ttl-D_NQ_NP_621083-MLA31040211829_062019-F.webp)

ese adaptador iba a comprar dice ser `Puerto Com Serial Adaptador Conversor Usb A Uart Rs232 Ttl` pero no sabria que si necesito ademas de eso un soldador para poder conectarme a la placa. Eso saludos y excelente trabajo
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: danitool en 01-01-2020, 11:44 (Miércoles)
Hola ebonggio. Sí, ese es el adaptador que necesitas para conectar el puerto serie.

Lo recomendable es que sueldes un pinheader (2.54 mm pitch) a la placa, se puede hacer directamente o mediante cables como indico en un post anterior.

Aunque hay gente habilidosa que es capaz de conectar un puerto serie sin soldar nada, por ejemplo pinchando alfileres en el puerto pero no lo recomiendo ya que si se suelta alguno y cae por la placa podrías hacer un corto y quemar el router.
Título: Re:[HG532s] Cambio a firmware Tplink con función repetidor
Publicado por: DOGUIS en 05-02-2020, 12:33 (Miércoles)
Como se los datos de calibracion?? gracias