Ich möchte ein unkomprimiertes Kernel-Image verwenden und das BeagleBoard booten. Im Allgemeinen verwende ich uImage, um den Kernel zu starten, der im komprimierten Format vorliegt. Wie verwende ich ein unkomprimiertes Kernel-Image?
Ich möchte ein unkomprimiertes Kernel-Image verwenden und das BeagleBoard booten. Im Allgemeinen verwende ich uImage, um den Kernel zu starten, der im komprimierten Format vorliegt. Wie verwende ich ein unkomprimiertes Kernel-Image?
Antworten:
Soweit ich weiß, kann U-Boot ein "rohes" ELF-Image ( vmlinux
) nicht direkt booten . Sie müssen es in das uImage
Format umwandeln, das die komprimierten vmlinux
und einige zusätzliche Bytes an Metadaten enthält, die die Kernel-Ladeadresse beschreiben. In den U-Boot-FAQ 2.19 wird das Generieren erläutert uImage
. Es ist ziemlich einfach, das mkimage
Dienstprogramm im U-Boot-Quellbaum zu verwenden:
mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage
(Möglicherweise benötigen Sie zusätzliche Parameter, die die Ladeadresse angeben.)
Wenn Sie Buildroot verwenden, wählen Sie eine uImage
Kernel-Ausgabedatei ( BR2_LINUX_KERNEL_UIMAGE=y
) aus. Normal kompilieren und Buildroot erstellt vmlinux
in einem Zwischenschritt auch eine Datei. Während die vmlinux
Datei nicht in das /output/images
Verzeichnis kopiert wird, kann sie in ./output/build/linux-custom/
(oder durch Ausführen find . -name "vmlinux"
) gefunden werden.