Embedded
從編譯嵌入式 Linux 核心到為目標平台生成鏡像
所以我最近收購了基於君正 SoC 的 RS-97 遊戲,它執行 MIPS 指令集。供應商含糊地提供了有關如何為目標 SoC 編譯 linux 核心的說明。因此,根據供應商說明和線上搜尋,需要以下內容才能獲得該平台的嵌入式 linux 映像。
- 編譯工具鏈(mipsel for mips based architecture)
- 使用工具鏈使用給定的驅動程序/BSP 編譯 linux 核心
- 編譯根文件系統 - Busybox 建議(不知道為什麼)
- 為目標 SoC 編譯 uBoot
- 使用目標特定的分區表對 sd 等儲存進行分區
- 將整個圖像刷入sd
所以問題是,為什麼根文件系統與核心映像是分開的?busybox 在生成文件系統中起什麼作用?另外,如果 linux 映像是在沒有根文件系統的情況下編譯的,如何將兩者合併以在根文件系統的 /sys 目錄中擁有驅動程序?
這些都是非常大的問題,我會盡可能簡單地總結一下。
為什麼根文件系統與核心映像分開?
核心映像是由 kernel.org 提供的執行檔(您可以根據需要對其進行修改,但大多數人不會),它為您的嵌入式 Linux 項目提供了框架。根文件系統是您的程式碼和配置所在的位置:核心載入根文件系統。
busybox 在生成文件系統中起什麼作用?
Busybox 是一個應用程序,它提供了許多有用的功能,例如命令行界面、列出文件、列出程序、複製文件等。 Busybox 的功能根據它的命名方式而變化:您重命名應用程序,它會執行不同的功能。這是將大量實用程序打包到一個小文件系統中的一種非常有效的方法。
此外,如果 linux 映像是在沒有根文件系統的情況下編譯的,如何將兩者合併以在根文件系統的 /sys 目錄中擁有驅動程序
你可以給核心一些參數來告訴它在哪裡找到它的根文件系統。您要設置
root
參數。請參閱核心的命令行參數。