天天看點

Yocto之目錄結構說明

以下結構為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          說明檔案

繼續閱讀