リネオブログ

Yocto よもやま話 第 19 回 「Yocto Project 5.3 Whinlatter」

2026 年 02 月 09 日   Yocto Project よもやま話

2025年12月、Yocto Project 5.3 Whinlatter リリースのアナウンスがありました。

目次

  1. Yocto 5.3で新規に追加・拡張された機能
  2. WORKDIRの変更点
  3. 代入記号周囲の空白
  4. 新規サポートディストリビューション
  5. 無免許のLinuxカーネルファームウェアの削除
  6. 本リリース情報の参照元

リリースノート冒頭にあるpokyの重要な変更点について

リリースノートの冒頭に「本リリースには、ユーザーが認識しておくべき重要な変更点が含まれています。」と注意喚起がなされており、リンク先the migration guideに以下の一文があります。


The Poky repository master branch is no longer updated.

Pokyリポジトリのマスターブランチは更新されなくなりました。


これはPokyディストリビューションが廃止されたことを意味するものではなく、ベースレイヤーのクローン作成方法およびPoky構築環境の設定方法が変更されたことを示すとのことです。

Ross Burton 氏は「実際のところはpokyをbitbake+oe-core+meta-yoctoに切り替える」と表現しています。

本稿ではいつもと順番を変更して最初にpokyの変更について記述します。


物は試しということで、従来と同様の手順のgit cloneコマンドでpokyを指定してダウンロードをすると、中にはREADMEファイルが一つ入っているだけでした。poky取得時のディレクトリ構造をひとつ前のバージョンのwalnascarと比較すると以下のようになります。

Walnascar(5.2)

52のフォルダ構成.png

Whinlatter(5.3)

53のフォルダ構成.png

whinlatterのこの構成では当然ですがbitbakeは動きません。中にあるREADMEファイルを読んでみると、


a)自力でbitbake, openembedded-core, meta-yocto, yocto-docsをここにクローニングする

b)bitbake-setupツールを使ってセットアップする


どちらかの方法で中身を取得してください、と説明があります。

bitbake-setupツールはRichard Purdie氏が7-8年かけて作り上げたものだとのことで、で、一章まるまる割いて紹介するほどのお勧めぶりなので、b)のbitbake-setupツールを実行しました。まずgit cloneでbitbakeを取得します。

$git clone https://git.openembedded.org/bitbake

取得した中にあるbitbake-setupを実行します。

$ ./bin/bitbake-setup init

その結果、以下のフォルダ構成が得られます。

53のフォルダ構成_init後.png

この状態で、初期化スクリプトinit-build-envを実行します。

$ source ./poky-master/build/init-build-env

これでbitbake コマンドを実行できるようになります。

これはYocto 5.2で変更されたことですが、そのままだとqemu起動時に例外が出て起動そのものが失敗するので、local.confに以下を追記します。

$ vi ./bitbake-builds/poky-master/build/conf/local.conf
IMAGE_FEATURES += "allow-empty-password allow-root-login empty-root-password post-install-logging"

5.1以前ではIMAGE_FEATURES += "debug_tweaks"と記述していた箇所になりますが、このオプションはなくなりました。書き換えたうえで、bitbakeを実行します。

$ bitbake core-image-minimal

bitbake終了後、qemuを起動します。

$ runqemu core-image-minimal snapshot

Snapshot モードも従来から変更になった点です。リリースや共有にzstファイルなどの圧縮ファイルを利用することが主流になったことを受け、エミュレータでも圧縮イメージを利用するのですが、正しく機能させるためにsnapshot モードでの実行が必要になります。 以上の作業で、以下の画面が立ち上がりました。

QEMU.png

変更の経緯

この変更の背景に関する追加情報はRichard Purdie氏からメッセージの形で提供されています

元々pokyは急場しのぎであり、一時的なものだったこと。開発者からは支持されていなかったことが書かれています。

変更の留意点としては以下が列記されています。

・別個のoe-coreとbitbakeクローンを用いたビルド環境構築は従来通り機能します

・CIをpokyリポジトリからこれら2つのリポジトリへ変更可能です

・bitbake-setupは必須ではなく、Yoctoドキュメントがユーザーに提示する内容となります

・ pokyリポジトリのメンテナンスを停止する必要はありませんが、新しいアプローチ/コードをテストする人はいないのでご注意ください

・新しい設定でオプションとしてsstateミラーを公開しています

・設定フラグメントもユーザーに公開しています

・meta-yocto内のDISTROとしてのpokyは残ります


ここからはいつも通りの構成でお話しします。

1. Yocto 5.3で新規に追加・拡張された機能

1.1 基本ソフト

kernel

Linux kernel 6.16
なお、本リリースにおけるOLDEST_KERNEL設定は5.15です。初期状態ではこれより古いカーネルはサポートされません。

gcc

gcc 15

glibc

glibc 2.42

LLVM 21.1.1

LLVM 21.1.1

その他

300以上のレシピがアップグレードされた。

機能拡張

Pythonは最低バージョンが3.9になりました。

ホスト要件の変更

LLVMやその他リソースを必要とするレシピの追加により、ホスト要件が変更になりました。
最小ディスク容量用件は140GB。
最小RAM用件は32GB。

新規ツール:bitbake-setup

新規ツールbitbake-setupが追加されました。このツールを使って、初期レイヤーのクローン作製や環境設定が可能です。

