yocot目錄結構說明

以下結構爲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/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          說明文件


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章