¿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?


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).


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.


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").

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.