Abyste pochopili, za co je každý soubor zodpovědný, měli byste pochopit, jak se MPU spouští.
Jak jsem pochopil z vašeho dotazu, používáte rodinu mikroprocesorů NXP (Freescale) i.MX. Obsahuje malý zavaděč ROM, který provede základní nastavení systému (rozhraní s pamětí, strom hodin atd.), vyhledá média pro zavedení (na základě vypálených bitů OTP nebo GPIO), najde bootloader (ve vašem případě u-boot) přesnou adresu, která je uvedena v datasheetu, načtěte a spusťte. U-boot inicializuje více rozhraní (např. Ethernet), najde argumenty, které by měly být předány jádru (nastavení obrazovky, konzole, nastavení sítě, pokud používáte NFS), zkopíruje jádro do DDR a předá všechny argumenty. Jádro načte všechny ovladače a vyhledá rootfs se všemi knihovnami, aplikacemi atd. Poté jádro spustí init skripty, které iniciují celý systém a spustí vaši aplikaci.
- u-boot je první věc, která se spustí po zavaděči ROM. Můžete jej nahradit vlastním kódem, pokud chcete, aby MPU runbare-metal kód bez OS (jako mikrokontrolér).
- zImage je komprimovaná verze obrazu jádra Linuxu, která se samorozbaluje.
- rootfs je kořenový souborový systém, který obsahuje všechny aplikace, knihovny a ve většině případů vše, včetně domovské složky.
- obraz sdcard je pouze vše výše uvedené, které lze zkopírovat (pomocí dd) na kartu, po zkopírování uvidíte oddíl FAT s jádrem a stromem zařízení a oddíl EXT s rootfs, u-boot je v oblasti bez oddílů před FAT (v v případě, že používáte i.MX6, je to 0x80000). Je tu jen proto, aby vám usnadnil život.
zImage
je skutečný binární obraz zkompilovaného jádra. Je to to, co zavaděč načte a pokusí se provést (domnívám se, že na vestavěném linuxu je to nějakým způsobem zapsáno přímo do spouštěcího sektoru; pokyny najdete v příručce k vestavěnému linuxovému distribuci)rootfs
je tzv. obraz INITial RamDisk (také známý jako initrd), který obsahuje vše, co bude jádro potřebovat ke spuštění do stavu, kdy lze připojit skutečný kořenový souborový systém.uboot
je zavaděč používaný vestavěným linuxem; V podstatě říká BIOSu (Basic Input Output System), aby spustilzImage
s možnostmi, které říkajízImage
kde najít kořenový souborový systém, aby věděl, jak začít.
Pokud bych měl hádat, riskoval bych, že všechny tyto soubory jsou vytvořeny v procesu generování skutečného obrazu SD karty, i když již nemusíte ručně přidávat předchozí tři do výsledného obrazu.