Autor Tema: [HG532s] Cambio a firmware Tplink con función repetidor  (Leído 27393 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gracasola

  • **
  • Mensajes: 11
Re:[HG532s] Cambio a firmware Tplink con función repetidor
« Respuesta #40 en: 28-10-2020, 13:07 (Miércoles) »
Muy buenas.

Quería preguntar si alguien sabe si con este firmware de TP es posible usar el GPIO en el HG-532S, ya que he buscado mucho pero solo veo alguna posibilidad usando OpenWRT que en este caso, no es viable. Si alguien ha probado otro firm con el que le funcione GPIO me vale también.

Un saludo.

P.D: Le pregunto en especial a @danitool por que se que el ha estado muy metido en este tema de GPIO en routers.


Hola @gracasola. En teoría sí, es posible controlar los GPIOs con el firmware de Tplink. Si no me equivoco el firmware que adjunté debería llevar la utilidad devmem2 incorporada, con esta utilidad se pueden modificar los registros del procesador.



Entonces lo que hay que conocer es:
  • En que dirección están los registros de los GPIOs para este SoC particular, tanto para colocarlos como outputs como para modificar su valor
  • Donde hay GPIOs disponibles en la placa

No tengo respuesta respecto a estos dos puntos.

Además estaría el tema de los pinmux si los hubiese habría que colocarlos para que funcionen como GPIOs, algo improbable si está el GPIO libre en la placa. Puede que los LEDs lleven algún tipo de pinmux, pero no estoy seguro.

Añado, aquí están las posibles direcciones de los gpios que encontré en un archivo que tenía apartado (tc3162.h)

Código: [Seleccionar]
/*************************
 * GPIO Module Registers *
 *************************/
#define CR_GPIO_BASE        0xBFBF0200
#define CR_GPIO_CTRL     (CR_GPIO_BASE + 0x00)
#define CR_GPIO_DATA     (CR_GPIO_BASE + 0x04)
#define CR_GPIO_INTS      (CR_GPIO_BASE + 0x08)
#define CR_GPIO_EDET     (CR_GPIO_BASE + 0x0C)
#define CR_GPIO_LDET        (CR_GPIO_BASE + 0x10)
#define CR_GPIO_ODRAIN      (CR_GPIO_BASE + 0x14)
#define CR_GPIO_CTRL1     (CR_GPIO_BASE + 0x20)

#define GPIO_IN 0x0
#define GPIO_OUT 0x1
#define GPIO_ALT_IN 0x2
#define GPIO_ALT_OUT 0x3

#define GPIO_E_DIS 0x0
#define GPIO_E_RISE 0x1
#define GPIO_E_FALL 0x2
#define GPIO_E_BOTH 0x3

#define GPIO_L_DIS 0x0
#define GPIO_L_HIGH 0x1
#define GPIO_L_LOW 0x2
#define GPIO_L_BOTH 0x3

no sé si son los correctos para este SoC

Muchas gracias. La verdad que nunca he trabajado con este tipo de código a tan bajo nivel (ni tampoco he usado devmem2, claro) , pero agradezco tu dedicación. Aun así, he encontrado en el firmware del router asus que pasaste hace tiempo, un fichero "ledcetrl.c" https://drive.google.com/file/d/1whdKQnJOBC9M09o4oXvwjvL7FhevLGw-/view?usp=sharing que podría ser muy interesante. Este fichero usa el header tc3162.h que antes mencionaste. Lo de ubicar los pins ya sería cosa a parte, pero yo empezaría por intentar encender alguno de los led de estado que ya hay para ver si lo consigo.

Gracias @danitool por tu sabiduría.



Desconectado gracasola

  • **
  • Mensajes: 11
Re:[HG532s] Cambio a firmware Tplink con función repetidor
« Respuesta #41 en: 24-11-2020, 14:41 (Martes) »
Buenas tardes compañeros,

Quería saber si alguien ha intentado correr OpenVPN (como cliente) en este router (con el firmware de Tplink). Tengo una versión compilada (2.3.2) que es la que incluyen los fuentes del router asus que tiene el mismo procesador (y que ha sido anteriormente mencionado en el hilo). El caso es que consigo arrancar OpenVPN, meter el archivo de configuración y todo ok. Me sale un aviso de que la configuración se aplicó correctamente, y seguidamente el router se reinicia abruptamente. Revisando la consola serie, antes de reiniciarse se da un aviso de que se intenta acceder a la dirección virtual de memoria 0x000000 (todo 0's). He probado también con otra versión más reciente (2.4 aprox) y pasa lo mismo. Si alguien tiene algo probado, sea con este vpn u otro agradecería su ayuda.

Un saludo.

P.D: OpenVPN (2.3.2) compilado y el modulo tun.ko necesario https://drive.google.com/drive/folders/1QKqXMUkVCH7behYqMLq8gcsi-aGcrCpn?usp=sharing

Desconectado Tki2000

  • *******
  • Mensajes: 2154
Re:[HG532s] Cambio a firmware Tplink con función repetidor
« Respuesta #42 en: 27-11-2020, 07:48 (Viernes) »
Si el kernel no ha sido compilado con la opción de inyectar el módulo, por mucho que lo intentes no va a funcionar.
Para inyectar un módulo en el kernel, éste tiene que haber sido compilado con esa opción a priori.
Y dudo que el kernel de TP-Link haya sido compilado con esa opción...
No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
Los dispositivos táctiles y las pantallas pequeñas son una lacra para la información relevante y el desarrollo de interfaces de usuario.
Trabajar sin la nube debería ser una prestación de los IoT, no un bug.

Desconectado gracasola

  • **
  • Mensajes: 11
Re:[HG532s] Cambio a firmware Tplink con función repetidor
« Respuesta #43 en: 30-11-2020, 20:41 (Lunes) »
No había considerado esa opción, pero el caso es que busybox si que contiene insmod y no reporta ningún error al insertar el módulo. Entiendo que si el kernel no soportase esta operación, sería aquí donde se lanzase el fallo. Además en openvpn sin el módulo se avisa de que falta dicho componente, y una vez insertado, se ejecuta hasta el final correctamente (justo después casca).

Edito:Los modulos de kernel se pueden insertar perfectamente y funcionan
« Última modificación: 07-12-2020, 00:02 (Lunes) por gracasola »

Desconectado chonanaraul

  • **
  • Mensajes: 1
Re:[HG532s] Cambio a firmware Tplink con función repetidor
« Respuesta #44 en: 13-01-2021, 18:50 (Miércoles) »
 :-\ Hola a todos una búsqueda incansable me trajo aquí, de hecho he estoy intentando realizar el tutorial tanto en Windows como en Ubuntu y no doy con el ripeo del backup, alguien me puede ayudar con un tutorial sobre eso. Estaría muy agradecido