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!

Hai trovato utile questo articolo?

Questo articolo è stato visto 810 volte (Oggi 1 visite)
11 comments
  1. Ciao, grazie mille per la guida. L’ho seguita e non mi ha dato nessun problema fino al riavvio, dove è rimasto bloccato con la spia del wps lampeggiante. Hai un idea del perché possa essere successo? Grazie.

  2. ciao, ho da poco firmato un contratto per passare a TIM con fibra fino a 200 mbit. Non ho accettato il loro modem (240€ con rate da 5€ al mese, un vero furto), decidendo o di comprarne uno a molto meno o di usarne uno mio vecchio. Ho tra le mani il TD-W8970 ver 1.2 e girando online ho visto che installando openwrt passa da ADSL2+ a VDSL che dovrebbe supportare appieno la fibra fino a 300 MBIT, confermi? Grazie

    1. Salve Francesco, approvo senza dubbio la tua scelta di usare il modem di proprietà: ti offre la possibilità non solo di risparmiare ma, anche e soprattutto, di poter gestire in totale autonomia la tua connessione. Per quanto riguarda la tua domanda specifica non so aiutarti poiché non ho la fibra e non saprei quindi confermarti il funzionamento.

  3. Purtroppo, dopo aver seguito alla lettera la tua procedura mi sono ritrovato al riavvio con il router BRICKATO e la sola spia power accesa. Tutto per non avere la pazienza di aspettare il cavo seriale già ordinato in Cina… Onestamente, va bene il disclaimer, ma avere reso un bel router inutilizzabile rode. Comunque, per l’amor di Dio, giuro che non ce l’ho con te, se hai qualche suggerimento è ben accetto.

    1. Ciao Lorenzo, mi dispiace molto per l’accaduto! Una domanda: hai verificato che la versione hardware del tuo router sia la 1.2? Io ho provato la procedura per ben 2 volte, su due router diversi, senza alcun problema! Tuttavia, se riesci a connetterti via JTAG, seguendo le istruzioni che trovi sul sito di OpenWRT, dovresti riuscire a recuperarlo: è davvero molto difficile “bickare” in modo definitivo un dispositivo! Fammi sapere, ok?

      Michele

      1. Ciao Michele, la versione è quella, identica al tuo in foto. Dovrebbe arrivarmi un cavetto usb-seriale ttl…l’avessi aspettato! Secondo te da seriale riesco a cavarci qualcosa? Non trovo comunque documentazione su procedure via JTAG

  4. Guida fantastica, l’ho seguita alla lettera e adesso sono riuscito ad installare OpenWRT. In internet non c’è nessuna guida chiara come la tua per questo modem, nonstante penso sia uno di quelli difficili da impostare. Consiglio di tradurla in inglese

  5. Ciao, a me non mi fa salvare il file conf.xml, mi chiede dove voglio salvarlo ma quando clikko su save in realta’ non salva nulla in qualsiasi cartella cerco di salvarlo, da cosa puo’ dipendere?
    Grazie

    1. Salve Marco, difficile riuscire a dare una risposta. Potrebbe dipendere da un bug del firmware come da molte altre cause. Hai provato a guardare se i log del router sono di aiuto, magari segnalando errori o altro?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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