Para comprender de qué es responsable cada archivo, debe comprender cómo se inicia MPU.
Como entendí por su pregunta, usted usa la familia de microprocesadores NXP (Freescale) i.MX. Incluye un pequeño cargador de ROM, que hará la configuración básica del sistema (interfaces a la memoria, árbol de reloj, etc.), buscará medios para arrancar (basado en bits OTP quemados o GPIO), encontrará el cargador de arranque (u-boot en su caso) en dirección exacta que se especifica en la hoja de datos, cárguelo e inícielo. U-boot iniciará más interfaces (por ejemplo, Ethernet), encontrará argumentos que deben pasarse al Kernel (configuración de pantalla, consola, configuración de red si usa NFS), copiará Kernel a DDR y pasará todos los argumentos. Kernel cargará todos los controladores y buscará rootfs con todas las bibliotecas, aplicaciones, etc. Después de esto, Kernel iniciará los scripts de inicio, que iniciarán todo el sistema e iniciarán su aplicación.
- u-boot es lo primero que se iniciará después del gestor de arranque de la ROM. Puede reemplazarlo con su propio código si desea que la MPU ejecute código básico sin sistema operativo (como un microcontrolador).
- zImage es una versión comprimida de la imagen del kernel de Linux que se extrae automáticamente.
- rootfs es un sistema de archivos raíz, que contiene todas las aplicaciones, librerías y, en la mayoría de los casos, todo, incluida la carpeta de inicio.
- La imagen de la tarjeta sd es todo lo mencionado anteriormente que se puede copiar (con dd) a la tarjeta, después de la copia verá la partición FAT con Kernel y el árbol de dispositivos y la partición EXT con rootfs, u-boot está en un área sin particiones antes de FAT (en caso de que use i.MX6 es 0x80000). Está ahí solo para hacerte la vida más fácil.
zImage
es la imagen binaria real del kernel compilado. Es lo que el cargador de arranque cargará e intentará ejecutar (creo que en Linux integrado está escrito en el sector de arranque directamente de alguna manera; consulte el manual de distribución de Linux integrado para obtener instrucciones)rootfs
es la llamada imagen INITial RamDisk (también conocida como initrd) que contiene todo lo que el núcleo necesitará para arrancar en un estado en el que se pueda montar el sistema de archivos raíz real.uboot
es el gestor de arranque utilizado por Linux incorporado; Básicamente le dice al BIOS (Sistema básico de entrada y salida) que ejecutezImage
con las opciones que dicenzImage
dónde encontrar el sistema de archivos raíz para que sepa cómo empezar.
Si tuviera que adivinar, me arriesgaría a que todos estos archivos se creen en el proceso de generar la imagen real de la tarjeta SD, incluso si ya no necesita agregar manualmente los tres anteriores a la imagen final.