Yocto Projectの勉強まとめ(途中)
背景
SoC FPGAを搭載したオリジナル基板を開発できるようになりたい。
Linux使えれば色々便利。
基板毎に最適化された組込みLinux OSを作成できるYocto Projectなるものを知ったので勉強したい。
参考文献
Linuxディストリビューション
Linuxカーネル + 各種ライブラリ = Linux OS
各種ライブラリにはOSSプロジェクトも含まれる。
頒布方法
一連の流れ:
ソースコード => ダウンロード => コンパイル => バイナリ => インストール
バイナリーベース:
ディストリビューターがコンパイル済のソフトウェアをパッケージとして頒布。
パッケージにはバイナリとインストール方法をまとめられている。
ユーザーはそのパッケージをインストールする。
ソースベース:
ディストリビューターがコンパイル方法を頒布する。
ユーザーがコンパイルしインストールする。
Yocto Projectとは
Yocto Projectは組み込み向けOS開発を構築する仕組みを提供するプロジェクト。
ソースコードベース。
プロジェクト体制:
- Poky
- OpenEmbedded
- レシピとbitbakeを開発
- matchbox
- GUIライブラリ
- Eclipse IDE Plug-in
- opkg
- パッケージングシステム
- Toaster
- ビルドサポート用GUI
Poky
Pokyとは
- リファレンスビルドシステム
- ディストリビューション作成をサポートする
- bitbakeとメタデータ(レシピと設定ファイル)から構成される
- Linuxカーネル、ブートローダー、ユーザーランド、クロスツールチェインを生成する
レシピとは
- 拡張子は.bb又は.bbappend
- ソースコードの取得、ソフトウェアのコンパイル、パッケージングまでの動作を定義
- シェルスクリプトとPythonで記述
- レシピ同士の依存関係を設定
- bbppanedファイルは既存のbbファイルを修正する際に使用
設定ファイルとは
- 拡張子は.conf
- CPUアーキテクチャなどのターゲットマシン毎の定義
- ビルド環境などの独自設定
bitbakeとは
- Pythonで書かれたビルドツール
- レシピを解析し、定義された動作を実行する
bitbakeの動作
- レシピを解析
- ソースコードのダウンロード
- どこからダウンロードするか
- do_fetch
- ソースコードの展開
- どのように展開するか
- do_unpack
- パッチの適用
- どのようなパッチを適用するか
- do_patch
- ソフトウェアのコンパイル
- コンパイル方法の指定
- 依存関係の記述
- do_configure
- do_compile
- 生成物をパッケージ化
- インストール先
- どのファイルを含むか
- パッケージング方式の指定
- do_install
- do_package
レイヤー機能
まだ。