Jusqu’à présent, U-boot ne prenait en charge que le protocole de datagramme utilisateur (UDP) permettant le démarrage TFTP et NFS, mais Linaro a maintenant ajouté la prise en charge de TCP et HTTP dans U-boot afin de démarrer Linux à partir de serveurs Web courants.
Le démarrage TFTP à partir de U-boot est pris en charge depuis des années, car vers 2006, je me souviens avoir implémenté le démarrage TFTP Linux pour un système de karaoké afin de réduire le coût BoM en sélectionnant un périphérique flash plus petit, et j’ai également expliqué comment démarrer Linux sur une box TV avec TFTP en 2014. Cela nécessite l’installation d’un serveur TFTP sur votre serveur, ce qui est une tâche assez triviale, mais les serveurs HTTP sont omniprésents, c’est donc un ajout bienvenu à U-boot.
Si vous souhaitez utiliser HTTP pour démarrer Linux, il doit être activé dans la configuration U-boot :
CONFIG_PROT_TCP=y CONFIG_PROT_TCP_SACK=y CONFIG_CMD_WGET=y
CONFIG_PROT_TCP=y CONFIG_PROT_TCP_SACK=y CONFIG_CMD_WGET=y |
Les options du haut et du bas sont assez évidentes et la deuxième configuration active l’accusé de réception sélectif (SACK) pour des performances maximales du protocole TCP.
Une fois que vous avez installé un serveur HTTP sur le serveur hébergeant l’image Linux, vous pouvez démarrer Linux sur le périphérique cible exécutant U-boot comme suit :
setenv autoload 0;dhcp setenv serverip 192.168.0.1 wget $loadaddr ~/vmlinuz
setenv chargement automatique 0;DHCP setenv ip du serveur 192.168.0.1 wget $loadaddr ~/vmlinuz |
Alternativement, il est également possible de charger Linux avec une seule ligne de commande après l’acquisition d’une adresse IP via DHCP :
wget $loadaddr 192.168.0.1:~/vmlinuz
wget $loadaddr 192.168.0.1:~/vmlinuz |
L’avantage d’utiliser HTTP sur TFTP est limité, mais ce n’est que le début du travail effectué dans le cadre du projet Arm SystemReady, car Linaro prévoit de mettre en œuvre le support HTTPS et éventuellement de l’intégrer au démarrage HTTP UEFI afin de permettre à U-boot de disposer d’un moyen standardisé et sécurisé de télécharger des images de démarrage à partir d’un serveur Web.
Via le blog Linaro