🐧 Linux 総合学習プラットフォーム

組込みビルド Yocto/Buildrootの用語集(11語)

組込みビルド Yocto/Buildrootに関する Linux 用語を、読み・意味・補足つきでまとめました。

BitBakeビットベイク
Yoctoでレシピを依存解決して実行するビルドエンジン。
レシピ(.bb)を解析し、fetch→unpack→patch→configure→compile→install といったタスクを依存関係に従って実行するYoctoの中核ツール。bitbake ターゲット名 で呼び出し、ターゲットには core-image-minimal などのイメージレシピや個別パッケージ名を指定する。
Buildrootビルドルート
MakefileとKconfigで組込みLinuxイメージを生成する軽量ビルドシステム。
クロスツールチェーン・カーネル・ルートファイルシステムを一括で作る組込み向けビルドシステム。構成がMakefileとKconfigだけで単純なため理解しやすく、小規模機器や学習・試作に向く。設定は .config に保存し、再利用しやすい形が defconfig。成果物は output/images/ に出力される。
defconfigデフコンフィグ
ボードや構成ごとに用意された既定設定ファイル。一括で .config を作れる。
差分だけを保存した最小の設定ファイル。Buildrootでは make ボード名_defconfig で configs/ 内の定義から .config を生成でき、Linuxカーネルでも arch/*/configs/ に同様の仕組みがある。フル設定を持ち歩かず、設定を再現・共有するために使う。
Linuxカーネルリナックスカーネル
ハードウェアを抽象化しプロセスやメモリを管理するOSの中核。
CPU・メモリ・デバイスを管理し、ユーザ空間のプログラムにシステムコールを提供するOSの心臓部。組込みではターゲットに合わせて構成を絞り、zImageやuImage、bzImageといった形式でビルドする。ビルドシステムはこのカーネルをrootfs・ブートローダと一括で生成する。
Yocto Projectヨクトプロジェクト
レイヤとレシピで組込みLinuxを構築する大規模ビルドフレームワーク。
レシピ・レイヤ・BitBakeを中核とする組込みLinuxのビルドフレームワーク。リファレンス実装はpoky。レイヤを重ねて構成を差分管理でき、パッケージ単位の更新やSDK生成にも対応するため、長期保守の商用製品で広く使われる。学習コストは高い。
イメージイメージ
ストレージにそのまま書き込める形にまとめられた成果物ファイル。
カーネルやルートファイルシステムを、SDカードやeMMCに dd 等で書き込めるよう1つにまとめたファイル。.img・.ext4・.wic・.sdcard など形式は様々。Yoctoでは core-image-minimal のように「イメージ」を生成するレシピ自体を指して使うこともある。
クロスツールチェーンクロスツールチェーン
PC上でターゲットCPU向けの実行ファイルを作るコンパイラ等一式。
開発機(例: x86_64のPC)で動作しながら、別アーキテクチャ(例: ARM)向けのバイナリを生成するコンパイラ・リンカ・ライブラリの組。クロスコンパイルの基盤で、arm-linux-gnueabihf-gcc のように接頭辞が付く。BuildrootもYoctoもビルドの最初にこれを構築または取得する。
ブートローダブートローダ
電源投入直後に動き、カーネルを読み込んで起動する最初のプログラム。
ストレージからカーネルとデバイスツリーをメモリへ読み込み、引数を渡してLinuxを起動する小さなプログラム。組込みではU-Bootが代表的。ビルドシステムはカーネル・rootfsと並んでこのブートローダも生成・配置の対象とする。
ルートファイルシステムルートファイルシステム
/ 以下に展開されるコマンド・ライブラリ・設定一式。rootfsと略す。
起動後のLinuxでルートディレクトリ(/)にマウントされるファイル群。BusyBoxなどのコマンド、共有ライブラリ、/etc の設定などを含む。ビルドシステムはこれを ext4 イメージや tar アーカイブ、cpio などの形式で出力する。カーネル・ブートローダと並ぶシステムの主要部品。
レイヤレイヤ
関連するレシピや設定をまとめたYoctoの構成単位。meta- で始まることが多い。
複数のレシピ・設定・クラスをひとまとめにしたディレクトリで、meta-bsp や meta-oe のように meta- で始まる名前が一般的。レイヤを重ねることでベース構成に差分を足す形でカスタマイズでき、構成の分離・再利用・保守を容易にする。bblayers.conf で有効化する。
レシピレシピ
1つのソフトの取得・設定・ビルド・インストール手順を書いた .bb ファイル。
Yoctoにおける「あるソフトをどこから取得し・どう設定し・どうビルドし・どこへインストールするか」を記述した定義ファイル(.bb)。BitBakeがこの記述に従ってタスクを実行する。共通設定を切り出した .bbappend や .inc と組み合わせて使うこともある。

▶ 学習アプリで「引く」を使う