Flasher le Neo Freerunner
Voici un exemple de flashage du FreeRrunner à partir de la dernière image ASU qui utilise Qtopia (plus d'infos ici) sur une Ubuntu 8.04. Les commandes ci-dessous sont à taper dans un émulateur de terminal GNU/Linux (comme Konsole ou xTerm) et positionné dans le répertoire qui contient dfu-util.
ATTENTION : Flasher détruira TOUS les fichiers présents dans le Freerunner, pensez à les sauvegarder au préalable (sur la carte micro-SD ou avec l'utilitaire NeoTool par exemple).
Sommaire |
Version ULTRA simple
Utiliser l'utilitaire graphique nommé NeoTool ;-) C'est simple, ça marche, c'est efficace.
neoTool a besoin de dfu-util (et que le reseau soit configuré sur le PC pour sauvegarder le rootfs de l'appareil)
A lancer en tant qu'utilisateur root :sudo ./neotool
La seule chose à laquelle il faut faire attention, c'est de sélectionner le fichier rootfs quand il le demande et le fichier kernel quand il le demande (c'est même rappelé dans le titre de la fenêtre!).
Une fois ces deux fichiers sélectionnés, un message vous invite à brancher le moko.
Appuyez alors sur [AUX] puis sur [POWER], ce qui démarre le moko sur la NOR( et donc sur uBoot), branchez le cable usb puis validez la fenêtre de Neotool.
Une barre de progression version console vous donne alors un retour sur le processus en cours.
A conseiller aussi bien aux néophytes qu'aux autres.
Version simple
Malgré les apparences, flasher le Freerunner est assez simple.
Cela peut se résumer aux étapes suivantes :
- Télécharger le nécessaire, à savoir :
- l'utilitaire dfu-util (lien direct). Une fois téléchargé, il faut le rendre executable avec la commande
chmod +x dfu-util
- le noyau ("kernel" en anglais) de la distribution souhaitée sous la forme d'un un fichier .bin (contenant souvent le terme uImage)
- l'image du système de fichier ("rootfs" en anglais) de la distribution souhaitée sous la forme d'un fichier .jffs2 (remarque : les fichiers .bin et .jffs2 peuvent être contenus dans un unique fichier compressé .tgz)
- l'utilitaire dfu-util (lien direct). Une fois téléchargé, il faut le rendre executable avec la commande
- Brancher et démarrer le Neo sur le menu NAND :
- raccorder le Neo à l'ordinateur via le cordon USB fourni
- démarrer en maintenant le bouton AUX puis le bouton Power jusqu'à voir apparaître le menu NAND
- Flasher le Kernel :
./dfu-util -a kernel -R -D mon-fichier-uImage.bin
- Flasher le Rootfs :
./dfu-util -a rootfs -R -D mon-fichier-rootfs.jffs2
Si tout s'est bien passé, le résultat de chaque commande dfu-util sera :
status(0) = No error condition is present Done!
Il ne reste plus qu'a redémarrer le Freerunner normalement. Si ces instructions ne donnent pas le résultat escompté, consultez la version détaillée ci-dessous.
Sauvegarder les données (Backup)
Pour enregistrer et non écrire la mémoire flash, il suffit de remplacer le paramètre -D (Download) par -U (Upload)
sudo dfu-util -a kernel -R -U good-kernel.bin sudo dfu-util -a rootfs -R -U good-rootfs.jffs2 sudo dfu-util -a splash -R -U good-splash.bin sudo dfu-util -a u-boot -R -U good-u-boot.bin sudo dfu-util -a u-boot_env -R -U good-u-boot_env.bin
Version détaillée
Etape 0 : préparation
Pour l'étape 3 correspondant au flashage, nous aurons besoin de l'identifiant de vendeur et de produit du périphérique USB (le FreeRunner). Pour le trouver, on va comparer la liste des périphériques connectés avant et après connexion du FreeRunner. Pour cela, il faut garder dans un coin le résultat de la commande suivante (évidemment le FreeRunner ne doit pas être connecté):
> sudo ./dfu-util --list dfu-util - (C) 2007 by OpenMoko Inc. This program is Free Software and has ABSOLUTELY NO WARRANTY Found Runtime: [0x413c:0x8126] devnum=0, cfg=0, intf=3, alt=0, name='UNDEFINED'
Etape 1 : récupération de la dernière version du noyau et du rootfs
Les dernières versions sont récupérables à cette adresse, sinon j'utilise ce petit script shell pour récupérer la dernière version:
#!/bin/bash
MONTH=$(date +%Y%m)
DAY=$(date +%d)
echo 'sauvegarde ...'
# on renomme le noyau et le rootfs actuel en .old
if [ -e uImage-om-gta02-latest.bin ]
then
mv uImage-om-gta02-latest.bin uImage-om-gta02-latest.bin.old
fi
if [ -e openmoko-qtopia-x11-image-om-gta02.jffs2 ]
then
mv openmoko-qtopia-x11-image-om-gta02.jffs2 openmoko-qtopia-x11-image-om-gta02.jffs2.old
fi
echo 'download ...'
wget http://buildhost.openmoko.org/daily/freerunner/$MONTH/$MONTH$DAY/uImage-om-gta02-latest.bin
wget http://buildhost.openmoko.org/daily/freerunner/$MONTH/$MONTH$DAY/openmoko-qtopia-x11-image-om-gta02.jffs2
Ce script ne marche plus car, comme indiqué dans ce message les repository ont été un peu revus et organisés.
Etape 2 : boot du FreeRunner
Avant de continuer, il est préférable de ne pas avoir la batterie complètement vide. On appuie sur Aux (le bouton en haut à gauche), puis sur Power (le bouton en bas à droite) en maintenant le bouton Aux puis on relâche tout. Vous devez voir apparaitre un menu de boot. Pour éviter que la première entrée soit automatiquement sélectionnée, appuyer une fois sur le bouton Aux. Nous avons maintenant environ 30 secondes pour commencer l'étape 3 avant que le FreeRunner ne s'éteigne automatiquement.
Il faut brancher le câble USB entre le FreeRunner et le PC.
Etape 3 : flashage
Pour cette étape, nous avons besoin de l'identifiant de produit et de vendeur. Nous allons donc faire la différence avec l'étape 0:
> sudo ./dfu-util --list dfu-util - (C) 2007 by OpenMoko Inc. This program is Free Software and has ABSOLUTELY NO WARRANTY Found Runtime: [0x1d50:0x5119] devnum=0, cfg=0, intf=2, alt=0, name='UNDEFINED' Found Runtime: [0x413c:0x8126] devnum=0, cfg=0, intf=3, alt=0, name='UNDEFINED'
En faisant la différence par rapport à la première liste, on retrouve l'identifiant qui est dans mon cas: 0x1d50:0x5119
Nous allons maintenant installer le noyau, attendre quelques secondes (le temps de reset du périphérique USB) puis installer le rootfs:
sudo ./dfu-util -d 0x1d50:0x5119 -a kernel -R -D uImage-om-gta02-latest.bin
sleep 4s
sudo ./dfu-util -d 0x1d50:0x5119 -a rootfs -R -D openmoko-qtopia-x11-image-om-gta02.jffs2
Voilà ! Normalement le FreeRunner s'est éteint. Vous pouvez maintenant l'allumer et tester la nouvelle image.
Petit rappel qui a son importance, la version 'openmoko-qtopia-x11-image-om-gta02' est en plein développement et les images sont générées tous les jours. Il est donc possible de tomber sur une version qui ne sera pas utilisable.