【2026年版】YoctoでRaspberry Pi向けLinuxをビルドする完全ガイド

当ページのリンクには広告が含まれています。
【2026年版】YoctoでRaspberry Pi向けLinuxをビルドする完全ガイド

Raspberry PiにオリジナルのLinuxを入れたい

Raspbianではなく、完全にカスタマイズしたOSを作りたい

IoT製品のプロトタイプをRaspberry Piで開発したい

そんな要望に応えるのがYocto Projectです。この記事では、Yoctoを使ってRaspberry Pi向けのカスタムLinuxイメージをビルドし、実機で起動するまでの手順を解説します。

🔧 必要なもの

  • ビルド用PC:Ubuntu 22.04/24.04、メモリ16GB以上、ディスク200GB以上
  • Raspberry Pi 4 または 5
  • microSDカード:16GB以上(Class 10推奨)
  • SDカードリーダー
  • HDMIモニター + キーボード(動作確認用)

🛒 まだRaspberry Piをお持ちでない方へ

この記事の手順を実践するには、Raspberry Pi本体が必要です。

Amazonで購入できるおすすめ製品:

📌 この記事の前提条件

  • Yoctoの基本(BitBake、レイヤー、レシピ)を理解している
  • Pokyでcore-image-minimalのビルドが成功している
  • Linuxの基本的なコマンド操作ができる

→ まだの方は「Yocto入門ガイド」を先にお読みください。

📚 この記事でわかること

  • meta-raspberrypiレイヤーのセットアップ
  • Raspberry Pi向けイメージのビルド設定
  • SDカードへのイメージ書き込み方法
  • 実機での起動確認
  • Wi-Fi/SSH/GPIOの設定方法

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

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

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

目次

全体の流れ

  1. Pokyと必要なレイヤーをダウンロード
  2. bblayers.confにレイヤーを追加
  3. local.confでMACHINEを設定
  4. bitbakeでイメージをビルド
  5. SDカードに書き込み
  6. Raspberry Piで起動確認

Step 1: 必要なレイヤーをダウンロード

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

# Pokyをダウンロード(styhead = 最新安定版)
$ git clone -b styhead git://git.yoctoproject.org/poky.git

# meta-raspberrypiをダウンロード
$ git clone -b styhead git://git.yoctoproject.org/meta-raspberrypi

# meta-openembeddedをダウンロード(依存関係)
$ git clone -b styhead git://git.openembedded.org/meta-openembedded

# ディレクトリ構成を確認
$ ls
meta-openembedded  meta-raspberrypi  poky

Step 2: ビルド環境を初期化

# ビルド環境を初期化
$ cd ~/yocto/poky
$ source oe-init-build-env build-rpi

# buildディレクトリに移動される
# 初回実行時は conf/local.conf と conf/bblayers.conf が自動生成される

Step 3: レイヤーを追加

# meta-oeを追加(meta-raspberrypiの依存)
$ bitbake-layers add-layer ../../meta-openembedded/meta-oe

# meta-pythonを追加(任意、Python使う場合)
$ bitbake-layers add-layer ../../meta-openembedded/meta-python

# meta-networkingを追加(任意、ネットワーク機能使う場合)
$ bitbake-layers add-layer ../../meta-openembedded/meta-networking

# meta-raspberrypiを追加
$ bitbake-layers add-layer ../../meta-raspberrypi

# レイヤー一覧を確認
$ bitbake-layers show-layers
layer                 path                                             priority
================================================================================
meta                  /home/user/yocto/poky/meta                       5
meta-poky             /home/user/yocto/poky/meta-poky                  5
meta-yocto-bsp        /home/user/yocto/poky/meta-yocto-bsp             5
meta-oe               /home/user/yocto/meta-openembedded/meta-oe       6
meta-raspberrypi      /home/user/yocto/meta-raspberrypi                9

Step 4: local.confを設定

conf/local.confを編集して、Raspberry Pi向けの設定を行います。

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

以下の設定を追加・変更します:

# ========================================
# Raspberry Pi向け設定
# ========================================

# ターゲットマシンを指定
# raspberrypi4-64  : Raspberry Pi 4 (64bit)
# raspberrypi5     : Raspberry Pi 5
# raspberrypi3-64  : Raspberry Pi 3 (64bit)
MACHINE = "raspberrypi4-64"

# ビルドの並列数(CPUコア数に合わせて調整)
BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"

# SDカードイメージを生成
IMAGE_FSTYPES = "wic.bz2 wic.bmap"

# GPU メモリ割り当て(MB)
GPU_MEM = "64"

# シリアルコンソールを有効化(デバッグ用)
ENABLE_UART = "1"

# SSH を有効化
IMAGE_FEATURES += "ssh-server-dropbear"

# root ログインを許可(開発用)
EXTRA_IMAGE_FEATURES += "debug-tweaks"

# ファームウェアを含める
RPI_USE_U_BOOT = "1"

Raspberry Piのマシン設定一覧

MACHINE設定対応モデルアーキテクチャ
raspberrypi5Raspberry Pi 564bit (aarch64)
raspberrypi4-64Raspberry Pi 464bit (aarch64)
raspberrypi4Raspberry Pi 432bit (armhf)
raspberrypi3-64Raspberry Pi 364bit (aarch64)
raspberrypi3Raspberry Pi 332bit (armhf)
raspberrypi2Raspberry Pi 232bit (armhf)
raspberrypi0-2w-64Raspberry Pi Zero 2 W64bit (aarch64)

