モノ創りで国造りを

ハード/ソフト問わず知見をまとめてます

Yocto Projectの勉強まとめ(途中)

背景

SoC FPGAを搭載したオリジナル基板を開発できるようになりたい。
Linux使えれば色々便利。
基板毎に最適化された組込みLinux OSを作成できるYocto Projectなるものを知ったので勉強したい。

参考文献

https://www.miraclelinux.com/product-service/total-embedded/emb-mtrls/materials/yocto-project-introduction

Linuxディストリビューション

Linuxカーネル + 各種ライブラリ = Linux OS
各種ライブラリにはOSSプロジェクトも含まれる。

頒布方法

一連の流れ:
ソースコード => ダウンロード => コンパイル => バイナリ => インストール

バイナリーベース:
ディストリビューターコンパイル済のソフトウェアをパッケージとして頒布。
パッケージにはバイナリとインストール方法をまとめられている。
ユーザーはそのパッケージをインストールする。

ソースベース:
ディストリビューターコンパイル方法を頒布する。
ユーザーがコンパイルしインストールする。

Yocto Projectとは

Yocto Projectは組み込み向けOS開発を構築する仕組みを提供するプロジェクト。
ソースコードベース。

プロジェクト体制:

Poky

Pokyとは

レシピとは

設定ファイルとは

  • 拡張子は.conf
  • CPUアーキテクチャなどのターゲットマシン毎の定義
  • ビルド環境などの独自設定

bitbakeとは

  • Pythonで書かれたビルドツール
  • レシピを解析し、定義された動作を実行する

bitbakeの動作

  1. レシピを解析
  2. ソースコードのダウンロード
    • どこからダウンロードするか
    • do_fetch
  3. ソースコードの展開
    • どのように展開するか
    • do_unpack
  4. パッチの適用
    • どのようなパッチを適用するか
    • do_patch
  5. ソフトウェアのコンパイル
    • コンパイル方法の指定
    • 依存関係の記述
    • do_configure
    • do_compile
  6. 生成物をパッケージ化
    • インストール先
    • どのファイルを含むか
    • パッケージング方式の指定
    • do_install
    • do_package

レイヤー機能

まだ。