Il collegamento seriale per la fonera

Molto è stato scritto sulla possibilità di avere una console seriale per poter accedere alla fonera , senza l’hacking del form injection della gui web.
Mi sono accorto però che tutti i tutorial sono scritti in inglese ed alcuni , sebbene molto completi , non prevedono un troubleshooting in caso di difficoltà da parte dei meno smaliziati.
Ho deciso quindi di scrivere questo piccolo tutorial per il collegamento via console seriale ed eventuali procedure di resetting/debricking.

Primo Disclaimer : Se non siete tanto pratici , non provate a farlo , anche se è tutto abbastanza semplice , tutto quanto è descritto in questo post , richiede un po di pratica con i comandi *nix/bsd.

Secondo Disclaimer : se vi ritrovate con un grazioso mattoncino bianco tra le mani dopo aver seguito quanto qui scritto, non ritenetemi responsabile , tutto quello che andrete a fare è sempre e solo sotto vostra unica responsabilità

L’uscita prevista dalla fonera è del tipo ttl , una sorta di seriale su 12 volt , una porta molto usata un tempo su molti controller o sulla quasi totalità dei PLC. Ora tutti i suddetti controlli logici si sono evoluti e tutti escono di fabbrica con la loro bella presa usb e il loro bel software che come al solito gira solo su macchine Win.

Ma veniamo al nostro connettore 10 pin TTL sulla fonera . Eccone una foto in dettaglio .

piedinatura

Notate che la connessione per lo scambio dei dati è posta al secondo e terzo piedino , mentre al quinto è posta la massa (negativo) Esiste anche un’uscita a 3,3volts ed è posta al quinto piedino della seconda file , immediatamente dietro il piedino di massa.
I due condensatori posti immediatamente dietro alla piedinatura ,vi danno l’idea di come è stata presa la foto , ossia dal fondo dove sono posti i led di controllo verso l’alto , dove c’è la porta rj45 e il bocchettone d’antenna per intenderci.
Io in questo tutorial non prendo in considerazione l’alimentazione interna della fonera , dal momento che ho comprato un max 232 converter da 5volts che quindi ha necessità di essere alimentato con una fonte esterna.
Il convertitore max 232 l’ho acquistato su ebay , pagandolo decisamente una follia , rispetto al valore della fonera . Per risparmiare , l’alternativa è costruirselo da soli , e allora il costo dei componenti non credo possa superare i 5 euro. Ma io sono decisamente imbranato per l’elettronica e quindi ho proceduto all’acquisto . Magari potrò ammortizzarlo per lo sblocco di fonere in cambio di un pugno di euri :).
Ecco la foto del mio convertitore max 232 a 5volts

schedina

La descrizione della corrispondenza dei quattro fili esposta in foto è relativa al modello in mio possesso .Ovviamente fate riferimento allo schema elettrico del vostro convertitore per i collegamenti.
Per collegare la basetta alla porta della fonera ho usato un connettorino a 10 pin , sradicato da una scheda firewire fulminata che sembra proprio fatto apposta.

fonerars232

Ho poi collegato i fili ( di molto avvolticciolati come si dice dalle mie parti) come illustrato qui sotto

fili

Bene , quando tutto è pronto , dotiamoci di un cavo seriale e colleghiamolo ad un computer.

Ora per stabilire una connessione di console seriale abbiamo vari programmi , a seconda del nostro sistema operativo.
Per windows , useremo hyperterminal , con questi settaggi :
Bit per secondo= 9600
bit di dati =8
parità =nessuno
bit di stop =1
Controllo di flusso=nessuno

Per macosx io uso di solito Zterm che ovviamente va settato con gli stessi parametri di sopra , per linux potete usare gtkterm.

Ora tutto è pronto , collegato e si spera funzionante , possiamo accendere la fonera ed osservare i messaggi che appariranno nella nostra console.

+PHY ID is 0022:5521
Ethernet eth0: MAC address 00:18:84:1b:b9:a8
IP: 0.0.0.0/255.255.255.255, Gateway: 0.0.0.0
Default server: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version v1.3.0 – built 16:57:58, Aug 7 2006
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Board: ap51

RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available
FLASH: 0xa8000000 – 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 1.000 seconds – enter ^C to abort

La fonera continuerà il booting , fino a che ci ritroveremo di fronte al classico prompt di linux

BusyBox v1.1.3 (2006.08.17-19:56+0000) Built-in shell (ash)
Enter ‘help’ for a list of built-in commands.

_______ _______ _______
| ____|| || _ |
| ____|| – || | | |
| | |_______||__| |__|
|___|