Step 5: イメージをビルド

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

# または、基本ツールを含むイメージ
$ bitbake core-image-base

# ビルド時間の目安(初回)
# - 8コア/32GB RAM: 約1.5〜2時間
# - 4コア/16GB RAM: 約3〜4時間

ビルド完了後の確認

# 生成されたイメージを確認
$ ls tmp/deploy/images/raspberrypi4-64/

core-image-minimal-raspberrypi4-64.wic.bz2      # SDカードイメージ(圧縮)
core-image-minimal-raspberrypi4-64.wic.bmap     # 高速書き込み用マップ
Image                                            # カーネルイメージ
bcm2711-rpi-4-b.dtb                             # デバイスツリー

Step 6: SDカードに書き込み

方法1: bmaptoolを使う(推奨・高速)

# bmaptoolをインストール
$ sudo apt install bmap-tools

# SDカードのデバイス名を確認(例: /dev/sdb)
$ lsblk

# bmaptoolで書き込み(/dev/sdXは実際のデバイス名に置き換え)
$ cd tmp/deploy/images/raspberrypi4-64/
$ sudo bmaptool copy core-image-minimal-raspberrypi4-64.wic.bz2 /dev/sdX

# 書き込み完了後、SDカードを安全に取り外し
$ sync

方法2: ddを使う(従来方式)

# 圧縮を解凍しながら書き込み
$ bzcat core-image-minimal-raspberrypi4-64.wic.bz2 | sudo dd of=/dev/sdX bs=4M status=progress

# 同期
$ sync

⚠️ 注意

/dev/sdXは必ずSDカードの正しいデバイス名に置き換えてください。
間違えるとPCのハードディスクを上書きしてしまいます!
lsblkコマンドで確認してから実行してください。

Step 7: Raspberry Piで起動

  1. SDカードをRaspberry Piに挿入
  2. HDMIモニターとキーボードを接続
  3. 電源を接続して起動
  4. ログインプロンプトが表示されたらrootでログイン(パスワードなし)
Poky (Yocto Project Reference Distro) 4.3 raspberrypi4-64 ttyAMA0

raspberrypi4-64 login: root

root@raspberrypi4-64:~# uname -a
Linux raspberrypi4-64 6.6.x-yocto-standard #1 SMP ... aarch64 GNU/Linux

root@raspberrypi4-64:~# cat /etc/os-release
NAME="Poky (Yocto Project Reference Distro)"
VERSION="4.3 (styhead)"

🎉 おめでとうございます!Yoctoでビルドした自作LinuxがRaspberry Piで起動しました。

追加設定: Wi-Fi / SSH / GPIO

Wi-Fiを有効化する

conf/local.confに以下を追加:

# Wi-Fiドライバとツールを追加
IMAGE_INSTALL:append = " linux-firmware-bcm43455 wpa-supplicant"

# Wi-Fi SSIDとパスワードを設定(任意)
# 本番環境では別の方法で設定することを推奨

SSHでリモートログイン

すでにIMAGE_FEATURES += "ssh-server-dropbear"を設定済みなら、SSHが有効です。

# IPアドレスを確認(有線LAN接続の場合)
root@raspberrypi4-64:~# ip addr show eth0

# 別のPCからSSH接続
$ ssh root@192.168.1.xxx

GPIOを操作する

# GPIOツールを追加(local.confに追記)
IMAGE_INSTALL:append = " libgpiod libgpiod-tools"

# 再ビルド後、GPIO操作が可能
root@raspberrypi4-64:~# gpioinfo
root@raspberrypi4-64:~# gpioset gpiochip0 17=1  # GPIO17をHIGHに

よくあるトラブルと解決方法

❌ 画面が真っ暗、起動しない

原因:HDMIの出力設定が合っていない

解決:local.confに以下を追加

HDMI_FORCE_HOTPLUG = "1"
HDMI_GROUP = "2"
HDMI_MODE = "82"  # 1080p 60Hz

❌ Kernel panic – not syncing

原因:カーネルとルートファイルシステムの不整合

解決:イメージを再ビルドし、再度SDカードに書き込み

❌ No such file or directory: wic.bz2

原因:IMAGE_FSTYPESにwicが含まれていない

解決:local.confにIMAGE_FSTYPES = "wic.bz2 wic.bmap"を追加

まとめ

この記事では、Yocto ProjectでRaspberry Pi向けのカスタムLinuxをビルドする手順を解説しました。

  • ✅ meta-raspberrypiレイヤーでRaspberry Piをサポート
  • ✅ MACHINE設定でターゲットモデルを指定
  • ✅ wic形式でSDカードイメージを生成
  • ✅ bmaptoolで高速にSDカードに書き込み

これで、Raspbianとは異なる完全にカスタマイズされたLinuxをRaspberry Piで動かせるようになりました。不要なパッケージを削除したり、独自のアプリを組み込んだり、可能性は無限大です!

🚀 次のステップ


🛒 この記事で使用した機材(Amazonで購入可)

※本記事は2026年1月時点の情報に基づいています。Yocto/meta-raspberrypiのバージョンアップにより手順が変更される場合があります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

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

目次