OpenWRT su modem-router ADSL TP-Link W8970

“Se non c’è nessun senso ci risparmiamo un mondo di fastidi,
perché non abbiamo nessun bisogno di trovarcene uno.”
Alice nel Paese delle Meraviglie, Lewis Carrol

Da tanto tempo stavo cercando la possibilità di sostituire il mio attuale router/modem ADSL con una soluzione open-source, senza dovermi arroccare in soluzioni estremamente complicate o troppo difficili da mantenere.

Mi ero ovviamente orientato verso OpenWRT, la distribuzione Linux based dedicata ai sistemi embedded, constatando che il più grosso limite del supporto ai modem ADSL è causata dal chipset della Broadcom, ancora non supportato.

Per caso, sono finito su un forum dove parlavano del router ADSL TP-Link W8970, che nelle versione hardware meno recenti (v1.0 e 1.2) monta il chipset della Lantiq (XWAY VRX268), supportato. Ho così iniziato una ricerca sul mercato dell’hardware usato e, per pochi euro, sono entrato in possesso di un TP-Link W8970 con hardware versione 1.2.

Etichetta del router con versione hardware

Caratteristiche hardware

Il model-router ADSL TPLink TD-W8970 v1 ha le seguenti caratteristiche hardware (dalla relativa pagina sul sito di OpenWRT):

CPU: MIPS34Kc @ 500 MHz
Flash Chip: cFeon Q64-104HIP other Winbond 25Q64FVSIG
Flash Specs: 8 MiB SPI
RAM Chip: Hynix H5PS5162GFR-Y5C other Winbond W9751G6KB or Zentel A3R12E40CBF
RAM Specs: 64 MiB DDR2 @ 250 MHz (3-5-5-5)
Wireless: AR9381 2.4 GHz (3×3) 802.11bgn
Ethernet: 4x 10/100/1000 BASE-TX Ethernet Interface
(2x XWAY VR9 GPHY 11G & 2x XWAY PEF7071 via RGMII)
Switch: Internal configurable (Infineon)
xDSL: Lantiq XWAY VRX208
ADSL1/2/2+ (G.992.1/3/5) Annexes A, B, I, J, M, L,
VDSL1 (G.993.1, T1.424, TS 101 270),
VDSL2 (G.993.2),
ITU-T G 998.2 Bonding,
EFM (IEEE 802.3ah)
USB: 2 x USB 2.0
Power: External 12V 1.5A
Retro del router

Preparazione

Le procedure qui descritte potrebbero danneggiare irreparabilmente il dispositivo o causare altri danni. Non mi assumo alcuna responsabilità in merito. Come dicono gli anglossassoni, at your own risks!

Seguendo il tutorial descritto alla relativa pagina sul WiKi di OpenWRT, la prima cosa da fare se non si vuole aprire il case e saldare il connettore JTAG è abilitare l’accesso via telnet come root:

1) Login to the router web UI at 192.168.1.1 (default). Take backup of the router configuration conf.bin;

2) Download tplink configuration encrypter/decrypter tool from the link below. http://ejs1920.users.sourceforge.net/StatPOSTer-20160306.jar and launch the program StatPOSTer-20160306.jar (java -jar StatPOSTer-20160306.jar)

3) Select the router as TD-w8970v1 and click on decrypt button in the program and select the config file you saved in the step1; 

4) Save the decrypted conf.xml and open it in a text editor;

5) Add the xml tag <Description val="TD-W8970 v1`telnetd -p 1023 -l login`" \> after the xml node SerialNumber and save it;

6) Click the encrypt button, select the modified config, save as conf_modified.bin 

7) Login to the router web ui at 192.168.1.1 and upload the new  conf_modified.bin. And let the router reboot. 

8) Router will reboot and have TD-W8970 v1`telnetd -p 1023 -l login` at the top, this is expected;

9) Telnet to 192.168.1.1 at port 1023 and enter the user name "admin" and password "1234": you are root!

Backup del firmware originale

a questo punto, conquistata la shell di root, si procede con il backup del firmware originale usando una chiavetta USB, che sarà montata automaticamente nella directory /var/usbdisk/sda1:

cat /dev/mtd0 > /var/usbdisk/sda1/mtd0 
cat /dev/mtd1 > /var/usbdisk/sda1/mtd1
cat /dev/mtd2 > /var/usbdisk/sda1/mtd2
cat /dev/mtd3 > /var/usbdisk/sda1/mtd3
cat /dev/mtd4 > /var/usbdisk/sda1/mtd4
cat /dev/mtd5 > /var/usbdisk/sda1/mtd5
cat /dev/mtd6 > /var/usbdisk/sda1/mtd6

e poi si verifica la dimensione del file mtd1 che deve essere esattamente 1310720 bytes (comando ‘ls -l’).

Preparazione e flash del firmware OpenWRT

Adesso si scollega la chiavetta USB e si scarica il firmware OpenWRT (http://downloads.openwrt.org/releases/18.06.2/targets/lantiq/xrx200/openwrt-18.06.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin) sul nostro PC con GNU/Linux.

Usando il comando ‘dd‘ si predispone le immagini da flashare:

dd if=openwrt-18.06.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin of=openwrt-18.06.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade-1.bin bs=1310720 skip=1

ottenendo due files (verificare la dimensione):

3735741 openwrt-18.06.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade-1.bin
5046461 openwrt-18.06.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin

a questo punto, smontare la chiavetta USB e ricollegarla al W8970. Tornare sulla directory /var/usbdisk/sda1 per procedere al flash con:

# cat openwrt-18.06.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin > /dev/mtdblock1
# cat openwrt-18.06.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade-1.bin > /dev/mtdblock2

Il primo comando terminerà con un errore “no such space left on device“: tranquilli, è previsto. Il secondo comando invece dovrà concludersi senza errori.

Interfaccia LuCI

Riavviamo e, se tutto è andato per il meglio, l’interfaccia LuCI vi darà il benvenuto all’IP 192.168.1.1

Configurazione

Il firmware è già abbastanza pronto per le situazioni più comuni. Va ovviamente configurata la rete WiFi e altri dettagli come il server DNS, il server NTP e lo spazio di indirizzi della vostra rete casalinga.

Per la connessione ADSL ho dovuto settare i parametri VCI/VPI corretti (chiedere al provider) e l’incapsulamento (PPPoA o PPPoE). In certi casi va anche aggiunto username e password per l’autenticazione.

Non nego una grande soddisfazione a veder funzionare tutto perfettamente al primo colpo! Inoltre la quantità di parametri visualizzati sulle caratteristiche della linea ADSL è davvero impressionante:

Troubleshooting

Mi è accaduto di avere problemi con il salvataggio delle impostazioni e la presenza di svariati errori del tipo “jffs2_scan_eraseblock(): Magic bitmask…” nel Kernel log: ho risolto facendo un nuovo flash del firmware attraverso l’interfaccia nativa di LuCI (System -> Backup/Flash Firmware).

Buon divertimento!

(Visitato in totale 34 volte, oggi 1 visite)

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.