Linux

什麼是zImage、rootfs

  • September 11, 2020

我對嵌入式 Linux 非常陌生。我們使用 poky 建構系統。我們只是使用 bitbake linux-imx 命令來建構核心。它會生成一些文件 zImage、rootfs、uboot 以及一個 sdcard 映像。我們只需複制 sdcard 映像並在我們的自定義板上執行 linux。我的問題 rootfs 和 zImage 實際上包含什麼?

要了解每個文件負責什麼,您應該了解 MPU 是如何啟動的。

正如我從您的問題中了解到的,您使用的是 NXP(飛思卡爾)i.MX 微處理器系列。它包括小型 ROM 載入程序,它將進行基本的系統設置(記憶體介面、時鍾樹等)、搜尋要引導的媒體(基於燒錄的 OTP 位或 GPIO)、在數據表中指定的確切地址,載入並啟動它。U-boot 將初始化更多介面(例如乙太網),查找應該傳遞給核心的參數(螢幕設置、控制台、網路設置,如果您使用 NFS),將核心複製到 DDR 並傳遞所有參數。核心將載入所有驅動程序,並使用所有庫、應用程序等搜尋 rootfs。在此之後,核心將啟動 init 腳本,這將初始化所有系統並啟動您的應用程序。

  1. u-boot 是在 ROM 引導載入程序之後啟動的第一件事。如果您希望 MPU 在沒有作業系統的情況下執行裸機程式碼(如微控制器),您可以用您自己的程式碼替換它。
  2. zImage 是自解壓的 Linux 核心映像的壓縮版本。
  3. rootfs 是根文件系統,它包含所有應用程序、庫以及大多數情況下的所有內容,包括主文件夾。
  4. sdcard 映像只是上面提到的所有可以複製(使用 dd)到卡的東西,複製後你會看到帶有核心和設備樹的 FAT 分區和帶有 rootfs 的 EXT 分區,u-boot 在 FAT 之前的未分區區域(以防萬一你使用 i.MX6 它是 0x80000)。它只是為了讓您的生活更輕鬆。

引用自:https://unix.stackexchange.com/questions/295131