YOCTO概覽

以下參考自CSDN博客,點擊這里訪問原文
  • Yocto:Yocto是這個開源項目的名稱,該項目旨在幫助我們自定義Linux系統(tǒng)
  • Poky:Poky有兩個含義。第一個含義是用來構(gòu)建Linux的構(gòu)建系統(tǒng),值得注意的該Poky僅僅是一個概念瓶珊,而非一個實體:它包含了 BitBake工具、編譯工具鏈耸彪、BSP伞芹、諸多程序包或?qū)樱梢哉J為Poky即是Yocto的本質(zhì)蝉娜;此外Poky還有另外一層意思唱较,使用Poky系統(tǒng)得到的默認參考 Linux 發(fā)行版也叫Poky(當(dāng)然,我們可以對此發(fā)行版隨意命名)召川。Poky的兩個含義千萬不能混淆
  • Metadata:元數(shù)據(jù)集南缓,所謂元數(shù)據(jù)集就是發(fā)行版內(nèi)各基本元素的描述與來源
    • Recipes:.bb/.bbappend文件,配方文件荧呐,描述了從哪獲取軟件源碼汉形,如何配置,如何編譯倍阐。bbappend和bb的區(qū)別主要在于bbappend是基于bb的概疆,功能是對相應(yīng)的bb文件作補充和覆蓋,有點類似于“重寫”的概念
    • Recipe: A set of instructions for building packages. A recipe describes where you get source code, which patches to apply, how to configure the source, how to compile it and so on. Recipes also describe dependencies for libraries or for other recipes. Recipes represent the logical unit of execution, the software to build, the images to build, and use the .bb file extension.
    • Class:.bbclass文件
    • Configuration:.conf文件峰搪,即配置文件岔冀,我們可以用它來改變構(gòu)建方式
  • Layers:即各種meta-xxx目錄,將Metadata按層進行分類概耻,有助于項目的維護
  • Bitbake:一個任務(wù)執(zhí)行引擎楣颠,用來解析并執(zhí)行Metadata
  • Output:即各種輸出image
總結(jié):假如用烹飪一桌酒席來形容構(gòu)建發(fā)行版,則Yocto就是飯店名咐蚯,Poky就是廚房(以及提供作為參考的菜的搭配套餐),Metadata就是烹飪資源(.bb/.bbappend表示配方/配方上的貼士弄贿,.conf表示廚房里的管事的小組長)春锋,Layers就是菜譜的分類(如川菜譜、粵菜譜)差凹,Bitbake就是廚師期奔,Output就是得到的一桌酒席侧馅。

yocto項目結(jié)構(gòu)

項目文件結(jié)構(gòu)
sources文件結(jié)構(gòu)

sources,layer結(jié)構(gòu)
image.png
  • 首先來分析一下目錄結(jié)構(gòu)呐萌,不難發(fā)現(xiàn)主要有三級構(gòu)成:meta-xxx->recipes-yyy->zzz/ttt.bb馁痴。比如:meta-avi-> recipes-core->openssh-keys
    • meta-fsl-arm:飛思卡爾官方推出的配方大全
    • meta-openembedded:openembedded推出的配方大全
    • meta-qt5:qt5官方推出的qt5配方大全
  • poky中的一堆meta:yocto官方推出的參考配方。雖然這些meta被放在了poky里面肺孤,但是還是不影響使用的罗晕,他們具有和上面那些meta相同的地位
  • 介紹完了layer,那么問題來了赠堵,那么是否可以認為小渊,這些layer全部被enable了呢?答案固然是否定的
  • 具體的layer選擇由/base/conf/bblayers.conf負責(zé)茫叭,直觀位置在前面目錄中可以體現(xiàn)酬屉。仔細觀察該文件,重點在BBLAYERS這個變量揍愁,里面有一些layer呐萨,這些layer就被enable了。


    bblayers.conf
  • 這些layer目前是被enable了莽囤,那么是否可以認為谬擦,這些layer中的配方也全部被使能了呢?答案固然是否定的烁登,我們的發(fā)行版中不可能把所有的軟件包放進去怯屉。在Yocto中,這個選擇配置操作是由好多個conf饵沧、bb文件協(xié)同完成的锨络,并不存在一個總的大綱,這也是和buildroot最大的不同之處(buildroot是由menuconfig來進行大綱式的配置)狼牺∠鄱可以理解為Yocto是“分封制”,皇帝說的不一定能落實是钥,具體還是各種大小地方官說了算掠归;而buildroot是“中央集權(quán)制”,皇帝一人說了算 悄泥。
  • 如何理解Yocto的配置方法虏冻?這要從發(fā)行版的定制流程說起。我們的目的很簡單弹囚,是要得到uboot厨相、kernel、rootfs這三個image;Yocto的目的也很簡單蛮穿,它要經(jīng)過一級一級配置庶骄,逐步縮小配方,直至得到uboot践磅、kernel单刁、rootfs這三個image。每一級需要哪些配方府适,由該級對應(yīng)的配置文件(conf/bb)決定羔飞。越上級的配置是越籠統(tǒng)的,越下級的配置越細致细溅。如果下級的配置項相對于上級有補充或者沖突褥傍,則以下級的內(nèi)容為準,可以認為下級會對上級進行“重寫”喇聊。這其實有點類似交通法規(guī)
