Kann vmlinux anstelle von uImage verwendet werden?


9

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?


Sie verwenden U-Boot als Bootloader, richtig?
Gilles 'SO - hör auf böse zu sein'

Ja! Ist es möglich mit uboot?
Sharanya

Antworten:


7

Soweit ich weiß, kann U-Boot ein "rohes" ELF-Image ( vmlinux) nicht direkt booten . Sie müssen es in das uImageFormat umwandeln, das die komprimierten vmlinuxund 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 mkimageDienstprogramm 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.)


1
Das Dekomprimieren des uImage während des Startvorgangs dauert einige Zeit. Ich muss das minimieren. Also dachte ich mir, warum ich es nicht mit der unkomprimierten Rohdatei vmlinux versuche.
Sharanya

3
Der Effekt, den Sie erzielen möchten, ist möglicherweise entgegengesetzt zum beabsichtigten. Die Dekomprimierungszeit ist normalerweise kürzer als die Zeit zum Kopieren von Daten aus Flash.
Maciej Kucia

3
 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

Ändern Sie gzip im obigen Beispiel in none , und Sie erstellen ein U-Boot-kompatibles unkomprimiertes Image.


1

Wenn Sie Buildroot verwenden, wählen Sie eine uImageKernel-Ausgabedatei ( BR2_LINUX_KERNEL_UIMAGE=y) aus. Normal kompilieren und Buildroot erstellt vmlinuxin einem Zwischenschritt auch eine Datei. Während die vmlinuxDatei nicht in das /output/imagesVerzeichnis kopiert wird, kann sie in ./output/build/linux-custom/(oder durch Ausführen find . -name "vmlinux") gefunden werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.