GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi MLO est-il nécessaire à l'étape de démarrage ?

Depuis eLinux.org :

http://elinux.org/Panda_How_to_MLO_%26_u-boot

Le chargeur de démarrage de première étape s'exécute directement sur la carte dès la mise sous tension. Je ne connais pas le nom de ce chargeur de démarrage (du wiki officiel de TI, il s'appelle Boot Rom). Ce chargeur de démarrage initialise une quantité minimale de CPU et de matériel de carte, puis accède à la première partition de la carte SD (qui doit être au format FAT), et charge un fichier appelé "MLO", et l'exécute. "MLO" est le chargeur de démarrage de deuxième étape.

Le chargeur de démarrage de deuxième étape peut apparemment être l'un des chargeurs X ou SPL. Apparemment, ce chargeur de démarrage lit également la première partition de la carte SD, charge un fichier appelé "u-boot.bin" et l'exécute. "u-boot.bin" est le chargeur de démarrage de troisième niveau.

Le chargeur de démarrage de troisième étape est U-boot, qui est un chargeur de démarrage populaire pour de nombreuses cartes et produits embarqués différents. Ce chargeur de démarrage a de nombreuses fonctionnalités différentes, y compris un shell interactif, des variables, la possibilité d'accéder à la carte SD et d'afficher son contenu, etc. Ce qui se passe ensuite dépend de la version de U-boot que vous avez pour la carte Panda et de la façon dont elle est configurée. Dans une configuration très simple, U-Boot va chercher le fichier "uImage" à la racine de la première partition de la carte SD (qui, encore une fois, doit être formatée en partition FAT), et l'exécuter. C'est le noyau Linux. U-Boot passe au noyau un argument de ligne de commande. Selon la configuration du noyau, il peut accepter la ligne de commande de U-Boot ou en utiliser une compilée lors de sa construction.

C'est un "truc de Panda Board", pas nécessairement vrai pour Linux en général.

Cependant, la plupart tous les systèmes ont une sorte de démarrage "en plusieurs étapes" comme celui ci-dessus. Par exemple, en démarrant un PC exécutant Windows, vous voyez :

  1. Démarrage du BIOS
  2. Le secteur de démarrage est chargé à partir du disque ou de l'USB ; ou un enregistrement de démarrage PXE est lu depuis le réseau
  3. Le noyau Windows démarre (ce que vous voyez avant/pendant l'"écran de démarrage")
  4. Enfin, "Windows" lui-même démarre

Ce n'est donc ni "inefficace", ni inhabituel.

PS :Ce lien contient également une bonne description de la séquence de démarrage :

  • http://omappedia.org/wiki/Bootloader_Project

PPS : "MLO" signifie "Mmc LOader"


Lorsque la carte apparaît, l'unité de gestion de la mémoire (MMU) doit encore être configurée avant que le processeur puisse commencer à utiliser la SDRAM. Le SoC a 56 Ko de SRAM qui peuvent être utilisés à ce stade, mais il est trop petit pour que u-boot puisse fonctionner. L'étape supplémentaire est que le code exécuté à partir de SRAM se charge et démarre u-boot.


Linux
  1. Pourquoi le CD n'est-il pas un programme ?

  2. Pourquoi le volume LVM chiffré (périphérique luks) ne se monte-t-il pas au démarrage ?

  3. Pourquoi la méthode probe est-elle nécessaire dans les pilotes de périphériques Linux en plus de init ?

  4. Pourquoi avons-nous besoin d'un bootloader dans un appareil embarqué ?

  5. Pourquoi l'option insensible à la casse dans ext4 était-elle nécessaire ?

Pourquoi suis-je incapable de double démarrer Windows 10 avec Ubuntu 18.04 ?

Pourquoi Kubernetes s'appelle-t-il K8s ?

Comment réparer :au moins x Mo d'espace supplémentaire requis sur le système de fichiers /boot

Processus de démarrage Linux :expliqué étape par étape pour les débutants

Pourquoi suis-je autorisé à accéder aux fichiers Windows protégés lorsque je démarre Ubuntu à partir d'une clé USB ?

Trouver le chargeur de démarrage