User Tools

Site Tools


doc:appunti:hardware:freerunner

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:hardware:freerunner [2009/10/12 21:30] niccolodoc:appunti:hardware:freerunner [2010/05/15 14:13] niccolo
Line 36: Line 36:
   * **[[attualita/liberta_digitale/20080903_freerunner_review]]**   * **[[attualita/liberta_digitale/20080903_freerunner_review]]**
   * **[[freerunner_peek_poke]]**   * **[[freerunner_peek_poke]]**
 +  * **[[doc:appunti:prog:openmoko_compile]]**
 +  * **[[freerunner_debian]]**
  
 ===== Il primo boot ===== ===== Il primo boot =====
Line 426: Line 428:
 ==== Backup con dfu-util ==== ==== Backup con dfu-util ====
  
-FIXME In teoria dovrebbe essere possibile fare il backup delle immagini contenute nella memoria flash con l'utility **''dfu-util''**. Tuttavia pare che ci sia un **[[http://docs.openmoko.org/trac/ticket/1843|grave bug]]** nell'upload dal device al PC (opzione **''%%-U%%''**), per cui **le immagini scaricate dal FreeRunner risultano corrotte** e non utilizzabili. Se ad esempio si flasha nuovamente sul FreeRunner l'immagine del kernel ottenuta con il procedimento seguente, si ottiene un checksum error durante la fase di boot e conseguente blocco.+FIXME In teoria dovrebbe essere possibile fare il backup delle immagini contenute nella memoria flash con l'utility **''dfu-util''**. Tuttavia **esiste un grave [[http://docs.openmoko.org/trac/ticket/1843|bug]]** nell'upload dal device al PC (opzione **''%%-U%%''**), per cui **le immagini scaricate dal FreeRunner risultano corrotte** e non utilizzabili. Se ad esempio si flasha nuovamente sul FreeRunner l'immagine del kernel ottenuta con il procedimento seguente, si ottiene un checksum error durante la fase di boot e conseguente blocco.
  
-Ad ogni modo, questa sarebbe la procedura:+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 435: Line 439:
  
 <code> <code>
 +# WARNING! OpenMoko bug #1843 produces bad images!
 dfu-util -a kernel     -R -U bkp_kernel.bin dfu-util -a kernel     -R -U bkp_kernel.bin
 dfu-util -a splash     -R -U bkp_splash.bin dfu-util -a splash     -R -U bkp_splash.bin
Line 441: Line 446:
 </code> </code>
  
-Per salvare l'**immagine del rootfs** si può procedere in modo analogo, ma il file ottenuto ha il difetto di occupare tutta la dimensione della flash (**250 Mb**) non solo lo spazio effettivamente usato dai file. Quindi **la seguente procedura è sconsigliata**:+Per salvare l'**immagine del rootfs** (partizione //rootfs//si potrebbe procedere in modo analogo, ma il file ottenuto avrebbe il difetto di occupare tutta la dimensione della flash (**250 Mb**)non il solo spazio effettivamente usato dai file.
  
-<code> +Ecco la dimensione e il contenuto di ciascuna partizione:
-# Warning: the entire size of the partition will be dumped! +
-dfu-util -a rootfs -R -U bkp_rootfs.jffs2 +
-</code> +
- +
-Ecco riassunto il contenuto di ciascuna partizione:+
  
 ^ splash.bin  |  640 Kb | Dump dello splash-screen compresso gzip (480x640x16 frame buffer, RGB bits = 5:6:5, HWSWP = 1).  | ^ splash.bin  |  640 Kb | Dump dello splash-screen compresso gzip (480x640x16 frame buffer, RGB bits = 5:6:5, HWSWP = 1).  |
Line 485: Line 485:
 </code> </code>
  
-Il file così ottenuto deve essere identico a quello usato durante il flashing iniziale, **a meno della dimensione**. Ecco come confrontare i due file:+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:
  
 <code> <code>
 cmp --bytes=1780096 Om2008.12-om-gta02.uImage.bin mtd3_kernel.dump cmp --bytes=1780096 Om2008.12-om-gta02.uImage.bin mtd3_kernel.dump
 </code> </code>
 +
 +Il kernel dovrebbe essere disponibile anche come file **''/boot/uImage''** sul FreeRunner, ma nel mio caso differisce di 7 byte rispetto all'originale.
 +
 +Il dump della partizione //rootfs// con questo metodo è sconsigliato, sia per per i motivi di dimensione visti sopra, sia perché il contenuto non è consistente: alcuni file e directory presenti sul FreeRunner non risultano quando si monta l'immagine via loop device (perché? FIXME).
 +
 +Per effettuare il dump del rootfs vedere il metodo che segue.
  
 ==== Backup con mkfs.jffs2 ==== ==== Backup con mkfs.jffs2 ====
Line 508: Line 516:
 L'immagine jffs2 viene generata sul FreeRunner, per questo è necessario installare il pacchetto ''mkfs-jffs2''. La procedura impiega circa **20 minuti per 110 Mb**. L'immagine jffs2 viene generata sul FreeRunner, per questo è necessario installare il pacchetto ''mkfs-jffs2''. La procedura impiega circa **20 minuti per 110 Mb**.
  
-Questi i comandi per **installare le nuove versioni** (tra un upload e l'altro il FreeRunner potrebbe spengersi): 
- 
-<code> 
-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 
-</code> 
  
 **Jffs2** è un filesystem journaled specifico per memorie [[wp>Memory_Technology_Device|flash MTD]]. Per **montare un'immagine jffs2** si può usare l'emulazione MTD su block device offerta dal kernel: **Jffs2** è un filesystem journaled specifico per memorie [[wp>Memory_Technology_Device|flash MTD]]. Per **montare un'immagine jffs2** si può usare l'emulazione MTD su block device offerta dal kernel:
  
 <code> <code>
-losetup /dev/loop0 good-rootfs.jffs2+losetup /dev/loop0 Om2008.12-om-gta02.rootfs.jffs2
 modprobe block2mtd block2mtd=/dev/loop0,131072 modprobe block2mtd block2mtd=/dev/loop0,131072
 cat /proc/mtd cat /proc/mtd
Line 537: Line 537:
 jffs2_scan_inode_node(): CRC failed on node at 0x0f5f2bf4: Read 0xb4f0ed85, calculated 0xc9878958 jffs2_scan_inode_node(): CRC failed on node at 0x0f5f2bf4: Read 0xb4f0ed85, calculated 0xc9878958
 </file> </file>
 +
 +==== Flashing delle nuove immagini ====
 +
 +La procedura effettua il trasferimento tramite cavetto USB con l'utility **''dfu-util''**.
 +
 +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'altro il FreeRunner potrebbe spengersi):
 +
 +<code>
 +dfu-util -a u-boot -R -D gta02v5_and_up-u-boot.bin
 +dfu-util -a kernel -R -D Om2008.12-om-gta02.uImage.bin
 +dfu-util -a rootfs -R -D Om2008.12-om-gta02.rootfs.jffs2
 +dfu-util -a splash -D Om2008.9.splash.gz
 +</code>
 +
 +**NOTA:** L'immagine 2008.12 utilizza i repository [[http://downloads.openmoko.org/repository/Om2008.8/]], vedi ''/etc/opkg/*.conf''.
  
 ===== PyPPP: connessione internet via GPRS ===== ===== PyPPP: connessione internet via GPRS =====
doc/appunti/hardware/freerunner.txt · Last modified: 2015/03/11 09:15 by niccolo