¿Se puede usar vmlinux en lugar de uImage?

9

Quiero usar una imagen del núcleo sin comprimir y arrancar el BeagleBoard. Generalmente uso uImage para arrancar el núcleo que está en formato comprimido. ¿Cómo uso una imagen de núcleo sin comprimir?

Sharanya
fuente
Estás utilizando U-Boot como gestor de arranque, ¿verdad?
Gilles 'SO- deja de ser malvado'
¡si! ¿Es posible usar uboot?
Sharanya

Respuestas:

7

Hasta donde yo sé, U-Boot no puede iniciar directamente una imagen ELF "sin procesar" ( vmlinux). Debe convertirlo al uImageformato, que contiene los vmlinuxbytes comprimidos más algunos bytes adicionales de metadatos que describen la dirección de carga del kernel. La pregunta frecuente 2.19 de U-Boot explica cómo generar uImage; es bastante sencillo, utilizando la mkimageutilidad en el árbol de origen de U-Boot:

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

(Es posible que necesite parámetros adicionales que indiquen la dirección de carga).

Gilles 'SO- deja de ser malvado'
fuente
1
La descompresión de uImage durante el arranque lleva algo de tiempo. Necesito minimizar eso. Así que pensé por qué no lo intento con el archivo sin comprimir vmlinux.
Sharanya
3
El efecto que desea lograr puede ser opuesto al previsto. El tiempo de descompresión suele ser menor que el tiempo de copia de datos desde flash.
Maciej Kucia
3
 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

Cambie gzip en el ejemplo anterior a ninguno , y creará una imagen sin comprimir compatible con u-Boot.

Jim Davis
fuente
1

Si está utilizando Buildroot, seleccione un uImagearchivo de salida del núcleo ( BR2_LINUX_KERNEL_UIMAGE=y). Compile normalmente y Buildroot también creará un vmlinuxarchivo en un paso intermedio. Si bien el vmlinuxarchivo no se copia en el /output/imagesdirectorio, se puede encontrar en él ./output/build/linux-custom/(o ejecutándolo find . -name "vmlinux").

Spearson
fuente