Admin Libre - Administración de sistemas y redes

OpenWrt en TD-W8970 por puerto serie
Por Francisco Gaitán el 1 de Abril de 2022

En este tutorial voy a recuperar un router TP Link TD-WR8970 v1.2 inutilizado debido a una instalación incorrecta de OpenWrt. Se trata de un router con una documentación bastante confusa ya que después de inyectar el comando `telnetd -p 1023 -l login` mediante el SSID o el archivo de configuración y acceder hay que seguir las instrucciones de la página del TD-W9980. Lo hice pero falló, creo que es porque no extendí la imagen que va a mtd2 con carácteres \'0xFF\' como explico aquí.

Este modelo de router sólo es compatible con OpenWrt en las versiones v1 y v1.2 ya que las versiones posteriores usan los infames chips de Broadcom.

Referencias

Herramientas necesarias

  • Cable UTP Ethernet
  • Un ordenador con servidor TFTP
  • Prolific CP2102 USB a UART
  • Cable Dupont hembra-hembra
  • Conector de hilera de pines 4x1

Adaptador USB a puerto serie RS232

Prolific CP2102 USB a serie RS232

Usaré el adaptador USB a RS232 Prolific CP2102 que es compatible con OpenBSD, muy barato y funciona perfectamente. Es el mismo que se usa para conectarse al puerto serie de la Raspberry Pi.

De aquí conectaré TXD a TX, RXD a RX y GND a GND. Es de vital importancia no conectar ningún pin de alimentación.

Procedimiento

Conexiones RX, TX y GND del conector CP2102 para puerto serie en el TP Link TD-W8970 v1.2

Lo primero es abrir el router quitando los cuatro tornillos de la parte trasera y haciendo palanca con cuidado en los tres extremos de cada lateral para sacar la carcasa. Quitando la tuerca y la arandela de cada una de las tres antenas se puede sacar completamente la placa. En la foto indico donde hay que conectar los pines TX, RX y GND del CP2102; en realidad en la placa TX y RX están cambiados ya que la conexión es cruzada.

Aunque es posible soldar directamente un cable, si se tiene el equipo adecuado se puede desoldar y soldar una hilera de pines con separación de 2.54mm una vez quitado el estaño de los cuatro agujeros con una pistola de desoldar accediendo desde la parte inferior.

Conexión de los cables Dupont a la cabecera de pines

Con estos tres pines conectados usando los cables Dupont hembra-hembra y el CP2102 conectado al ordenador se enciende el router con su alimentador y, si todo es correcto, si ya estás conectado a la consola se verá arrancar u-boot.

Para ello usaré el programa cu(1) (para Linux está Minicom) de esta forma, añadiendo previamente al usuario al grupo dialer para no necesitar root:

$ cu -s 115200 -l cuaU0

Servidor TFTP

Ahora configuro un servidor TFTP en un ordenador con IP 192.168.1.2 que va conectado por cable UTP al puerto LAN1 del router. Para ello uso tftpd(8), creando previamente un directorio con la imagen que se va a enviar al router:

# mkdir /var/tftproot
# cp openwrt-21.02.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin /var/tftproot/openwrt.bin
# tftpd /var/tftproot

Instalación de OpenWrt

Con todo conectado, nada más encender el router empezará a arrancar u-boot y se verá por la consola. Hay que interrumpir el arranque pulsando la tecla \'t\'t para llegar a una línea de comandos donde, siguiendo las instrucciones de OpenWrt, hay que poner estos comandos:

# setenv ipaddr 192.168.1.1
# setenv serverip 192.168.1.2
# setenv bootargs \'board=WD8970\'
# tftproot 0x81000000 openwrt.bin
# sf erase 0x20000 0x7a0000
# sf write 0x81000000 0x20000 0x$(filesize)
# reset

Una vez hecho esto, al cabo de unos minutos habrá arrancado OpenWrt y estará escuchando en la dirección IP 192.168.1.1.

Destacado

Contacto

Si has encontrado algún error o quieres comentarme algo mándame un correo a webmaster@adminlibre.org