Was ist der Unterschied zwischen ihnen?
Ich weiß, dass U-Boot einen Kernel im uImage-Format benötigt.
Das System, das ich benutze, bootet zuerst vom Stage 1-Loader und ruft dann U-Boot auf. Ich möchte U-Boot verwerfen und direkt vom Stage 1-Loader booten. Welche Art von Kernel-Image muss ich verwenden?
linux-kernel
embedded-linux
u-boot
yildizabdullah
quelle
quelle
Antworten:
Image : Die generische binäre Linux-Kernel-Image-Datei.
zImage : Eine komprimierte Version des Linux-Kernel-Images, die sich selbst extrahiert.
uImage : Eine Image-Datei mit einem U-Boot-Wrapper (vom Dienstprogramm mkimage installiert ), der den Betriebssystemtyp und die Loader-Informationen enthält.
Eine sehr verbreitete Praxis (z. B. das typische Makefile des Linux-Kernels) ist die Verwendung einer zImage-Datei. Da eine zImage-Datei sich selbst extrahiert (dh keine externen Dekomprimierer benötigt), würde der Wrapper anzeigen, dass dieser Kernel "nicht komprimiert" ist, obwohl dies tatsächlich der Fall ist.
Beachten Sie, dass der Autor / Betreuer von U-Boot die (weit verbreitete) Verwendung eines zImage in einem uImage für fragwürdig hält:
(zitiert aus https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.html )
Sie können wählen, wofür Sie programmieren möchten.
Aus Gründen der Speicherersparnis sollten Sie wahrscheinlich ein komprimiertes Bild dem unkomprimierten vorziehen.
Beachten Sie, dass das Ausführen des Kernels (vermutlich des Linux-Kernels) mehr beinhaltet als nur das Laden des Kernel-Images in den Speicher. Abhängig von der Architektur (z. B. ARM) und der Linux-Kernelversion (z. B. mit oder ohne DTB) müssen möglicherweise Register und Speicherpuffer für den Kernel vorbereitet werden. In einem Fall gab es auch eine Hardware-Initialisierung, die U-Boot durchführte und die repliziert werden musste.
NACHTRAG
Dies gilt für alle Versionen von U-Boot, die nur den Befehl bootm haben .
Neuere Versionen von U-Boot können jedoch auch den Befehl bootz enthalten , mit dem ein zImage gestartet werden kann.
quelle