ODROID-C4

啟動順序

第 1 階段:電源循環

此階段旨在從插入的板中獲取引導加載程序軟件。ODROID-C4 提供兩種不同的引導存儲,請訪問此頁面以找出位置。

  • eMMC : 可移動(由 Hardkernel 定制設計,eMMC 5.0)
  • Micro SD : 可移動 (UHS-I)

eMMC 或 Micro SD 中的引導加載程序將由 CPU 獲取。由於 eMMC 具有高優先級,如果 eMMC 沒有引導加載程序,CPU 將從 Micro SD 獲取。

第 2 階段:引導加載程序

第二階段從附加存儲中獲取相對巨大的軟件二進製文件,這些文件可由在第 1 階段加載的引導加載程序訪問。在這個階段,系統變得更加靈活,可以訪問各種存儲類型和供應商。甚至可以通過網絡協議或 USB 存儲器加載操作系統軟件。此外,引導加載程序還提供命令行 shell,以便用戶可以手動運行命令或設置/存儲引導加載程序變量。

從 eMMC/Micro SD 啟動

如果 ODROID-C4 設置為從 eMMC 或 Micro SD 啟動,則引導加載程序會從 eMMC 和 Micro SD 中查找每個存儲設備的第一個分區,以找出啟動腳本。引導腳本中的內容其實就是引導加載程序支持的命令集U-boot,例如setenvloadbootm。當前的引導加載程序支持兩種類型的引導腳本。

啟動文件
這是一個純粹基於文本的文件,任何文本編輯器都可讀和編輯,因此在任何平台上更改其內容都非常方便。這種腳本類型傳統上由 Hardkernel 的 ODROID SBC 使用。如果任何文本文件boot.ini包含電路板特定的魔法字符串,ODROIDC4-BOOT-CONFIG對於 ODROID-C4,在第一行,引導加載程序開始執行腳本。

啟動文件
這是 U-boot 的傳統腳本格式,其中包含 64 字節的二進制標頭和基於測試的命令。由於此文件也可在文本編輯器中編輯,因此可以更改其中的命令。但是,與在頭 64 個字節中的標頭處具有校驗和不同的是boot.iniboot.scr標頭必須由工具重新生成,該工具mkimage是 U-boot 工具之一,每當腳本內容出現時。這個腳本不是很方便,但可以防止被意外修改和執行。

在 U-boot 上調試

如圖所示,bootloader 依次遍歷引導存儲,直到引導成功。出於某種原因,引導加載程序無法啟動下一個軟件,如 Linux 等昂貴的操作系統,它會停止並通過串行端口給出 shell 提示。使用USB-UART Module Kit可以從U-boot 讀取日誌信息或直接下達命令。

內置引導命令

人們可能會好奇什麼是內置引導命令以及什麼命令。基本上,這是從引導加載程序加載的 eMMC 或 Micro SD 之間的引導存儲卡中讀取各種 blob 的命令集,實際上可以啟動需要不同大小和類型的多個 blob 超過 4 個分區的 Android 平台,這是MBR(主引導記錄)中的主分區。所以為了在內存卡中存儲大量的Android blob,U-boot代碼中設計並註明了分區表。這個分區可以通過fastboot這是一種流行的通過 USB 數據線更新 Android 系統的工具。所以從技術上講,如果您有軟件 blob 將作為原始格式存儲在存儲卡中而不是文件系統中的文件,您可以設計分區表並在 U-boot 中更新它們。本頁介紹了 Android 的當前分區表。

此頁資訊皆從 ORDOID Wiki 進行翻譯,並經由 CC BY-SA 3.0 進行分享。