Imagen vs zImage vs uImage

¿Cuál es la diferencia entre ellos?

Sé que u-boot necesita un núcleo en formato uImage.

El sistema que uso primero se inicia desde la etapa 1 del cargador y luego llama a u-boot. Quiero descartar u-boot y arrancar directamente desde la etapa 1 del cargador. ¿Qué tipo de imagen del kernel debo usar?

¿Cuál es la diferencia entre ellos?

Imagen : el archivo genérico de imagen binaria del kernel de Linux.

zImage : una versión comprimida de la imagen del kernel de Linux que se autoextrae.

uImage : un archivo de imagen que tiene un contenedor U-Boot (instalado por la utilidad mkimage ) que incluye el tipo de sistema operativo y la información del cargador.
Una práctica muy común (por ejemplo, el típico Makefile kernel de Linux) es usar un archivo zImage. Como un archivo zImage es autoextraíble (es decir, no necesita descompresores externos), el contenedor indicaría que este kernel “no está comprimido”, aunque realmente lo esté.


Tenga en cuenta que el autor / mantenedor de U-Boot considera el uso (generalizado) de usar un zImage dentro de uImage cuestionable:

En realidad, es bastante estúpido usar un zImage dentro de uImage. Es mucho mejor usar una imagen del núcleo normal (sin comprimir), comprimirla usando solo gzip, y usar esto como poayload para mkimage. De esta forma, U-Boot realiza la descompresión en lugar de incluir otro descompresor con cada imagen del kernel.

(citado de https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.html )


¿Qué tipo de imagen del kernel debo usar?

Puedes elegir lo que quieras progtwigr.
Para una economía de almacenamiento, probablemente debería elegir una imagen comprimida sobre la no comprimida.
Tenga en cuenta que la ejecución del kernel (presumiblemente el kernel de Linux) implica más que simplemente cargar la imagen del kernel en la memoria. Dependiendo de la architecture (por ejemplo, ARM) y la versión del kernel de Linux (por ejemplo, con o sin DTB), hay registros y memorias intermedias de memoria que pueden tener que estar preparados para el kernel. En una instancia, también hubo inicialización de hardware que realizó U-Boot que tuvo que ser replicado.

APÉNDICE

Sé que u-boot necesita un núcleo en formato uImage.

Eso es exacto para todas las versiones de U-Boot que solo tienen el comando bootm .
Pero las versiones más recientes de U-Boot también podrían tener el comando bootz que puede iniciar un zImage.

    Intereting Posts