2. WORKDIRの変更点

S = ${WORKDIR}/something はサポート終了になりました
systemd レシピはデフォルトかつ暗黙的に適用されるため、usrmerge PACKAGECONFIG オプションは含まれなくなりました。
レシピで S が ${WORKDIR}/something に設定されていると、サポートされないので、エラーが発生します。以下のように変更してください。

S = "${UNPACKDIR}/something"
S = ${WORKDIR}/git および S = ${UNPACKDIR}/git は削除してください
S が git チェックアウトのサブディレクトリに設定されている場合、次のように調整する必要があります
S = "${UNPACKDIR}/${BP}/something"
Sedコマンドを使って自動でSの設定を削除することもできます。
ただし、コマンドにより大量の空行が挿入される可能性がありますのでご注意ください。
sed -i "/^S = \"\${WORKDIR}\/git\"/d" `find . -name *.bb -o -name *.inc -o -name *.bbclass`
その後、残りのSの割り当てをWORKDIRではなくUNPACKDIRを参照するように調整するのに以下のコマンドを使うことができます。
sed -i "s/^S = \"\${WORKDIR}\//S = \"\${UNPACKDIR}\//g" `find . -name *.bb -o -name *.inc -o -name *.bbclass`

3. 代入記号周囲の空白

Lレシピ内で等号代入記号 「=」 の周囲に空白がない場合、新しい警告が表示されるようになりました。
以下は警告が出る例です。

FOO="bar"
FOO= "bar"
FOO ="bar"
警告が出ない例は以下になります。このように書き換えてください。
FOO = "bar"

4. 新規サポートディストリビューション

linux-firmwareレシピはデフォルトでライセンス情報を提供しないファームウェアを除外するようになりました。このレシピは内部的に除外対象ファームウェアのリストを保持しており、そのリストはREMOVE_UNLICENSEDという変数で管理されます。無免許ファームウェアが必要な場合は、この変数を上書きすることで利用できます。

5. 本リリース情報の参照元

Yocto Project Release Information Release 5.3(whinlatter)

Yocto Project の勉強がしたい Yocto での問題を解決して欲しい お客様の Yocto 開発を支援するサービス群 Yoctoコンシェルジュ

Yocto Project 公式実践講座 3 月 ~ 5 月 開催分 受講お申込み受付中!
Vigiles サポート
Yocto Project よもやま話
Yocto よもやま話 第 19 回 「Yocto Project 5.3 Whinlatter」
Yocto よもやま話 第 19 回 「Yocto Project 5.3 Whinlatter」

2026 年 02 月 09 日 Yocto Project よもやま話

Yocto よもやま話 第 18 回 「Yocto Project 5.2 Walnascar」
Yocto よもやま話 第 18 回 「Yocto Project 5.2 Walnascar」

2026 年 02 月 09 日 Yocto Project よもやま話

Yocto よもやま話 第 17 回 「Yocto Project 5.1 Styhead」
Yocto よもやま話 第 17 回 「Yocto Project 5.1 Styhead」

2026 年 02 月 09 日 Yocto Project よもやま話

Linux 技術ネタ
RISC-Vについて学ぶ-後編
RISC-Vについて学ぶ-後編

2024 年 01 月 10 日 Linux 技術ネタ

RISC-Vについて学ぶ-前編
RISC-Vについて学ぶ-前編

2023 年 12 月 12 日 Linux 技術ネタ

イベントレポート
EdgeTech+ 2025 出展レポート
EdgeTech+ 2025 出展レポート

2025 年 12 月 01 日 イベントレポート

EdgeTech+ West 2025 出展レポート
EdgeTech+ West 2025 出展レポート

2025 年 08 月 08 日 イベントレポート

EdgeTech+ 2024 出展レポート
EdgeTech+ 2024 出展レポート

2024 年 12 月 06 日 イベントレポート

リクルート
新卒採用、絶賛募集中!
新卒採用、絶賛募集中!

2025 年 04 月 01 日 リクルート

新卒採用、絶賛募集中!
新卒採用、絶賛募集中!

2023 年 05 月 30 日 リクルート

信州リネオ便り
奈良井宿アイスキャンドル祭りに行ってきました
奈良井宿アイスキャンドル祭りに行ってきました

2026 年 02 月 09 日 信州リネオ便り

2026年 明けましておめでとうございます
2026年 明けましておめでとうございます

2026 年 01 月 06 日 信州リネオ便り

2025年忘年会を行いました
2025年忘年会を行いました

2025 年 12 月 23 日 信州リネオ便り

ソリューション統括部
シリコンバレー探検記 2019 ~番外編~
シリコンバレー探検記 2019 ~番外編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~後編~
シリコンバレー探検記 2019 ~後編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~前編~
シリコンバレー探検記 2019 ~前編~

2019 年 12 月 10 日 ソリューション統括部

マーケティング統括部
大成功決起大会!!(ET2019)
大成功決起大会!!(ET2019)

2019 年 12 月 13 日 マーケティング統括部

ESEC 2019 決起大会
ESEC 2019 決起大会

2019 年 04 月 25 日 マーケティング統括部

シリコンバレー探検記 その 2
シリコンバレー探検記 その 2

2018 年 12 月 18 日 マーケティング統括部