![]() |
Licence Creative Commons by-nc-nd
(Paternité, pas d'utilisation commerciale, pas de modification) |
U-Boot pour Universal Bootloader est un projet mené par l'entreprise allemande DENX Software.
U-Boot est à la fois un BIOS et un chargeur de démarrage noyau Linux pour cartes électroniques capables d'embarquer une distribution GNU/Linux. U-Boot comprend également un ensemble de commandes et de variables permettant une grande souplesse de la configuration initiale des cartes électroniques.
La partie BIOS de U-Boot permet de configurer le nom de la carte, les adresses IP de la carte, du DNS et de la passerelle, le masque réseau (netmask), l'adresse MAC du port Ethernet, l'initialisation du contrôleur mémoire, etc.
La partie chargeur de démarrage permet de configurer la façon la plus appropriée pour démarrer le système d'exploitation GNU/Linux embarqué. Par exemple, en phase de développement, il est coutumier de charger sur la carte le noyau Linux par TFTP puis de lancer son exécution afin de le tester en condition réelle. U-Boot va permettre également de communiquer au noyau un ensemble d'informations pour que celui-ci puisse, par exemple, monter son système de fichiers par NFS après la phase de démarrage.
Pour résumer, U-Boot est capable d'initialiser une carte électronique et de démarrer le système d'exploitation GNU/Linux depuis n'importe quel support : mémoire FLASH (NAND/NOR), mémoire RAM, carte SD, clé USB, réseau.
U-Boot contient un certain nombre de variables pré-définies. Il est possible de définir des variables contenant une suite d'instructions. Il suffit alors de faire appel à la commande run "le-nom-de-la-variable" pour exécuter les instructions. Certaines commandes peuvent être abrégées.
U-Boot permet de lire et d'écrire dans différentes zones mémoire. Il peut aussi copier des images binaires de la RAM vers la mémoire FLASH.
U-Boot entre dans le cadre de la conception d'un système embarqué. C'est un élément indispensable pour pré-configurer et démarrer le système d'exploitation GNU/Linux. Il est possible de tester et de se familiariser avec le fonctionnement de U-Boot en l'émulant dans QEMU.
Mon laboratoire utilise une carte électronique embarquée pour piloter à distance un oscilloscope numérique sur une expérience scientifique de type RMN (Résonance Magnétique Nucléaire). Le chargeur de démarrage, le noyau Linux et l'ensemble du système de fichiers de la carte électronique ont été complètement ré-installés et personnalisés pour l'expérience scientifique. U-Boot est pleinement fonctionnel sur cette carte embarquée.
U-Boot s'installe sur des cartes électroniques pourvues de processeur PowerPC, ARM, MIPS, SH4, x86, etc...
Cependant, malgré le fait que U-Boot supporte un grand nombre de cartes embarquées, il est possible que celle avec laquelle vous travaillez ne puisse accueillir U-Boot.
Après téléchargement et décompression de l'archive contenant les sources de ce dernier, il convient de vérifier dans le répertoire /bord si la carte en votre possession possède déjà les fichiers de configuration pour accueillir U-Boot. Dans la négative, il faudra soit vous adresser à votre fabriquant/revendeur de carte soit de développer ou de télécharger sur Internet le fichier de configuration propre à votre carte.
U-Boot est le chargeur de démarrage de référence dans le monde de Linux embarqué. Bien sûr, il en existe bien d'autres. U-Boot est conçu pour fonctionner sur un grand nombre d'architectures différentes (x86, ARM, SH4, MIPS, ...). Il est aisément installable et configurable. Il est spécialisé dans le chargement et l'exécution du noyau Linux.
U-Boot peut théoriquement fonctionner dans n'importe quelle carte électronique dotée de processeur ARM, x86, SH4, MIPS...
Le projet est mené et développé par l'entreprise allemande DENX Software engineering. Toutes les sources sont sous licence GPLv2 ce qui les rend pleinement accessibles et modifiables.
Le projet existe depuis 2002. La communauté et le support sont réactifs.
En général, les revendeurs ou concepteurs de cartes électroniques embarquées installent U-Boot par défaut. Si ce n'est pas le cas, il y a fort à parier qu'un développeur a déjà adapté U-Boot pour la carte. En fouillant un peu sur Internet, il sera alors possible de dénicher le fichier de configuration indispensable au moment de lancer la compilation de U-Boot.
Voici ci-dessous une liste non-exhaustive de concepteurs/revendeurs français et étranger vendant leurs cartes avec U-Boot déjà installé.
http://www.armadeus.com/francais/
http://www.pragmatec.net/Produits/produit_fr.htm
http://www.eukrea.com/
http://www.lextronic.fr/
http://www.acmesystems.it/
http://www.embeddedarm.com/index.php
http://www.friendlyarm.net/
Il existe également une Foire Aux Questions (F.A.Q.) : http://www.denx.de/wiki/DULG/Faq
Toute la documentation est dans la langue de Shakespeare : http://www.denx.de/wiki/U-Boot/Documentation
Le chargeur de démarrage peut fonctionner sans lancer l'exécution du noyau Linux. Mais cela représente peu d'intérêt au vu de la finalité de sa fonction.
Ce lien explique le processus de contribution : http://www.denx.de/wiki/U-Boot/DevelopmentProcess