Il y a quelque temps, le concours était annoncé ici même
Le but était de faire démarrer un programme (tournant sous Linux) le plus rapidement possible. N'ayant jamais fais d'embarqué, je me suis dit que c'était une bonne occasion de m'y mettre
Il y a eu deux étapes :
Etape 1. Prouver que l'on sait construire un système embarqué.
Dans cette étape, il fallait construire un système (le lancement de la construction se faisant avec un Makefile ou un script) qui devait se lancer dans une version modifiée de Qemu, avec des contraintes spécifiques
Personnellement, cela m'a permis de découvrir la cross compilation pour ARM, les technologies de mémoires NOR et NAND, ainsi que l'utilisation d'un écran tactile
Les concurrents qui ont réussi cette étape ont reçu gracieusement une carte Mini2440 de FriendlyARM. pour pouvoir passer à l'étape 2.
Etape 2. Faire démarrer le programme sur la carte physique
Cette fois, il fallait tester le programme sur la Mini2440
Cette carte avait un système à base de Qtopia pré-installé, pour y mettre notre système, il suffisait d'y brancher un câble série (pour lancer le transfert) et un câble USB (les données passent par l'USB).
L'écran tactile étant très récent, il a fallu trouver les bons patches, car le système qui tournait bien sur Qemu ne le faisait plus sur la carte réelle. J'ai personnellement perdu pas mal de temps avec ce problème, ce qui fait que je n'ai pas trouvé le temps nécessaire pour terminer ce projet (il me fallait encore régler un problème avec le touchscreen et la carte réseau)
Bref, je remercie l'équipe de linuxembedded.fr pour ce concours et félicite ceux qui on pu aller jusqu'au bout du concours
Ps : le + rapide c'est yargil avec 1.233s pour :
- lancer le kernel
- récupérer une adresse IP en DHCP
- afficher l'adresse IP avec une fonte qui se trouve sur une sdcard
Autres codes :
Jean-Baptiste Théou : 0.43s sans DHCP
Sed : 1.4s
Ps : il y aura surement une annonce officielle pour ces résultats
# yargil
Posté par Guillaume Denry (site web personnel) . Évalué à 7.
Dans le git de yargil, on trouve un .odt où il explique sa démarche :
https://gitorious.org/mini2440-yagil/concours-1/blobs/master/documentation.odt
J'ai trouvé ça plutôt instructif et didactique.
[^] # Re: yargil
Posté par Mali (site web personnel) . Évalué à 2.
la doc de jb est intéressante aussi : jbtheou
# résumé des techniques employés ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
Quelqu'un a une idée des techniques employées ?
Réduction du nombre de symbole inutile des lib pour diminuer le temps de load ?
Utilisation d'un système en hibernation pour booter plus vite ?
"La première sécurité est la liberté"
[^] # Re: résumé des techniques employés ?
Posté par Guillaume Denry (site web personnel) . Évalué à 2.
Dans le document qui pointe au dessus, yargil décrit (en français s'il vous plaît) ce qu'il a utilisé comme techniques d'optimisation. Je ne sais pas s'il y a tout, mais c'est déjà pas mal.
[^] # Re: résumé des techniques employés ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 1.
C'est pas possible de l'avoir en pdf ? /o
"La première sécurité est la liberté"
[^] # Re: résumé des techniques employés ?
Posté par Gui13 (site web personnel) . Évalué à 3.
Une petite conversion rapide depuis Libre Office ici:
http://neolyse.info/documentation_fast_boot_linux.pdf
[^] # Re: résumé des techniques employés ?
Posté par Yann LD . Évalué à 3.
Pour résumer
[^] # Re: résumé des techniques employés ?
Posté par khivapia . Évalué à 6.
Et encore :
* suppression du support TCP et ICMP (inutile pour le concours)
* beaucoup de printk et log vers la console série (idem)
* activation du cache instruction très tôt (bien plus que le cache de données ; du coup il est bénéfique d'utiliser un kernel non compressé pour tirer parti des effets de cache, sinon les instructions compresssées seront des données)
* hardcoding de certaines valeurs normalement recalculées à chaque démarrage du kernel (bogomips)
[^] # Re: résumé des techniques employés ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
Quelqu'un à tester la compression LZO et l'usage du réveil "suspend to disk" ?
"La première sécurité est la liberté"
# Saint Cloud
Posté par dlewin . Évalué à 1.
Merci pour cette info, d'autant que les explications des résultats sont véritablement intéressantes à la fois pour les choix (Barebox, etc) ainsi que les explications.
Dommage que cette carte ne soit pas plus suivie, Raspery Pi, Beagle Board connaissent une notoriété méritée comme l'ajout du support de compil par Qt dans le nouveau SDK par exemple. Pourtant la Mini2440 permet d'avoir des fonctions difficiles à trouver ailleurs comme l'écran, tactile ou pas.
J'en profite pour demander s'il existe des associations, utilisateurs, etc en France pour cette carte vu que seul Buserror l'à fédéré en Angleterre, et Sergio Prado au Brésil.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.