doc:appunti:hardware:freerunner
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
doc:appunti:hardware:freerunner [2009/07/09 13:55] – niccolo | doc:appunti:hardware:freerunner [2009/10/13 07:56] – niccolo | ||
---|---|---|---|
Line 421: | Line 421: | ||
Riassumendo i paragrafi precedenti, questo è un esempio di come si effettua il backup e la reinstallazione completa del FreeRunner (perdendo tutte le personalizzazioni). | Riassumendo i paragrafi precedenti, questo è un esempio di come si effettua il backup e la reinstallazione completa del FreeRunner (perdendo tutte le personalizzazioni). | ||
+ | |||
+ | **ATTENZIONE**: | ||
+ | |||
+ | ==== Backup con dfu-util ==== | ||
+ | |||
+ | FIXME In teoria dovrebbe essere possibile fare il backup delle immagini contenute nella memoria flash con l' | ||
+ | |||
+ | Il bug è confermato con U-Boot 1.3.2-moko12 (2008-12-18) e dfu-util r4067. | ||
+ | |||
+ | Ad ogni modo, questa sarebbe la procedura (**da non usare a causa del bug!**): | ||
- Entrare nel **menu U-Boot in NOR flash** (accendere il FreeRunner tenendo premuto il tasto **AUX** e premendo il pulsante **POWER**). | - Entrare nel **menu U-Boot in NOR flash** (accendere il FreeRunner tenendo premuto il tasto **AUX** e premendo il pulsante **POWER**). | ||
Line 427: | Line 437: | ||
< | < | ||
- | dfu-util -a kernel -R -U good-kernel.bin | + | # WARNING! OpenMoko bug #1843 produces bad images! |
- | dfu-util -a splash -R -U good-splash.bin | + | dfu-util -a kernel |
- | dfu-util -a u-boot -R -U good-u-boot.bin | + | dfu-util -a splash |
- | dfu-util -a u-boot_env -R -U good-u-boot_env.bin | + | dfu-util -a u-boot |
+ | dfu-util -a u-boot_env -R -U bkp_u-boot_env.bin | ||
</ | </ | ||
- | FIXME Il file **'' | + | Per salvare l'**immagine del rootfs** (partizione //rootfs//) si potrebbe procedere in modo analogo, ma il file ottenuto avrebbe il difetto |
- | Per salvare l'**immagine del rootfs** si può procedere in modo analogo, ma l' | + | Ecco la dimensione e il contenuto di ciascuna partizione: |
+ | |||
+ | ^ splash.bin | ||
+ | ^ kernel.bin | ||
+ | ^ u-boot.bin | ||
+ | ^ u-boot_env.bin | 256 Kb | La configurazione di U-Boot, editabile con envedit.pl. | ||
+ | ^ rootfs.jffs2 | ||
+ | |||
+ | ==== Backup con nanddump ==== | ||
+ | |||
+ | Per aggirare il bug di **'' | ||
+ | |||
+ | * Accesso al FreeRunner via ssh. | ||
+ | | ||
+ | * Spazio libero sulla SD per contenere i dump. | ||
+ | |||
+ | Verifichiamo le partizioni sulla flash | ||
< | < | ||
- | dfu-util -a rootfs -R -U good-rootfs.jffs2 | + | cat /proc/mtd |
+ | dev: size | ||
+ | mtd0: 00200000 00010000 " | ||
+ | mtd1: 00040000 00020000 "u-boot" | ||
+ | mtd2: 00040000 00020000 "u-boot_env" | ||
+ | mtd3: 00800000 00020000 " | ||
+ | mtd4: 000a0000 00020000 " | ||
+ | mtd5: 00040000 00020000 " | ||
+ | mtd6: 0f6a0000 00020000 "rootfs" | ||
</ | </ | ||
+ | |||
+ | effettuiamo il dump di un paio di esse: | ||
+ | |||
+ | < | ||
+ | nanddump --omitoob -f mtd1_u-boot.dump /dev/mtd1 | ||
+ | nanddump --omitoob -f mtd3_kernel.dump /dev/mtd3 | ||
+ | </ | ||
+ | |||
+ | Omettiamo dal dump i byte out-of-band (OOB), che contengono informazioni di servizio (bad block marks, error correction codes). | ||
+ | |||
+ | Il file così ottenuto deve essere **identico** a quello usato durante il flashing iniziale, **a meno della dimensione**. Ecco come confrontare i due file solo per i primi byte: | ||
+ | |||
+ | < | ||
+ | cmp --bytes=1780096 Om2008.12-om-gta02.uImage.bin mtd3_kernel.dump | ||
+ | </ | ||
+ | |||
+ | Il kernel dovrebbe essere disponibile anche come file **''/ | ||
+ | |||
+ | Il dump della partizione //rootfs// con questo metodo è sconsigliato, | ||
+ | |||
+ | Per effettuare il dump del rootfs vedere il metodo che segue. | ||
+ | |||
+ | ==== Backup con mkfs.jffs2 ==== | ||
+ | |||
+ | Come accennato, il dump della partizione flash crea un file pari alla dimensione della partizione. Per il root filesystem è particolarmente penalizzante sia per lo spazio occupato (250 Mb) sia per il tempo impiegato. | ||
Ecco quindi una **procedura alternativa** per ottenere un' | Ecco quindi una **procedura alternativa** per ottenere un' | ||
Line 454: | Line 514: | ||
L' | L' | ||
- | Questi i comandi per **installare le nuove versioni** (tra un upload e l' | ||
- | |||
- | < | ||
- | dfu-util -a u-boot -R -D gta02v5_and_up-u-boot.bin | ||
- | dfu-util -a kernel -R -D Om2008.9.uImage.bin | ||
- | dfu-util -a rootfs -R -D Om2008.9.rootfs.jffs2 | ||
- | dfu-util -a splash -D Om2008.9.splash.gz | ||
- | </ | ||
**Jffs2** è un filesystem journaled specifico per memorie [[wp> | **Jffs2** è un filesystem journaled specifico per memorie [[wp> | ||
< | < | ||
- | losetup / | + | losetup / |
modprobe block2mtd block2mtd=/ | modprobe block2mtd block2mtd=/ | ||
cat /proc/mtd | cat /proc/mtd | ||
Line 483: | Line 535: | ||
jffs2_scan_inode_node(): | jffs2_scan_inode_node(): | ||
</ | </ | ||
+ | |||
+ | ==== Flashing delle nuove immagini ==== | ||
+ | |||
+ | La procedura effettua il trasferimento tramite cavetto USB con l' | ||
+ | |||
+ | Entrare nel **menu U-Boot** con uno dei metodi visti sopra ed eseguire questi comandi per **installare le nuove versioni** (tra un upload e l' | ||
+ | |||
+ | < | ||
+ | dfu-util -a u-boot -R -D gta02v5_and_up-u-boot.bin | ||
+ | dfu-util -a kernel -R -D Om2008.9.uImage.bin | ||
+ | dfu-util -a rootfs -R -D Om2008.9.rootfs.jffs2 | ||
+ | dfu-util -a splash -D Om2008.9.splash.gz | ||
+ | </ | ||
===== PyPPP: connessione internet via GPRS ===== | ===== PyPPP: connessione internet via GPRS ===== |
doc/appunti/hardware/freerunner.txt · Last modified: 2015/03/11 09:15 by niccolo