はじめに
YoctoProject bitbake-setupを試すの続き。
bitbake-setupを理解する上で必要となる基本的な要素について調べる。
基本構造
bitbake-setupで管理されるワークスペースは以下の様な構造になっている。
Top Directory ├── Site Configuration File ├── Setup 1/ ├── Setup 2/ ...
Top Directory
Top Directoryはbitbake-setupによって作成される作業場所の文字通りルートとなるディレクトリ。
Top Directoryには以下のものが存在する
- Site Configuration File
- 1つ以上のSetup
Site Configuration File
site.confという名前のファイルで、Top Directoryには1つ存在する。
これはbitbakeで参照されるsite.confと同じもので、すべてのSetupで同じものが参照される。
このファイルには使用するビルド環境の固有のプロキシ設定などワークスペース全体で共有したい設定を記述しておく。
Setup
bitbake-setup initで作成されたディレクトリで、実際のビルドに使用するメタデータやビルド環境を保持する。
つまり、Setup = BitBakeビルド環境 という対応づけとなる。
同じTop Directoryに対してbitbake initは複数回実行可能となっている。
Setupには以下のものが含まれている。
- BitBake Build
- Specific Configuration
- Sources
BitBake Build
buildという名前のディレクトリで、BitBakeで使用されるビルドディレクトリ。
従来のビルドディレクトリと同等のものとなっており、conf/local.confやconf/bblayers.confおよび、ビルド結果の生成物などが格納される。
Specific Configuration
configという名前のディレクトリでbitbake-setupが参照するための設定ファイルが格納される。
Sources
layersという名前のディレクトリで、ダウンロードされたbitbakeおよびレイヤのリポジトリが格納される。
bitbake-setupで管理される以外のレイヤもここに格納する。
作成された環境との対比
実際に作成された環境は以下のようになっている。上記の用語との対比は以下のようになる。
bitbake-builds/ => Top Directory ├── poky-whinlatter/ => Setup │ ├── build/ => BitBake Build │ ├── config/ => Specific Configuration │ └── layers/ => Sources └── site.conf => Site Configuration File
bitbake-setupの設定
bitbake-setupの設定にはコマンドの振る舞いを設定するためのSettingsと、
bitbake-setupが環境を作成するために参照するConfigurationに分けることができる。
Settings
settings.confというファイルでINIファイル形式のテキストで記述する。
Top Directory毎に作成(Local settings)することもできるし、~/.config/bitbake-setup/settings.confのようにホームディレクトリにグローバルな設定として作成(Global settings)することもできる。
bitbake-setupのコマンドラインの引数で指定することもできる。
参照される順序としては以下のようになっている。
- Global settings
- Local settings
- コマンドライン引数
Configuration
Configurationには以下の2つがある。
- Generic Configuration
- Specific Configuration
Generic Configuration
Setupを作成するために参照されるファイルで、JSON形式で記述されている。
bitbake-setup initはGeneric Configurationを元にプロンプトを表示している。
- 拡張子は
.conf.json Registoryに保存されている
bitbake-setup initはRegistoryから.conf.jsonの拡張子のファイルを探し設定を開始する。
bitbakeリポジトリではdefault-registoryに、デフォルトで使用可能なGeneric Configurationを提供している。
また、RegistoryはSettingsにより変更することもできる。
Specific Configuration
Setup毎に保存されるConfigurationで、Setup作成時に選択されたGeneric Configurationからの設定内容と、 その際にダウンロードされたSourcesのリポジトリの実際のリビジョンを格納している。
Registory
Generic Configurationを保存する場所の事で、ローカルストレージ上に存在しても良いし Webなどのネットワーク上に存在しても良い。
Registoryは以下のいづれかで指定することができる。
まとめ
bitbake-setupを理解する上で必要となる基本的な要素について調べた。
重要な項目は以下の3つ
- Setup
- Generic Configuration
- Registory