一個板級支持包(Board Support Package,BSP)是一個信息的集合,它定義瞭如何支持一個特定的硬件設備、設備集合或硬件平臺。
BSP含有設備表現的硬件特徵信息、內核配置信息以及額外需要的硬件驅動。BSP還會列出通用Linux軟件棧之外的對於必需和可選的平臺特徵所需的額外的軟件組件。
本手冊提供關於BSP層的信息,爲組件定義一個結構使得BSP遵循通用的、可理解的佈局,討論如何爲一個BSP客製化配方。
1.1 BSP Layers
一個BSP由一個基礎目錄中的文件結構組成。總的來說,可以將基礎目錄、它的文件結構以及內容看作是一個BSP層。
雖然不是一個強制要求,Yocto項目中的BSP層通常遵循以下的命名規範
meta-bsp_root_name
字符串“meta-”添加在機器或平臺名字,即bsp_root_name,之前。
層的基礎目錄(meta-bsp_root_name)是BSP層的根目錄。這個目錄就是要添加在Build Directory的conf/bblayers.conf文件的BBLAYERS變量中的東西。Build Directory會在你運行OE構建環境設置腳本(oe-init-build-env)後被建立。添加根目錄,使得OE 構建系統可以識別該BSP層,並從它構建一個鏡像。
BBLAYERS中層的順序和BBFILE_PRIORITY是重要的。
一些BSP需要或依賴BSP根層(root layer)以外的其它層,才能正常工作。這種情況下,需要在BSP根層的README中的“Dependencies”一節中指明這些層。此外,如果存在BSP蹭的任何構建指令,你必須將他們添加在“Dependencies”這一節。
1.2 Preparing Your Build Host to Work With BSP Layers
本節描述如何使你的構建主機能夠處理BSP層。
- 設置構建環境:確保可以在shell中使用Bitbake
- 克隆poky倉庫。
- 確定你需要的BSP層。
- 選擇性的設置可用的BSP層(可以利用的相似的BSP層)
- 初始化構建環境。
1.3 示例文件系統佈局
定義一個共同的BSP目錄結構可以讓終端用戶理解並熟悉那個標準。一個共同的格式還會鼓勵軟件對硬件支持的標準化。
本節所描述的形式含有一些特定於OE構建系統的元素。它被設計成開發者可以在OE構建系統之外的其他構建系統中使用該結構。它也被設計成在需要時易於從中提取信息並轉換成其他格式。OE構建系統通過它的標準的層機制,直接可以接受格式被描述層。BSP層使用一個標準格式在一個地方描述了硬件相關的細節。
BSP規格不包含構建系統或其他工具-BSP規格只關注硬件相關的組件。
如下,是一個BSP層的文件結構的常見形式。