以下結構為yocto工程的一些通用的結構。實際工程中,各個廠商可能根據自己的需要進行剪裁,但是整體的結構以及每個目錄存放的内容大體上是一緻的。
頂層檔案結構
bitbake bitbake工具目錄。bitbake,是一metedate解釋器,讀取metedate并執行定義的task。執行bitbake指令時,其實執行的就是bitbake/bin/下面的檔案。
build 使用者配置檔案和工程建構輸出目錄。build目錄在建立環境變量時進行建立并進行配置檔案初始化。建構的所有檔案都在該目錄下組織存放。
documentation 說明檔案
meta OE Core的Metedata,包括recipes,comon classes等
meta-poky poky發行版本的配置資料
meta-yocto-bsp yocto工程包含的一些參考的BSP配置,通常廠商自己會增加自己的bsp目錄。
meta-selftest OE自測的recipes和append 檔案
meta-skeleton BSP和kernel開發用的一些臨時recipes
scripts 腳本檔案,用來提供一些特性的功能。該路徑會被添加到環境變量中。
oe-init-build-env 建構OE的環境
build/目錄下的檔案組織結構
注意:build可以指fsl-release-bsp/imx6ulevk-fb
build/conf/local.conf 使用者的配置檔案,包含所有定制化的配置。該檔案配置的所有變量都會覆寫其他檔案相應變量的軟指派 (?= 形式)(注意=形式的寫死無法覆寫)
build/conf/bblayers.conf 該檔案用來定義BBLAYERS,BBLAYERS是決定哪些路徑下的子產品需要建構,哪些不需要建構,并将這些資訊提供給BitBake。
build/conf/sanity_info 可用性資訊,不用關注
build/downloads 建構過程中,下載下傳的所有源碼。可以将該目錄放到一個公共目錄下,提供每次的編譯效率
build/sstate-cache 建構構成中的建構狀态緩存。可以将該目錄放到一個公共目錄下,提供每次的編譯效率
build/tmp 建構時所有的輸出都存放在該目錄下
build/tmp/buildstats 建構統計資訊,每次建構,都會在該目錄下生成一個日期目錄
build/tmp/cache BitBake解析metedata(包括recipes和config檔案)後,将解析的結果緩存在該目錄,以提高後續效率
build/tmp/deploy 部署檔案目錄,最終需要的檔案(boot rootfs image等)都在該目錄中
build/tmp/deploy/deb 存放系統産生的所有.deb類型的安裝包
build/tmp/deploy/rpm 存放系統産生的所有rpm類型的安裝包
build/tmp/deploy/ipk 存放系統産生的所有ipk類型的安裝包
build/tmp/deploy/licenses 系統使用的各種軟體的許可資訊
build/tmp/deploy/images 存放boot rootfs image等檔案
build/tmp/deploy/sdk 工具鍊安裝腳本
build/tmp/sstate-control 狀态跟蹤檔案
build/tmp/sysroots-components 制作sysroots前需要額外添加的一些元件
build/tmp/sysroots 建構出的根檔案系統内容
build/tmp/stamps 記錄BitBake跟蹤task執行時間的一些資訊
build/tmp/log 日志資訊
build/tmp/work 包含和CPU架構相關的工作目錄
build/tmp/work-shared 工作資訊緩存,為了提高效率
meta/目錄下的檔案組織結構
meta/classes 包含所有的 *.bbclass。class檔案是抽象的公共代碼,給各個package使用。
meta/conf 配置檔案(.conf)的核心集合。比如所有的bblayers的配置檔案都是從該目錄下的bitbake.conf檔案中衍生的。
meta/conf/machine machine的配置檔案
meta/conf/distro 發行資訊的配置檔案
meta/conf/machine-sdk 制定sdk是32位還是64位。
meta/files/ 包含一些licence檔案和系統建構所需要的一些其他檔案
meta/lib/ 系統建構過程中需要的一些Python庫檔案
meta/recipes-bsp uboot等硬體相關的配置資訊
meta/recipes-connectivity 包含和其他裝置通信相關的庫和應用
meta/recipes-core 建構基本的linux image所需要的依賴
meta/recipes-devtools 主機建構時需要的tools,這些工具在目标闆上同樣能夠使用。
meta/recipes-extended 一些不重要的應用
meta/recipes-gnome GTK+架構相關的應用
meta/recipes-graphics 繪圖相關的庫
meta/recipes-kernel kernel以及核心所依賴的庫
meta/recipes-lsb4 支援Linux Standard Base (LSB) version 4.x所需要的
meta/recipes-multimedia 多媒體支援,圖檔、聲音、視訊
meta/recipes-rt 支援PREEMPT_RT 所需要的recipes和包
meta/recipes-sato/ sato demo
meta/recipes-support 其他recipes包含的一些通用的recipes
meta/site 不同的架構下的緩存結果存放
meta/recipes.txt 說明檔案