【2026年版】Yocto Project完全入門ガイド|組み込みLinux開発の第一歩

当ページのリンクには広告が含まれています。
【2026年版】Yocto Project完全入門ガイド|組み込みLinux開発の第一歩

Raspberry PiやJetsonに自分専用のLinuxを入れたい

IoT製品の開発でカスタムLinuxが必要になった

Yoctoって聞いたことあるけど、何から始めればいいかわからない

そんなあなたのために、この記事ではYocto Projectの基礎から実際のビルドまでを完全解説します。

私自身、組み込みLinuxの開発に10年以上携わってきました。Yoctoは最初こそ敷居が高く感じますが、仕組みを理解すれば驚くほど柔軟です。この記事を読み終える頃には、あなたも最初のLinuxイメージをビルドできるようになっているはずです。

📚 この記事でわかること

  • Yocto Projectとは何か、なぜ必要なのか
  • BitBake、レイヤー、レシピの仕組み
  • 開発環境のセットアップ方法
  • 最初のLinuxイメージをビルドする手順
  • QEMUでの動作確認方法

この記事を書いた人:Mitsu(StudioMitsu代表)

フルスタックエンジニア(15年)。大手SIerで金融システム(与信判定、利息計算)を5年間開発した経験を持つ。Web・インフラ・動画処理など幅広い技術領域で実務経験があり、システム的な視点から実践的なノウハウを発信。

→ 詳しいプロフィールはコチラ

目次

Yocto Projectとは?5分でわかる概要

Yocto Projectは、組み込みデバイス向けにカスタマイズされたLinuxディストリビューションを作成するためのオープンソースプロジェクトです。

重要なのは、Yocto自体はOSではないということ。Yoctoは「Linuxを作るための道具箱」です。

Yoctoが解決する「組み込みLinuxの課題」

組み込みLinux開発には、以下のような課題があります:

  • ストレージが少ない(数MB〜数GB)→ 不要なパッケージを削る必要がある
  • CPUが非力(ARM Cortex-Aなど)→ 軽量化が必須
  • 特殊なハードウェア(独自ドライバ)→ カーネルのカスタマイズが必要
  • 長期サポート(10年以上使う製品も)→ 再現性のあるビルドが必要

Yoctoは、これらすべてを解決できる唯一の標準的なビルドシステムです。

Buildroot / OpenWRTとの違い

項目YoctoBuildrootOpenWRT
柔軟性◎ 非常に高い○ 中程度△ ルーター特化
学習コスト△ 高い○ 低め○ 低め
商用サポート◎ 豊富△ 限定的△ 限定的
採用企業Intel, NXP, TI, Sony中小企業が多いネットワーク機器
パッケージ管理◎ RPM/DEB/IPK△ なし○ OPKG

結論:商用製品やIoTデバイスを開発するなら、Yoctoを学んでおいて損はありません。大手半導体メーカーのSDKは、ほぼすべてYoctoベースです。

どんな企業・製品で使われているか

  • Intel:Edison、Minnowboardなど
  • NXP:i.MXシリーズの公式BSP
  • Texas Instruments:Sitaraプロセッサ向け
  • Sony:デジタルカメラ、オーディオ機器
  • Automotive Grade Linux (AGL):車載Linuxの標準

Yoctoを構成する4つの基本要素

Yoctoを理解するには、以下の4つの概念を押さえておく必要があります。

🔧 Yoctoの構成要素

① Poky(リファレンスディストリビューション)

Pokyは、Yocto Projectが提供するリファレンス実装です。「ひな形」だと思ってください。

Yoctoを始めるときは、まずPokyをダウンロードするところから始まります。Pokyには、BitBake、基本レイヤー、サンプルイメージなど、開発に必要なものが一式含まれています。

② BitBake(ビルドエンジン)

BitBakeは、Yoctoのビルドを実行するエンジンです。Makefileの代わりに「レシピ」を読み込み、依存関係を解決しながらビルドを進めます。

# 最小構成のLinuxイメージをビルド
$ bitbake core-image-minimal

# 特定のパッケージだけビルド
$ bitbake busybox

# パッケージの情報を表示
$ bitbake -e busybox | grep ^PV=

③ レイヤー(Layers)

レイヤーは、関連するレシピや設定をまとめたディレクトリです。Yoctoの最大の特徴は、この「レイヤー構造」です。

  • meta:OpenEmbeddedのコアレイヤー
  • meta-poky:Poky固有の設定
  • meta-raspberrypi:Raspberry Pi向けBSP
  • meta-mylayer:自分のカスタマイズ用

レイヤーを積み重ねることで、ベースを壊さずにカスタマイズできます。

④ レシピ(Recipes)

レシピは、特定のソフトウェアをビルドする方法を記述した.bbファイルです。

# 例:hello-world_1.0.bb
SUMMARY = "Hello World サンプルアプリケーション"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=..."

SRC_URI = "file://hello.c"

