C++プログラマのブログ

プログラミングについて、勉強したことをまとめます。

Yoctoの概要

読みやすさ考えろ

仕事でyocto使ってます
使ってる人は知ってると思うけど、yocto/bitbakeのマニュアルはひどい
文字だらけですっごい読みにくい
初心者の敷居を下げるために、もっと荒い粒度のマニュアルが絶対いるでしょ
腹が立ったので、自分で書いてみた

すごく長くて文字ばっかりの参考

以下のリンクがめっちゃわかりやすければこの記事いらないからね。
Yocto Project Reference Manual
Yocto Project Quick Start
BitBake User Manual

Yocto/bitbakeの概要

この記事はyoctの概要を大雑把に把握するためのものです。
全体像が把握できたら細かい仕様はmanualを参照して適宜補完しましょう。

Yocoとは/bitbakeとは

bitbake(≒IDE)のプロジェクトの一種。
Linuxイメージをビルドできる。
つまり、VisualStudioでの開発環境に置き換えると、

  • bitbake ⇒ VisualStudio
  • yocto ⇒ yocto.sln
  • .recipe ⇒ *.vcxproj (ほんとはちょっと違うけど)

以上!
したがって、この記事はYoctoというよりbitbakeの概要の記事になります

bitbakeの構成

これわかったらもう終わりです。 ↓の図を見ながら読んでください。 f:id:red_grape:20180629235446p:plain

BBLayers.conf

全ての大本です。bitbakeの対象となるLayer(後述)を「BBLAYERS」環境変数で定義しています。

Layer

図のLayerA~Eです。recipe(後述)をまとめた単位です。
recipeの場所を「BBFILES」環境変数で定義しています。
実はパッケージグループとかいう単位が間に挟まったりしますが、今は考えなくてOK
Layerはlayer.confとclassesディレクトリを持ちます。

recipe

図のど真ん中にある「*.bb(c.bbとか)」のファイル。
「ビルドのパラメータ」と「ビルドの処理内容」を記述する場所
誤解を恐れず言えば、githubの1リポジトリに対して1レシピです。
いろんなことを定義してますが、以下の2つだけ抑えとけばとりあえず大丈夫

また、全てのレシピは「bitbake.conf」を継承しています
したがって、レシピに記述のなかった設定は「bitbake.conf」に記述のデフォルト値が使われます

appendファイル

bbappendの拡張子のファイル。同名のレシピファイルに追加の設定を行う。
最初は無視してOK

classファイル

recipeファイルがinheriteして利用する。「ビルドの処理内容」を定義している。
最初は無視してOK

bitbake.conf

「ビルドのパラメータ」のデフォルト値を定義している。
.confでわかると思うけど、iniとかtomlとかyamlとかと一緒です
めっちゃいろいろ設定されてるけど、細かいところは必要な時に調べればOK

終わり!最後は眠くて適当になった。