Fonera Firmware (Version 0.7.1 rev 1) ————-
*
* Based on OpenWrt – http://openwrt.org
* Powered by FON – http://www.fon.com
—————————————————
root@OpenWrt:~#

A questo punto , possiamo avere un controllo completo sul nostro router , possiamo infatti decidere di aprire la porta 22 editando il file firewall.user come descritto da giorgio qui , possiamo aggiungere delle regole di port forwarding di nostro piacimento , possiamo evitare che fon aggiorni la nostra fonera da remoto etc etc.

Insomma , costruire un cavo seriale per avere una shell sulla fonera può fare dannatamente comodo , dal momento che qualora perdeste ogni segnale di vita , a causa di bad flash , oppure di uno smanettamento nei file di init o qualsiasi altro malestro combinerete , potrete sempre recuperarla.

In particolare , ecco alcune istruzioni per recuperare una fonera incriccata dura e affetta da kernel panic.

Se durante il boot della fonera nella vostra console appare quanto segue :

Code: 8c920028 00809821 02408021 <8e020018> 8e030010 30420006 00621825 1460002a 00000000

Kernel panic: Attempted to kill init!

o qualcosa di simile , ma sempre maledettamente minaccioso , fate un passo indietro . Spegnete e riaccendete la fonera e quando vedrete al prompt

== Executing boot script in 1.000 seconds – enter ^C to abort

Affrettatevi a premere CTRL+C . Così entreremo nel menu di redboot e provvederemo a riflashare il gingillo.

Per fare tutto questo , abbiamo bisogno di un server tftp da montare sul nostro laptop o computer che dir si voglia. Illustrerò la procedura per Mac osX , ma puo essere portata su tutti i sistemi operativi , usando il software opportuno.

Per Macosx , prendiamo un server tftp molto facile ed intuitivo tftpserver (che fantasia) che altro non è che una gui per il server tftp gia incluso in macosx.

Una volta sistemato il server tftp , dobbiamo preparare un’immagine da flashare nel dispositivo . Scarichiamo quindi l’ultima immagine ufficiale del firmware FON da qui. Ilfile si dovrebbe chiamare fonera_0.7.1.1.fon. Per creare un bel tar.gz che asserve ai nostri scopi dobbiamo tagliare i primi 519 bytes del file e per fare questo , usiamo il seguente comando :

dd if=fonera_0.7.1.1.fon of=fonera.tar.gz bs=519 skip=1

Prendiamo il file risultante fonera.tar.gz e decomprimiamolo nella directory /private/tftpboot.

Ritorniamo alla nostra console seriale e dal prompt di redboot digitiamo quanto segue

RedBoot> ip_addr -h 192.168.6.2 -l 192.168.6.100/24
IP: 192.168.6.100/255.255.255.0, Gateway: 0.0.0.0

Abbiamo dato indicazione dell’indirizzo ip del nostro server tftp ossia 192.168.6.2 (che puo’ essere qualsiasi altro indirizzo ip del vostro laptop) e forniamo un indirizzi ip a la fonera 192.168.6.100.

Colleghimo il cavo ethernet alla fonera e scarichiamo l’immagine dal nostro server tftp digitando quanto segue

RedBoot> load -r -b %{FREEMEMLO} rootfs.squashfs
Using default protocol (TFTP)
Raw file loaded 0x80040800-0x801c07ff, assumed entry at 0x80040800

a questo punto creiamo un nuovo rootfs con il seguente comando:

RedBoot> fis create rootfs
An image named 'rootfs' exists - continue (y/n)? y


Facciamo reboot e siamo a cavallo.
Credits:

  1. L’articolo recovering a bricked fonera by tiagra
  2. Giorgio Zarrelli con il suo post per attivare l’accesso ssh editando i files firewall.user e thinclient e quant’altro necessita.
  3. Jauzsi per la piedinatura ttl della fonera.
  4. Il grande Giuseppe “Cidio” che mi ha guidato nei collegamenti elettrici e procurato il connettorino a 10 pin