do_compile() {
    ${CC} ${CFLAGS} ${LDFLAGS} -o hello ${WORKDIR}/hello.c
}

do_install() {
    install -d ${D}${bindir}
    install -m 0755 hello ${D}${bindir}
}

開発環境の準備【Ubuntu推奨】

必要なスペック

項目最低推奨
CPU4コア8コア以上
メモリ8GB32GB以上
ディスク100GB(SSD推奨)300GB以上
OSUbuntu 22.04 LTSUbuntu 22.04/24.04 LTS

必須パッケージのインストール(Ubuntu 22.04)

# 必須パッケージをインストール
$ sudo apt update
$ sudo apt install -y gawk wget git diffstat unzip texinfo gcc build-essential \
    chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils \
    iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
    python3-subunit mesa-common-dev zstd liblz4-tool file locales

# ロケール設定(en_US.UTF-8が必要)
$ sudo locale-gen en_US.UTF-8

Pokyのダウンロード

# 作業ディレクトリを作成
$ mkdir -p ~/yocto && cd ~/yocto

# Pokyをクローン(styheadブランチ = 最新安定版)
$ git clone -b styhead git://git.yoctoproject.org/poky.git

# ダウンロード完了を確認
$ ls poky/
bitbake  documentation  meta  meta-poky  meta-yocto-bsp  oe-init-build-env  scripts

💡 Tips:ブランチ名はYoctoのバージョンを表します。styheadは2024年最新のLTS版です。

最初のビルドを実行する

oe-init-build-envの実行

$ cd ~/yocto/poky
$ source oe-init-build-env build

# 実行後、自動的にbuildディレクトリに移動する
# 以下のメッセージが表示されればOK
You had no conf/local.conf file. This configuration file has therefore been
created for you...

local.confの設定

conf/local.confを編集して、ビルドの並列数を設定します。

# conf/local.confを編集
$ nano conf/local.conf

# 以下を追加(CPUコア数に合わせて調整)
BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"

# ターゲットマシン(デフォルトはqemux86-64)
MACHINE ?= "qemux86-64"

bitbake core-image-minimalの実行

# 最小構成のLinuxイメージをビルド
$ bitbake core-image-minimal

# 初回ビルドは1〜3時間かかります(スペックによる)
# 途中でエラーが出た場合は、もう一度同じコマンドを実行

ビルド時間の目安

環境初回ビルド再ビルド(変更なし)
8コア / 32GB RAM / SSD約1時間数分
4コア / 16GB RAM / SSD約2〜3時間約10分
4コア / 8GB RAM / HDD約4〜6時間約30分

ビルド結果をQEMUで動かす

runqemuコマンドの使い方

ビルドが成功したら、runqemuコマンドでエミュレータを起動できます。

# QEMUでイメージを起動
$ runqemu qemux86-64

# GUIなしで起動する場合
$ runqemu qemux86-64 nographic

# 起動後、ログイン(ユーザー: root、パスワード: なし)
qemux86-64 login: root
root@qemux86-64:~#

動作確認のポイント

# カーネルバージョンを確認
root@qemux86-64:~# uname -a
Linux qemux86-64 6.6.x-yocto-standard #1 SMP ...

# ファイルシステムを確認
root@qemux86-64:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        48M   32M   14M  70% /

# 終了
root@qemux86-64:~# poweroff

🎉 おめでとうございます!これであなたも最初のYocto Linuxイメージをビルドできました。

次のステップ:カスタマイズへの道

Yoctoの基本がわかったら、次は実際のカスタマイズに挑戦しましょう。

🚀 おすすめの次のステップ

  • レイヤーを追加する:meta-raspberrypiなどのBSPレイヤーを追加
    → [内部リンク:Yoctoレイヤーの作成と追加方法]
  • 自作レシピを作成する:自分のアプリをイメージに追加
    → [内部リンク:Yoctoでカスタムレシピを作成する方法]
  • 実機で動かす:Raspberry PiやJetsonでブート
    → [内部リンク:YoctoでRaspberry Pi向けLinuxをビルドする]

まとめ:Yoctoを学ぶメリット

この記事では、Yocto Projectの基礎から最初のビルドまでを解説しました。

  • ✅ Yoctoは「組み込みLinuxを作るための道具箱」
  • ✅ Poky、BitBake、レイヤー、レシピの4つが基本要素
  • ✅ Ubuntu環境でbitbake core-image-minimalを実行すればビルドできる
  • ✅ QEMUで動作確認が可能

Yoctoは確かに学習コストが高いですが、一度マスターすればどんな組み込みデバイスにも対応できる汎用スキルになります。

特にIoT・車載・産業機器などの分野では、Yoctoスキルを持つエンジニアの需要は非常に高いです。ぜひこの記事をきっかけに、Yoctoの世界に飛び込んでみてください!


関連記事


※本記事は2026年1月時点の情報に基づいています。Yoctoのバージョンアップにより手順が変更される場合があります。最新情報はYocto Project公式サイトをご確認ください。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次