Voglio usare un'immagine del kernel non compressa e avviare BeagleBoard. Generalmente utilizzo uImage per avviare il kernel in formato compresso. Come posso usare un'immagine del kernel non compressa?
Voglio usare un'immagine del kernel non compressa e avviare BeagleBoard. Generalmente utilizzo uImage per avviare il kernel in formato compresso. Come posso usare un'immagine del kernel non compressa?
Risposte:
Per quanto ne so, U-Boot non può avviare direttamente un'immagine ELF "grezza" ( vmlinux
). Devi trasformarlo nel uImage
formato, che contiene il compresso vmlinux
più qualche byte aggiuntivo di metadati che descrivono l'indirizzo di caricamento del kernel. La U-Boot FAQ 2.19 spiega come generare uImage
; è abbastanza semplice, usando l' mkimage
utilità nell'albero dei sorgenti di U-Boot:
mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage
(Potrebbero essere necessari parametri aggiuntivi che indicano l'indirizzo di caricamento.)
Se stai usando Buildroot, seleziona un uImage
file di output del kernel ( BR2_LINUX_KERNEL_UIMAGE=y
). Compilare normalmente e Buildroot creerà anche un vmlinux
file in una fase intermedia. Mentre il vmlinux
file non viene copiato nella /output/images
directory, è possibile trovarlo ./output/build/linux-custom/
(o eseguendolo find . -name "vmlinux"
).