Aggiornare il firmware del D-Link DSL300T

EDIT: leggi prima questo post!

Sì, alla fine ce l’ho fatta! :D
Incredibile, vero?

Ecco intanto dei buoni motivi per aggiornare:

  • il modem diventerà un router;
  • non perderà più la connessione;
  • più stabile (considerate che ora se gioco online mentre scarico il ping è sempre basso);
  • supporterà l’adsl2;

oltre a vantaggi minori quali:

  • interfaccia web in italiano, più veloce e più bella;
  • la luce status si accende solo quando si è connessi (molto più utile).

Ora vi illustrerò la procedura che ho usato, fattibile anche da Linux (secondo voi da dove l’ho fatto? :P).
E’ ovvio comunque che io non mi assumo alcuna responsabilità. Questo è il procedimento che ho usato io, e non è detto che funzioni anche a voi.
Comunque, se siete qua un motivo ci sarà… buona lettura ;)

1. Download firmware

Come prima cosa scarichiamo il firmware. Ce ne sono un’infinita; quello che ho usato io (creato da Osvi) è reperibile qui. Questi firmware trasformano il modem in un vero e proprio router, dal momento che inegra in esso iptables!
Scompattate l’archivio e rinominate filesystem.img in fs, e kernel.bin in krn. Non è necessario, ma dato che lo diceva la guida che ho seguito… :)
Creiamo inoltre un file vuoto, che chiameremo ad esempio config.xml, nella stessa directory.

Scarichiamo anche quello originale da qui.

2. Controllo della flash

Questo passaggio non è strettamente necessario, ma potrebbe essere utile. Parlo di controllare se la flash del vostro modem sia intel o amd. Per fare ciò, aprite il modem e guardate in basso a sinistra. Vi metterei la foto del mio, solo che non posso scaricare la foto dal cellulare (uno schifoso Nokia 7610) perché non ho i permessi… mi piacerebbe sapere che permessi mancano a root.
Comunque, eccone un’altra:

d-link dsl300t (anteprima)

Come potete vedere, in basso a sinistra è ben visibile la scritta intel.

3. Ottenere l’ip di adam2

Ora richiudetelo e, una volta acceso e riconosciuto dal pc, connettiamoci ad esso tramite telnet (prima installate netkit-telnet):

$ telnet 192.168.1.1

Se non dovesse funzionare, provate anche con 192.168.0.1 o 10.8.8.8.
Dopo date questo comando per conoscere l’ip di adam2, il bootloader del modem, che impareremo ad odiare presto:

cat /proc/ticfg/env | grep my_ipaddress

Teniamolo a mente.

Altra cosa utile nel caso in cui il flashing non vada a buon fine è salvare i dati delle partizioni. Basterà dare

cat /proc/ticfg/env

e salvare il tutto su un file di testo.

4. Configurare la connessione

Cambiamo ora le impostazioni della connessione. Guardate, non so quanto questo sia necessario, ma tutte le guide che ho trovato dicono di farlo, quindi, per non rischiare, l’ho fatto.

ip: 192.168.1.2
netmask: 255.255.255.0
gateway: 192.168.1.1

EDIT: se adam2 non risponde (vedi punto 5), provate con

ip: x.x.x.9
netmask: 255.255.255.0
gateway: x.x.x.x (ip di adam2)

Per ottenere ciò su Arch dovremo modificare /etc/rc.conf. In particolare, tre righe. Io ve le do già corrette, provvedete voi a commentare/modificare quelle vecchie:

eth0="eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255"
gateway="default gw 192.168.1.1"
ROUTES=(gateway)

Salvate e riavviate la rete:

# /etc/rc.d/network restart

Anche se doveste ottenere anche un

SIOCDELRT: No such process

non preoccupatevi, lo ricevevo anch’io, ma ha funzionato tutto lo stesso. Evidentemente cerca di stoppare un qualcosa che però non era attivo…

5. Connessione ad adam2

Ora viene la parte più noiosa, ovvero connettersi ad adam2. La connessione avverrà tramite ftp, quindi per prima cosa installiamo netkit-ftp.

Apriamo una shell, entriamo nella directory in cui è contenuto il firmware e scriviamo ftp, seguito dall’ip di adam2. Nel mio caso:

$ ftp 10.8.8.8

Non premete invio! Il bootloader è accessibile solo dopo circa due secondi che il modem è stato acceso. Quindi, staccate l’alimentazione del modem e riattaccatela, e dopo due secondi premete invio nella shell.
Se tutto va bene, vi verrà chiesto nome utente e password. Entrambi sono adam2.
Purtroppo però potreste non farcela al primo tentativo. Comunque, continuate a riprovare, prima o poi dovrete farcela.
Per me è stato fondamentale l’applet orologio di GNOME con i secondi abilitati, senza di cui non ce l’avrei mai fatta :D (ok, sto esagerando).

6a. Invio del firmware

Una volta dentro, dovremo dare i comandi per cambiare la dimensione delle partizioni, e dopodiché rientrare nuovamente.
Importante! Non ho ben capito se, dopo aver dato i comandi, vada bene lasciare che il modem si accenda completamente (insomma, quando si accendono anche le altre luci oltre a power).
Per sicurezza, se non riuscivo a collegarmi ad adam2 per la seconda volta, spegnevo il modem prima che si accendessero le altre luci e riprovavo. Questo perché non sono assolutamente sicuro che le nuove partizioni vengano conservate se lo si lascia accendere del tutto.
Ecco i comandi da dare:

quote SETENV mtd0,0x90090000,0x901f0000
quote SETENV mtd1,0x90010000,0x90090000
quote SETENV mtd3,0x901f0000,0x90200000
quote REBOOT

Ora rientriamo come spiegato prima (non lasciate accendere le luci del modem!).

