Demattonizzare Router

Usate questo forum per richieste di aiuto e consigli sull'hardware montato nelle vostre macchine con GNU/Linux Slackware.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Citare il tipo di hardware coinvolto in modo dettagliato.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT. Non usare termini gergali come procio, mobo e simili per identificare i componenti hardware.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Demattonizzare Router

Messaggio da rik70 »

Ciao e perdonate il titolo.

La faccio breve:
durante un'operazione di aggiornamento del firmware il router - netgear DG834v2 - s'è bloccato. Lasciato a cuocere per un po di tempo l'ho spento, poi riacceso e non ne vuole sapere di ripartire.
Lampeggiano contemporaneamente i led power e status e dopo una ricerca ho scoperto che sicuramente è il bootloader inchiodato.

Apro, smonto e collego un adattatore USB UART/TTL alla porta seriale JP603 e provo a vedere che salta fuori con

Codice: Seleziona tutto

screen /dev/ttyUSB0 115200
e in effetti ottengo:

Codice: Seleziona tutto

ADAM2 Revision 0.18.01
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz]
Memory optimization Complete!
ASMode.
Copying download from b0017000 to b4020000
e da lì non si schioda.
Idee? A parte buttare tutto....

P.s.
Il router non ha porta JTAG. Riesco in modalità recovery a flashare il firmware e l'operazione va a buon fine, ma lì rimane.

Avatar utente
uboot
Linux 0.x
Linux 0.x
Messaggi: 27
Iscritto il: lun 24 dic 2007, 20:17
Nome Cognome: Sandro M
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE 5.23
Località: Attimis-Buja

Re: Demattonizzare Router

Messaggio da uboot »

il bootloader sembra OK ma manca il firmware che è corrotto (anche se dici che in recovery lo ricarichi correttamente )
mettendogli a disposizione il firmware su tftp questo dovrebbe riprenderselo .... da provare
https://www.davidepermunian.com/blog/co ... llito.html
In bocca al lupo ....

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Demattonizzare Router

Messaggio da rik70 »

@uboot
Innanzitutto grazie per l'interessamento, purtroppo però quell'output che vediamo è del bootloader di emergenza.

Mi spiego:
sembra che questi della Netgear abbiano avuto la brillante idea di predisporre una seconda rom con un bootloader ADAM2 minimale che entra in gioco quando evidentemente si corrompe quello principale incluso nel firmware.
Ora, il fatto che il router entri in questa modalità fa pensare che sia saltata la MTD su cui risiede il firmware.

Qualche dettaglio:
la MTD è partizionata in questo modo:

Codice: Seleziona tutto

mtd0    0x900d0000,0x903e0000
mtd1    0x90020000,0x900d0000
mtd2    0x90000000,0x90020000
mtd3    0x903e0000,0x903f0000
mtd4    0x903f0000,0x90400000
Nell'ordine in cui vengono caricate all'avvio:
- in mtd2 c'è il bootloader ADAM2;
- mtd1+mtd0 contengono il kernel e il rootfs;
- in mtd3 vengono salvate le impostazioni del router;
- in mtd4 ci sono le impostazioni del bootloader - semplice variabili d'ambiente che settano gli indirizzi mac delle interfacce di rete, indirizzo ip del server ftp, versione del router, la porta seriale, le partizioni, etc.

Il firmware Netgear è composto da mtd2+mt1+mtd0.
Quindi, quando si flasha il firmware si lasciano inalterate mtd3 e mtd4.

Una delle ipotesi plausibili è(o meglio: era) che si sia incasinata la mtd4 - le impostazioni del bootloader - ma dalla seriale dovrei vederlo, un qualche errore deve saltare fuori.
E poi, se mi desse un prompt potrei rimediare tramite il comando 'setenv': potrei ricostruire l'intera MTD, avviare il server ftp e con un semplice put via client ftp ricaricare la mtd4(ho il dump completo dell'intera rom).
Ma non posso fare niente, perché il router è in modalità recovery.

A questo punto, per dimostrare che c'è un problema nella MTD faccio questo tentativo estremo:
flasho il firmware con un bootloader "nullo", ovvero mi creo una mtd2 vuota con

Codice: Seleziona tutto

dd if=/dev/zero bs=1 count=131072 mtd2-null.bin
Ricreo il firmware netgear con

Codice: Seleziona tutto

cat mtd2-null.bin mtd1.bin mtd0.bin > fw.bin 
e flasho col file fw.bin:

Codice: Seleziona tutto

Erasing flash, this will take around ten seconds...
Upgrading:    4063232/4063232 bytes
Upload completed, will now verify:
Verifying:    4063232/4063232 bytes
Firmware updated/verified successfully!
Bene, a questo punto il router dovrebbe essere inutilizzabile perché ho rasato completamente il bootloader ADAM2.
E invece

Codice: Seleziona tutto

ADAM2 Revision 0.18.01                                                          
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.             
(C) Copyright 2003 Telogy Networks, Inc.                                        
Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz]                   
Memory optimization Complete!                                                   
ASMode.                                                                         
Copying download from b0017000 to b4020000
è ancora vivo.

Morale delle favola:
bisogna dissaldare la MTD e metterne su una nuova, anche se i dubbi non sono tutti risolti.
Ad esempio: perché il caricamento del firmware, previa cancellazione della memoria flash, si conclude correttamente e senza errori?

Avatar utente
uboot
Linux 0.x
Linux 0.x
Messaggi: 27
Iscritto il: lun 24 dic 2007, 20:17
Nome Cognome: Sandro M
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE 5.23
Località: Attimis-Buja

Re: Demattonizzare Router

Messaggio da uboot »

se non l'hai già fatto ,prova a dare un occhiata qui https://openwrt.org/toh/netgear/dg834g







.

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Demattonizzare Router

Messaggio da rik70 »

uboot ha scritto:se non l'hai già fatto ,prova a dare un occhiata qui https://openwrt.org/toh/netgear/dg834
Di nuovo grazie.
Sì, da lì ero partito.

Comunque, altro tentativo:
- vecchio cascione con a bordo WIN XP;
- scarico l'utility di recupero di Netgear e l'ultimo firmware;
- avvio il router in modalità recovery;
- lancio l'utility e:
1) cancellazione della flash eseguita correttamente;
2) caricamento e verifica del firmware eseguiti correttamente.
3) il router si riavvia automaticamente ma nulla cambia:
a) led status(arancione) e power(verde) lampeggiano contemporaneamente;
b) il bootloader ADAM2 come sempre in modalità ASMode.

A questo punto delle 2 l'una:
- o sono in questa situazione
https://forum.archive.openwrt.org/viewtopic.php?id=28433 #post numero 4 ha scritto:Also while we are on the topic of DG834G's for anyone which has/had this problem if your router enters 'ASMode' in a normal boot. Like this,

ADAM2 Revision 0.18.01
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz]
Memory optimization Complete!
ASMode.
Copying download from b0017000 to b4020000

Your ENV partition need to be re JTAGd in as its got a little funky
che tradotto vuol dire che la partizione mtd4, contenente le impostazioni del bootloader, va ripristinata o rigenerata con le opportune variabili d'ambiente - e qui son fregato, in quanto il router non ha porta jtag e quindi andrebbe dissaldata la flash, riprogrammata con una board apposita e risaldata;

- oppure il router ha incontrato un qualche problema hardware e non c'è nulla da fare.

Rispondi