原文配圖
  • 有關(guān)構(gòu)建的路線和流程:對于整個發(fā)行版構(gòu)建恍风,雖然每一級的配方由(conf/bb)決定,但是每一級路線和方向的選擇誓篱,是由我們最終bitbake的對象決定的朋贬,比如我們最終bitbake avi-image-core,我們想要獲得rootfs.img窜骄,那么:
    • 第一步Poky就會從local.conf開始锦募,一路向下,一級一級配置邻遏,直到配置到和rootfs有關(guān)的那一堆bb糠亩,最終形成完整完全的配方
    • 然后獲取配方需要的資源,比如各種軟件包准验,比如kernel的源碼
    • 最后把所有的資源編譯出我們需要的鏡像
原文配圖
  • 最后說一下bitbake赎线,比如我們要選擇編譯rootfs.img,那么使用bitbake avi-image-core即可糊饱,但是很多時候并不直接采用這種做法垂寥。大多數(shù)情況下我們會在項目目錄下寫一個Makefile,里面包含各種各樣的功能另锋,內(nèi)部以bitbake指令實現(xiàn)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滞项,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子夭坪,更是在濱河造成了極大的恐慌文判,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件室梅,死亡現(xiàn)場離奇詭異戏仓,居然都是意外死亡潭流,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門柜去,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拆宛,你說我怎么就攤上這事嗓奢。” “怎么了浑厚?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵股耽,是天一觀的道長。 經(jīng)常有香客問我钳幅,道長物蝙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任敢艰,我火速辦了婚禮诬乞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钠导。我一直安慰自己震嫉,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布牡属。 她就那樣靜靜地躺著票堵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逮栅。 梳的紋絲不亂的頭發(fā)上悴势,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音措伐,去河邊找鬼特纤。 笑死,一個胖子當(dāng)著我的面吹牛废士,可吹牛的內(nèi)容都是我干的叫潦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼官硝,長吁一口氣:“原來是場噩夢啊……” “哼矗蕊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起氢架,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤傻咖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后岖研,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卿操,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡警检,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了害淤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扇雕。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窥摄,靈堂內(nèi)的尸體忽然破棺而出镶奉,到底是詐尸還是另有隱情,我是刑警寧澤崭放,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布哨苛,位于F島的核電站,受9級特大地震影響币砂,放射性物質(zhì)發(fā)生泄漏建峭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一决摧、第九天 我趴在偏房一處隱蔽的房頂上張望亿蒸。 院中可真熱鬧,春花似錦蜜徽、人聲如沸祝懂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砚蓬。三九已至,卻和暖如春盆色,著一層夾襖步出監(jiān)牢的瞬間灰蛙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工隔躲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摩梧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓宣旱,卻偏偏與公主長得像仅父,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子浑吟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 本文首發(fā)于本人博客 sunyongfeng.com笙纤。 譯者序 本文譯自 A practical guide to ...
    sunnogo閱讀 26,577評論 1 25
  • 參考:http://www.yoctoproject.org/docs/2.4/bitbake-user-manu...
    半天妖閱讀 16,251評論 3 5
  • feisky云計算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,866評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理组力,服務(wù)發(fā)現(xiàn)省容,斷路器,智...
    卡卡羅2017閱讀 134,693評論 18 139
  • 在 tableViewCell 上添加了一個長按手勢燎字,在手勢方法 editPathAction: 中需要確認是哪一...
    Rivendell24閱讀 1,115評論 0 0