Guida al flash di openwrt su router Tp-Link TD-W8970 e TD-W8980 TD-W8980 Photo

I due router, prodotti da Tp-Link sono praticamente identici, l’unica differenza è che il 8980 ha anche il wifi a 5Ghz, mentre il 8970 non lo ha.
In ogni caso, per questioni dovute a driver proprietari, dopo il flash di openwrt non sarà possibile sfruttare la banda a 5Ghz!

Per procedere con la modifica, e’ assolutamente necessario avere un adattatore seriale-usb da connettere alla board durante l’operazione.

IMPORTANTE: Prima di procedere con la guida, è necessario scollegare il cavo del telefono.
NOTA: La procedura viene eseguita su linux.

DISCLAIMER: Non mi ritengo responsabile per eventuali router brickati, pertando è consigliabile seguire alla lettera la guida e leggerla tutta prima di procedere.

Inzio della guida:

  1. Smontare il Router svitando le quattro viti presenti nella parte inferiore e forzarne l’apertura usando un plettro o qualcosa del genere, partendo dai lati. Forzando un pò l’unità dovrebbe aprirsi, e non dovrebbe rompersi nessun gancetto in plastica. In ogni caso, anche se dovessero rompersi le 4 viti tengono tutto compatto.

  2. I connettori nella uart vanno stagnati nei 3 punti RX, TX e GND, come indicato in foto: Nella foto a destra il TD-W8970, in quella a sinistra il TD-W8980! 8970 uart 8980 uart

  3. Connettere l’adattatore seriale-usb al pc e al modem, e usando screen leggere l’output con: sudo screen /dev/ttyNOMEDEVICE 115200 8N1

  4. Avviare il router in modalità bootloader:

    -Avviare il router dal pulsante nero posteriore, nella shell dovrebbero comparire delle scritte. Se non compare nulla, probabilmente avete sbagliato a connettere i pin del modem all’adattatore seriale, provate ad invertirli.
    -Premere t finche si arriva ad una shell

  5. Assegnare un Ip statico al pc, utilizzando questi parametri:
     -Ip Addr: 192.168.1.2  
     -Netmask: 255.255.255.0  
     -Gateway: 192.168.1.1  
    
  6. Digitare questi comandi nella shell seriale del router
     setenv ipaddr 192.168.1.1
     setenv serverip 192.168.1.2
    
  7. Connettere il pc al router con un cavo ethernet

  8. Scaricare l’immagine corretta per il proprio dispositivo:
    TD-W8970
    TD-W8980
    Qui carico le due immagini di OpenWrt 18.06.2 separate per i due dispositivi. In ogni caso sono scaricabili dal sito di OpenWrt, scegliendo il target lantiq/xrx200!

  9. Sul pc va avviato dnsmasq nel seguente modo:
    sudo dnsmasq -d --enable-tftp --tftp-root=*sostituire/con/il/percorso/immagine/openwrt

  10. Dare in sequenza questi comandi sulla shell del modem, accertandosi di non commettere errori nel trascrivere gli zeri ( pena il brick ):
    tftpboot 0x80800000 firmware-name.bin
    sf erase 0x20000 0x7a0000 
    sf write 0x80800000 0x20000 0x$(filesize)
    

    NOTA: firmware-name nel primo comando è il nome del firmware, va quindi modificato in base al nome del firmware scaricato. Tra un comando e l’altro accertarsi che tutto venga eseguito con successo e non ci siano errori!
    Se dopo l’ultimo comando la shell riporta: Successfully programmed X bytes @ 0x20000 ( X è un numero che varia in base alla dimensione del file caricato ),
    dare l’ultimo comando : reset che riavvierà il modem. Dovrebbe caricare OpenWrt! Carico qui sotto il log del mio caricamento oscurando con X i vari dati personali come il mac address:

VR9 # setenv ipaddr 192.168.1.1
VR9 # setenv serverip 192.168.1.2
VR9 # tftpboot 0x80800000 wrt.bin
8192 KiB W25Q64 at 0:3 is now current device
MAC: XX-XX-XX-XX-XX-XX  
Using vr9 Switch device
TFTP from server 192.168.1.2; our IP address is 192.168.1.1
Filename 'wrt.bin'.
Load address: 0x80800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###################
done
Bytes transferred = 5046461 (4d00bd hex)
VR9 # sf erase 0x20000 0x7a0000
Erasing SPI flash...
..........................................................................................................................
Successfully erased 7995392 bytes @ 0x20000
Done
VR9 # sf write 0x80800000 0x20000 0x$(filesize)

.............................................................................
Successfully programmed 5046461 bytes @ 0x20000
VR9 # reset

Dopo il riavvio del modem, sempre sulla seriale, premendo invio compare:

BusyBox v1.28.4 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 18.06.2, r7676-cddd7b4c77
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/# 

Ora puoi togliere l’IP statico, spegnere dnsmasq e staccare l’adattatore seriale.
L’interfaccia Web di OpenWrt la trovia all’indirizzo 192.168.1.1

NOTA:Per la configurazione della parte ADSL/VDSL, va caricato uno dei firmware che si trovano nel repo di xdarlight: REPO
Va scaricato il firmware ( i più nuovi sono i migliori), va estratto come indicato nel sito, e caricato sul modem usando prima scp:
scp dslfirmware.bin root@192.168.1.1:/lib/firmware/dslfirmware.bin
Poi entrando nella webui, sotto network/interfaces, in Firmware File va inserito il percorso del file ( in questo caso /lib/firmware/dslfirmware.bin) .
In italia, per l’ADSL va scaricato il firmware Annex A, mentre per la vdsl vanno bene tutti quelli che indicano VDSL over ISDN Se sono presenti quelli col supporto al vectoring, è preferibile scaricare quelli.

Fine