51 thoughts on “Il collegamento seriale per la fonera

  1. Veramente interessante! Ottimo lavoro.

  2. Spettacolo proprio quello che cercavo… mentre non lo stavo cercando! 🙂

  3. Unico neo! come si apre la fonera? le sole 2 viti si trovano sotto i due piedini anteriori…

  4. Oggi ho ricevuto La Fonera che mi hai “regalato” 🙂 E’ bellina. Ho notato che il firmware installato sul mio apparecchio e’ la versione 0.7.1 r2, quindi sembrerebbe piu’ recente del file disponibile su Internet, tra l’altro sembra che abbiano riparato la fallo del web ijection. A questo punto, se voglio smanettarci sopra, dovro’ costruirmi il cavo!

  5. Interessantissima spiegazione! 🙂 Innanzitutto un grazie, ma poi…. sarebbe interessante scoprire come trovare un connettore a 10 pin su due file, in modo da poter effettuare le connessioni all’apparecchio in maniera affidabile e meno “distruttiva” possibile….

  6. Ho sviluppato una patch definitiva per il firmware 0.7.1-r2 che include tra l’altro:
    – Aggiunta di nano e pico
    – Aggiunta di un server ftp
    – Accesso ad ssh
    – Blocco degli aggiornamenti automatici
    – Aggiornamento automatico dell’orario
    – Accesso al pannello di configurazione anche per le connessioni wired (non più solo per quelle senza fili)
    – Aggiornamento del firmware da 0.7.1-r1 a 0.7.1-r2.
    – Chiusura della falla al webserver che permette di eseguire codice arbitrario sulla macchina (e potrebbe rendere la fonera un bel mattoncino -.-‘’)

    Per il momento non so dove pubblicare la patch, quindi apprezzerei volentieri offerte di hosting a riguardo (il file è di 200kb!)

    Grazie a tutti e buona giornata!
    BiGAlex

  7. @ xAGiBel
    hosting per il codice personalmente non ce l’ho .
    Potresti avvalerti di servizi file warehouse tipo Zshare.
    Ciao.

  8. Purtroppo no poichè non posso scaricare nulla se non attraverso un browser (richiedono ad esempio che si inserisca un codice e roba simile… cose comunque che da script non posso fare agevolmente). In ogni caso forse ho trovato un’anima pia che può darmi hosting 🙂

    Ciao!
    xAGiBel

  9. prova a chiedere hosting su http://www.olografix.org !!!

  10. Complimenti per l’ottimo tutorial 🙂
    siccome ho cercato di aggiornare la fonera ma la sfortuna ha voluto che il file del firmware fosse corrotto volevo sapere se mi dai il link del venditore ebay cosi lo compro e provo a seguire le tue istruzioni.

    Grazie in Anticipo

  11. xAGiBel se vuoi posso mettere i tuoi progetti sul mio server ftp che è on linet 24 su 24 mandami una email [email protected].

  12. Sono riusciti a mettere DD-WRT sulla fonera qui ci sono le istruzioni:
    http://www.pobletewireless.blogspot.com/

    da qui si scarica il firmware:
    http://www.dd-wrt.com/dd-wrtv2/down.php?path=downloads%2Fbeta+releases%2Ffonera+builds%2F2006+-+0113_2/

    Figo 🙂

  13. è proprio necessario utilizzare un’alimentazione esterna per la porta seriale? Non si potrebbe prendere dal fonera?

  14. @ andrew.
    no , se costruisci/compri un convertitore a 3.3 Volts puoi prendere l’alimentazione direttamente dalla fonera

  15. Ciao,
    riguardo alla alimentazione del fonero tramite seriale , vorrei capire se e` suff. un cavo (che ho gia` acquistato)
    usb –> rs 232 credo ke l`alimentazione la prenda direttamente dalla porta Usb2 ?!
    O e` necessario comprare un max 232 converter da 5volts
    se si dove lo trovo su ebay?

  16. susate ho bisogno di una mano…c’è nessuno che ha una console seriale per la fone, ed è in provincia di milano? ho provato molti circuti diversi per max232 ma non riesco a interfacciare…se c’è qualche anima più che riesce ad aiutarmi a recuperare la mia fonera morta, mi faccia un colpo…[email protected]

  17. vorrei portare la mia esperienza riguardo il collegamento seriale con la fonera. Personalmente ho utilizzato un vecchio cavo con il quale collegavo il cellulare siemens alla seriale, questi cavi si trovano anche su ebay e costano anche meno del max232.

    vi lascio un link interessante

    http://cablefonera.blogspot.com/search/label/fonera%20siemens%20cable%20movil%20moviles%20ssh%20serie

    cosa ancora più importante è quella del collegamento. La mia fonera bootava soltanto se non era inserito il cavo RX (cioè quello dell’invio). Questo significa che bisogna farla partire prima senza il cavo RX e poi inserirlo dopo un paio di secondi in modo da poter inviare il comando control+c…

    in bocca la lupo

  18. ci ho provato ma non mi và!tu di dove 6 nicosaturno?

  19. putroppo sono di roma…spiegami che problemi ti da il max232. Non riesci nemmeno a ricevere?

  20. allora…se collego il pin 4 del rs232 al max 232 , al posto del 3, ricevo ma mi scrive sempre boot fra 1 secondo control-c sempre e non accetta control-c, con il cavo per Sonyericsson non visualizzo niente!se alimento il max 232 non funziona, devo lasciare scollegati pin 15 e 16 e visualizzo qualcosa ma con caratteri ogni tanto fatti male

  21. putroppo non posso aiutarti. Posso soltanto dirti che inizialmente il mio cavo riceveva mettendo la massa anzichè al primo pin in basso a destra al secondo pin in basso a destra, ricevevo tutto ma non mi prendeva control-c.
    Poi ho capito che dovevo far fare il boot soltanto con il cavo TX e la massa (al pin indicato nel post), e inserire il cavo RX solo dopo che aveva fatto il boot.

    mi dispiace. però non desistere 😀

  22. Ciao a tutti.

    Come uso il mio vecchio data cable per nokia 8210?(3 fili GND/MBUS/TXoRX questi ultimi cambiano tramite switch)

    Inoltre per l’alimentazione del convertitore come faccio a capire se richiede 3 o 5 volt? (connettore pressofuso)

    Infine occhio al pinout sulla fonera sul debrick by tiagra è diverso (qui http://www.easy2design.de/bla/?page_id=98 ) quale è corretto?
    Grazie anticipate

  23. per xmer ,
    nonostante io sia in thailandia e sia ormai preso da meditazione interiore , per avere la connessione seriale ho collegato i fili come descritto nell’howto . Ed ha funzionato al 100 per 100.

  24. volevo segnalare uno schema per creare una rs232 da 3,3V

    http://www.acmesystems.it/?id=106

    ciao

  25. Anche io ho comprato lo stesso convertitore che si vede sul sito, ma dopo aver fatto il collegamento sembra non ricevere i miei comandi! Essendo alimentato a 5V ho utilizzato un trasformatore esterno per alimentare il circuito. Quindi un alimentatore x La Fonera e uno per il circuito. Anche se collego dopo qualche secondo il filo RX continuo a non riuscire a date comandi (nemmeno ad accedere alla consolle) 🙁

  26. Salve,

    ragazzi ho comprato lo stesso convertito con la differenza che è da 3v, appena montato funziona alla grande solo che per sbaglio ne ho presi due se a qualcuno interessa può mandarmi una email a [email protected]

    p.s togliete NOSPMA 🙂

    Grazie

  27. volevo aggiungere che la mia versione non ha bisogno dell’alimentatore xche i 3v li prende dalla fonera.

  28. Finalmente anche io sono riuscito a far funzionare la porta TTL. Qualcuno di voi è riuscito a installare dd-wrt su La Fonera? Contattami vai email qui: http://www.ingens.it/contact/
    Ciao!

  29. Io ci sono riuscito è molto semplice basta seguire le istruzioni che sono nel firmware
    cmq se hai bisogno mandami una email

    Volevo ricordare che se a qualcuno serve la seriale ne ho una in piu

  30. Ciao Frank G.
    Mi interessa la seriale perciò se vuoi contattami su daripu1 @ email.it
    Attendo un tuo contatto

  31. Ciao scusate ma posso avere scambio dati attraverso la fonera tra fisso e portatile?(come se collegassi i due via Etharnet) Se si, come?

  32. Salve, ho costruito un cavo seriale per la fonera, utilizzando un cavetto dati del samsung t100, qualcuno è cosi gentile di aiutarmi ad abilitare l’ssh e le porta per poi configurare la fonera attraverso lan.
    Ovviamente ho gia provato acollegarla fa il boot ecc. ma no ho provato a modificare nulla per ora razie.

  33. Io ho mi sono fatto un convertitore con un MAX232 alimentato dai 3.3 volt della fonera e funge, certo, lo swing di tensione non è +10/-10, arriva si e no a +6/-6, comunque sufficienti per stimolare la seriale del PC.
    Poi sono andato anche un pò oltre..
    http://daubau.net/post/hackinglafonera
    http://www.flickr.com/photos/zef67/sets/72157594533848196/

    Happy hacking !

  34. Ciao Dema,
    dato che anch’io posseggo un Mac, volevo sapere come hai collegato la J-Tag al Mac: tramite un adattatore usb-seriale? Se si, ci sono dei driver che ti permettono di far riconoscere l’adattatore ad xterm?

  35. @Cett1
    per la verità ho usato un laptop con winxp per avere la console seriale.
    In linea teorica , con un adattatore usb seriale e Zterm non ci dovrebbero essere problemi di sorta.
    Fammi sapere.

    Ciao

  36. […] il firmware e avere una Fonera funzionante al 100%. Per eseguire tali operazioni, vi rimando a questo ottimo post, che evidenza, passo passo e con un linguaggio comprensibile anche ai meno esperti, tutte le […]

  37. […] negli hack, se non sono di tipo HW potete usare questo comodo howto per correre ai ripari oppure questo a seconda del modello di AP. Gli italiani si son dati da fare ed ecco qui un wiki e un forum, oltre […]

  38. Volevo sapere se qualcuno ha fatto un backup delle partizioni della fonera. A me serveribbero per degli esperimenti che sto facendo con openwrt.

    ramponis(at)tiscali.it

    Grazie

  39. ragazzi aiuto!avevo una fonera con firmware 0.7.0 rc4 quindi molto datato. ho eseguito tutte le procedure della 071r1 senza pensare che forse era meglio aggiornare a tale versione:(:(:(:(
    risultato? al comando fis create -r 0×80041000 -e 0×80041000 -l 0×000E0000 vmlinux.bin.l7 putty è crashato, non c’è verso di comunicare con la fonera e il led WIFI non si accende più…con questo max232 rieswco a recuperarla???? ho già l’integrato, lo recupero da uno smartmouse, mi mancano i condensatori, se mi dite che ci riesco mi metto al lavoro per provare!
    grazie

  40. ciao, mi chiedevo se non fosse possibile collegare una fonera morta ad una funzionante tramite seriale ed usare quest’ultima per rianimare la prima. c
    come bisognerebbe procedere? basterebbe incrociare rx e tx da una fonera all’altra e poi connettersi tramite telnet?

  41. Ciao Dema, complimenti per il blog. Senti questa: possiedo 3 fonere, di cui 2 “vecchie” prese qualche tempo fa, con firmware 0.7.1-r1, facilmente hackerabile via SSH (già fatto, e fin qui, niente problemi). La terza fonera, mi è arrivata ultimamente (presa con la promozione di Natale 2007) e quando l’ho aperta per vederla “nuda”, mi sono accorto che è *diversa* dalle sue sorelle “vecchie”: l’hardware è cambiato!
    Non si vede più il dissipatore (l’hanno tolto, strano ma vero, adesso il chip Atheros è nudo), e anche l’attacco del cavo seriale è cambiato! Non c’è più quello a 10 pin, ma solo uno a 4 pin. Secondo te và bene lo stesso? Potresti buttarci un occhio e dire che ne pensi?

    Grazie,
    Francesco

  42. Sul nuovo hardware il connettore JP1 è x la connessione seriale, partendo dal connettore di alimentazione abbiamo in ordine GND, RX, TX, 3.3V.

    Hanno risparmiato un po’ su questa nuova versione.

  43. scusata ma vanno bene tutti i cavi x collegamento con cellulare di tipo seirale?
    tipo questo:
    http://cgi.ebay.it/CAVO-DATI-SERIALE-PER-NOKIA-2100-5210-8210-HB4_W0QQitemZ350021225898QQihZ022QQcategoryZ129537QQssPageNameZWDVWQQrdZ1QQcmdZViewItem

    in generale avendo un cavo di questo tipo basta togliere la parte finale e ricollegare alla fonera?

  44. […] Rianimazione resuscitare router FON tramite seriale (quello che mi aspetta) […]

  45. […] realtà la Fonera morta potrei farla resuscitare tramite collegamento seriale… La tua ADSL non ti soddisfa […]

  46. […] Il collegamento seriale per la fonera « Dema (fon) blog (tags: fon fonera seriale hack wifi) […]

  47. Caio. sai per caso dove posso trovare un convertitore rs 232/ttl a basso prezzo?

    rgazie e scusa.

  48. @storto tellab italy ha uno shop su ebay con i convertitori di cui hai bisogno http://myworld.ebay.it/tellab_italy/
    Ciao !

  49. […] questo indirizzo http://dema.tv/2006/12/29/il-collegamento-seriale-per-la-fonera/ è presente un’ottima guida esplicativa sul collegamento seriale della Fonera e […]

  50. Salve, io ho brickato da 1 po’ la mia fonera e avrei bisogno di recuperarla, solamente che non so come fare…

    Devo per forza comprare qualche componente o basta 1 cavetto seriale a caso (per esempio quello di un mouse seriale o qualcosa del genere…)?
    Se posso usarlo come devo collegare i fili?

    Cosa serve l’alimentazione per il lavoro che dobbiamo fare?