Adesso diamo questi altri comandi, attivando la modalità di trasferimento binaria sulla flash:

quote MEDIA FLSH
bin

E inviamo filesytem e kernel:

put fs "fs mtd0"
put krn "krn mtd1"
put config.xml "config.xml mtd3"

Se ci siamo dimenticati di entare nella directory con quei due file prima di connetterci via ftp, possiamo farlo ora con il comando lcd directory.
Se tutto va bene, riavviate il modem con

quote REBOOT

Rimarrà solo da cancellare la configurazione per poter navigare. Andate al punto 7.
Se invece ricevete un errore 550, allora siete nella situazione in cui ero io: avete una flash intel e adam2 per amd.
Vi ho detto prima di controllare che la flash sia per intel, perchè non so se possa esistere la situazione contraria: flash amd e adam2 per intel.
Insomma, se non avete una flash intel e adam2 per amd non andate oltre: non so cosa potrebbe succedere. Comunque, se siete arrivati fin qua non avete fatto nessun danno. Staccate e riattaccate il modem e tutto continuerà a funzionare come ha sempre fatto (?).

6b. Aggiornamento di adam2

Esistono diverse versioni di adam2. Quello che uso io ora è questo. Tra l’altro, è pure meglio dell’originale, ed è molto più semplice collegarsi ad esso via ftp. Scaricate quello per intel e poi rinominate il file in mtd2.

Ora dobbiamo trasferire il file al modem. Per fare ciò ci sono due metodi: con tftp e creando un webserver. Visto che col primo non ho avuto successo, ho creato un webserver con apache.
E’ stato molto semplice: ho installato apache, avviato httpd

# /etc/rc.d/httpd start

e messo il file mtd2 in /home/httpd/html.

Connettiamoci di nuovo al modem via telnet e scarichiamo il file con wget:

cd /var
wget http://192.168.1.2/mtd2

Funziona anche se mettete l’ip pubblico.
Adesso mettiamo adam2 nella partizione a lui destinata:

dd if=/var/mtd2 of=/dev/mtdblock/2

Se tutto è andato bene, avreste dovuto ottenere come output

126+1 records in
126+1 records out

Se così non fosse, scaricate quello originale da qua e ricaricatelo nello stesso modo (il file è /bin/intero/mtd2; con questo come output dovreste ottenere 127 al posto di 126).

EDIT: Nel caso dopo l’aggiornamento adam2 non rispondesse più, provate a connettervi via ftp a 169.254.87.1.

Ora tornate al punto 5 e rieseguite tutti i comandi. Questa volta dovrebbe funzionare.

7. Ripristino delle configurazioni

A questo punto possiamo anche riabilitare il dhcp.
Se proviamo ad accedere all’interfaccia web del modem, si dovrebbe presentare con una nuova veste grafica, in italiano:

interfaccia web (anteprima)

Nel caso in cui la schermata sia ancora quella vecchia, provate a svuotare la cache del browser.

Nickname e password sono come al solito admin e admin.

Avendo azzerato la configurazione (che comunque è parzialmente compatibile con quella del nuovo firmware) inviando un file vuoto sulla partizione mtd3, dovremo reimpostare la connessione.
L’interfaccia è comunque pesantemente ispirata a quella originale, quindi sarà facile orientarsi.

8. Godere

Eh sì, finalmente abbiamo un modem – ma che dico? un router – che funziona come si deve!
Tra l’altro, dal test su pcflank ora risulto stealthed :)

Ora promettetemi che correte a scaricare come dei folli con ogni programma p2p esistente :D

Ringraziamenti:

Dlinkpedia (la mia guida è basata principalmente su quella presente su questo sito)
Submax (per il link ad adam2 intel)

8 Risposte to “Aggiornare il firmware del D-Link DSL300T”

  1. mOLOk Says:

    grande :)

  2. DSL300T, alla fine ho vinto! « Neo’s blog Says:

    […] blog The Matrix has me… « Voglio andare in carcere… Aggiornare il firmware del D-Link DSL300T […]

  3. Altro firmware per il D-Link DSL300T « Neo’s blog Says:

    […] firmware per il D-Link DSL300T Dopo aver aggiornato il firmware, devo dire che il tanto odiato DSL300T, ormai router, svolge egregiamente il suo lavoro, e, […]

  4. tarquinio il superbo lucrezia amore crown point reviews Says:

    I’m very pleased to discover this web site. I wanted to thank you for ones time
    just for this wonderful read!! I definitely appreciated every bit of it and i also
    have you saved as a favorite to see new things in your site.

  5. rovine maya rudolph national anthem video Says:

    Having read this I thought it was very enlightening.

    I appreciate you taking the time and effort to put this information together.
    I once again find myself personally spending a lot of time both reading and commenting.
    But so what, it was still worthwhile!

  6. rovine maya yucatan Says:

    ңey un mio collega mi ha inviato il link a qսesto
    sito e sono venuto a vedre se effettivamente merita.
    Mi piace tanto. Aggiunto tra i preferiti. Magnifico sito
    e grafica eccezionale

  7. configurazione router netgear n300 Says:

    Sono una settimana che cerco ᥱ questο sito è
    la ѕola cosa attraente che vedo. Proprio brillante.
    Se tutte le persone che creano post facessero аttᥱnzione di prоdurre materiale appassionante
    come գuesto il wᥱb sɑrebbe indubbiamente molto più
    utile. Ti ringrazio

  8. backdoor modem Alcatel Come si risolve Says:

    Ꮋey una mia collega mi ha mandato ⅼ’indirizzo
    di questo blog e sono νenuto a vedere se гeaⅼmente merita.
    Mi ρiace considerevolmente. Aggiunto tra i preferiti. Magnifico blog e grafica spⅼendido.

Lascia un commento