View source for Devirginator/it
From Openmoko
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Templates used on this page:
Return to Devirginator/it.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Templates used on this page:
Return to Devirginator/it.
Il devirginator un è un programma utilizzato in combinazione con dfu-util, OpenOCD e Debug Board per reporogrammare alle impostazioni di fabbrica il telefono from scratch.
Il codice sorgente di devirginator è disponibile qui http://svn.openmoko.org/trunk/src/host/devirginator/
Per iniziare,
% cp config.example config
e fai le modifiche necessarie. In particulare, devi configurare SNAPSHOT. Quindi
% make
Questo richiede Netpbm e transfig. Infine assicurati che openocd sia attivo, accendi il dispositivo, diventa root, ed esegui
# ./devirginate
Il dispositivo deve essere connesso con:
Inoltre, se una serial console è connessa al dispositivo, la progressione dell'installazione può essere monitorata.
Sono bnecessari i seguenti programmi:
Per fara il build di dfu-util, esegui:
cd $OMDIR/openmoko/trunk/src/host/dfu-util ./autogen.sh ./configure make
OpenOCD SVN revision 130 con libftdi 0.8 funziona. Altre combinazioni possono anche funzionarec. E' richiesto il seguente patch:
http://svn.openmoko.org/developers/werner/openocd-wait-patiently.patch
Per le istruzioni per il build, vedi http://svn.openmoko.org/developers/werner/notes/openocd
Se stai usando la build di OpenOCD fatta dalla OpenMoko distribution (SVN revision 1180 o successiva), il patch è già applicato.
Oltre a tutto ciò, "devirginate" necessita di telnet.
"setup.sh" può essere eseguito da un'altra macchian che ha in share la stessa gerarchia del file system. Necessita di Netpbm, transfig, wget, e Perl.
Innazitutto devirginator necessita di essere configurato. Questo include
Per il momento il setup deve essere fatto nella directory contente tutti i files riferiti a devirginator. I files generati durante il setup sono posizionati nella directory tmp/. I files in tmp/ sono inoltre usati durante l'uso di devirginator.
Per iniziare, copia config.example su "config" e applica le modifiche necessarie. Quasi tutte le configurazioni necessarie sono di defaults, ma una cosa che potresti voler fare è configurare SNAPSHOT con il date code dello the snapshot che desideri.
Poi esegui ./setup.sh o semplicemente make .
setup.sh ora scaricherà ogni file perduto ed eseguirà le varie conversioni. Se apapre qualche errore durante questo processo, ad esempio a causa della mancanza di strumenti o di un errore di configurazione, setup.sh si fermerà con un errore. Potrai quindi correggere l'errore e riprovare. I files già scaricati in tmp/ verranno saltati quando riprovi (setup.sh lo farà lo stessose i files avranno subito dei cambiamenti).
setup.sh inoltre controlla se gli esguibili sono disponibili durante l'uso di devirgination e segnalerà se manca qualcosa. In generale, si può eseguire setup.sh su una macchina diversa che "devirginate", in questo caso questi avvisi saranno ignorati.
I file seguenti contengono script ed altra informazioni di configurazione "statici" che sono usati nel processo di devirgination. Normalmente basta editare questi file per cambiare le funzioni del processo di setup.
Ognuno di questi file è convertito in qualche maniera da setup.sh. Qui sotto dopo la freccia sono indicati i rispettivi file risultanti.
Comandi da eseguire da OpenOCD nella fase 0. Per eseguire una variable expansion, ogni linea di questo file è processata dalla shell con "echo $line". A causa di ciò deve essere evitato l'uso di meta caratteri nella shell.
Se cambi qualche addresses in openocd.in, devi anche effettuare l'aggiornamento di u-boot.in.
Commands to execute in u-boot during stage 0. This file is converted to an image understood by u-boot, and then executed from memory with u-boot's "autoscr" command.
Environment settings for the regular u-boot environment. Note that the changes in this file are made on top of the interim environment produced in stage 0. In particular, the "mtdparts" variable is retained from that stage.
Long lines can be split in environment.in by simply indenting the continuation. Note that the newline and the indentation are replaced with one space. E.g.,
foo=some thing
would yield foo=some thing
Lo splash screen dello stage 0, un faccia sorridente su sfondo verde.
Questa è una copia del logo OpenMoko, che verrà convertito in un'immagine gzip-ed raw framebuffer.
I primi messaggi saranno qualcosa di simile a questo:
Open On-Chip Debugger > script /home/moko/om/trunk/src/host/devirginator/tmp/script.ocd reset halt wait_halt waiting for target halted... Target 0 halted target halted in ARM state due to debug request, current mode: Supervisor cpsr: 0x400000d3 pc: 0x00000000 [...]
E' importante "pc: 0x00000000". Se il numero è differente, ad esempio qualcosa del tipo "pc: 0xffffffed", il dispositivo probabilmente non è acceso. In questo caso puoi provare a farlo ripartire, o se openocd è bloccato,
Il processo di setup è diviso in tre stage (oltre ad uno speciale stage zero, vedi più avnti). Ogni stage lascia il dispositivo in uno stato stabile. Un processo di installazione può includere uttti o solo alcuni degli stage. Ogni stage richiede il completamento di tutti i precedenti.
Nota che probabilmente dovrai avere privilegi per alcune delle operazioni USB che sono eseguite da "devirginate". Per questo motivo esegui tutto come "root".
Per effettuare tutti gli stage, esegui
# ./devirginate
dalla directory trunk/src/host/devirginator/
Per eseguire solo singoli stage, specifica il numero dello stage, con il prefisso "-", ad esempio,
# ./devirginate -1
Se la tabella dei bad block NAND è invalida, può essere cancellata all'inzio dello stage 1. Questo è chiamato "stage 0".
Non è un'opzione ideale, perchè se l'ultimo blocco NAND è corrotto, queste informazioni andranno perse. Di default, lo stage 0 non viene eseguito.
Subito dopo l'accensione, lo schermo si accenderà mostrando cose a caso. Questo indica che il processo di setup è iniziato. Nota che il contenuto dello schermo può cambiare ("decay") durante il processo. Ma questo è normale.
Dopo 10-30 secondi, lo schermo diventerà nero. Questo indica che ora u-boot sta venendo eseguito nel dispositivo.
Dopo 60-90 secondi, lo schermo si accenderà di nuovo e mostrerà una faccia sorridente su uno sfondo verde. Questo indica che il primo stage è stato completato. La faccia sorridente apparirà ogni volta che attiverai il dispositivo.
Il dispositivo ora contiene:
Ciò che ancora manca è:
Per iniziare lo stage 2, attiva il dispositivo. Vedrai lo smiley dello stage 1.
La fase 2 può durare alcuni minuti. Il progresso della proedura di download è indicata dal simbolo hash (#) nel terminale dove è in funzione "devirginate".
Alla fine della fase 2, il dispositivo farà un reset, mostrando un parziale splash screen OpeMoko, quindi farà reset di nuovo, mostrando il corretto splash screen ed infine ci sarà il boot di Linux.
Da definirsi.
![]() |
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |