Vmlinux può essere usato al posto di uImage?


Risposte:


7

Per quanto ne so, U-Boot non può avviare direttamente un'immagine ELF "grezza" ( vmlinux). Devi trasformarlo nel uImageformato, che contiene il compresso vmlinuxpiù 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' mkimageutilità 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.)


1
La decompressione dell'immagine u durante l'avvio richiede del tempo. Devo minimizzarlo. Quindi ho pensato perché non provo con il file raw non compresso vmlinux.
Sharanya,

3
L'effetto che si desidera ottenere potrebbe essere opposto a quello previsto. Il tempo di decompressione è generalmente inferiore al tempo di copia dei dati dal flash.
Maciej Kucia,

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

Cambia gzip nell'esempio sopra in nessuno e creerai un'immagine non compressa compatibile con u-Boot.


1

Se stai usando Buildroot, seleziona un uImagefile di output del kernel ( BR2_LINUX_KERNEL_UIMAGE=y). Compilare normalmente e Buildroot creerà anche un vmlinuxfile in una fase intermedia. Mentre il vmlinuxfile non viene copiato nella /output/imagesdirectory, è possibile trovarlo ./output/build/linux-custom/(o eseguendolo find . -name "vmlinux").

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.