U-Boot
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.
Commentaires
Infos complémentaires
Il existe aussi Barebox, un dérivé de Uboot. Ces 2 bootloaders sont proposés dans le constructeur de distribution Buildroot.
J'utilise Uboot au CENBG sur le projet ALEA (Acquisition Linux Embarquée & Autonome).
J'ai recompilé ce bootloader pour certaines cartes afin d'augmenter leur fréquence de fonctionnement et d'intégrer les options de démarrage.
Merci pour la remarque
Si nous pouvons identifier un autre ("tiers") site qui utilise le logiciel, alors la fiche pourrait être relue et passer formellement en "logiciel validé par la communauté".
Toute indication et tout volontaire sont les bienvenus.