“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.
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 |
Preparazione
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 haveTD-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.
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!
11 comments
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.
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
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.
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.
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
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
L’unica cosa che posso dirti, non avendo avuto il tuo problema, è di leggere bene https://openwrt.org/toh/tp-link/td-w8970_v1
Spesso e volentieri c’è sempre il modo, via JTAG, di arrivare a una console per il flashing del bootloader e/o della ROM, ripristinando il tutto.
Facci sapere, sono sinceramente curioso!
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
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
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?