Démarrer sur la carte Micro SD

De openmoko-fr.

Attention, ce tutoriel peut être dangereux, faites attention. Car si vous faites une erreur : plus rien ! plus de uboot ! Alors à vos risques et périls!

Comme pas mal de monde, je me suis demandé ce que cela donnait quand on démarrait le Neo FreeRunner sur la carte SD.

La réponse c'est : pas mal de problèmes, si vous faites comme moi... Mais on finit par y arriver ! Si Si, je vous jure !

Alors je pense que tout le monde a vu le tutoriel sur le wiki officiel qui ne marche pas correctement. (PS: un volontaire pour le mettre à jour ?)

L'erreur vient du kernel qui n'est pas/plus fabriqué avec le support de ext2 ... Dommage! Enfin c'est cool, on met les mains dans le U-Boot!

Donc, il faut bien créer les deux partitions : une FAT16 et l'autre EXT3.

Dans la FAT on met le kernel (uImage) sous le noms: 'uImage.bin' -- Sans les ' ' '. Puis dans la EXT3 on met le rootFS (on le trouve sous la forme d'une archive tar.gz) avec un simple:

tar xvzf <Noms_rootfs>.tar.gz

Puis c'est là que l'on rentre dans le vif du sujet. Le U-Boot est une sorte de grub, mais pour l'embarqué (Embedded). Dans un premier temps il faut NeoCon. Bon, c'est ennuyeux mais il faut compiler ...

Puis vous démarrez sur la NAND (Power+_Sleep2s_+AUX), et la dans une console:

#: ./neocon -t 30 /dev/ttyACM0

Puis vous avez une invite de commande. Pour en savoir plus, cherchez uboot sur le Wiki ou faites help.

#: setenv menu_9 Boot from MicroSD(FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000
#: saveenv

Recopiez cette ligne dans l'invite, cette commande ajoute un menu et sauve dans le NAND

Redémarrez et vous voila avec un nouveau menu, sous le 'Power off' qui est compatible avec le ext3

PS: Un fix kernel permet de réutiliser l'ext2, alors tout dépend de votre noyau.

NB: Il est possible de charger le noyau Linux depuis une partition en ext2 (au lieu de FAT) avec les versions de u-boot supérieures à la 20080723 (les premiers FreeRunners vendus doivent donc mettre à jour u-boot). Dans cas, il faut utiliser la commande ext2load à la place de la commande fatload)