リネオブログ

Yocto よもやま話 第 11 回 「Yocto 4.2 Mickledore リリース」

2023 年 05 月 17 日   Yocto Project よもやま話

Yocto Project 4.2 Mickledore

2023 年 5 月 5 日、Yocto Project 4.2 Mickledore リリースのアナウンスがありました。
LTS と LTS の間にリリースされる通常のバージョンとなり、リリース後 7 カ月後の 2023 年 11 月にメンテナンスが終了となる予定です。

当初の予定では、2023/4/3 にリリース候補版の構築を開始し、QA を経て 4/28 にリリースとなっていましたが、最初の候補版に向けてのコミット完了 (RC1) は 4/6 と 3 日遅れでリリースに向けた構築確認作業が開始となりました。
構築中に crate の URL に関するいくつかの懸念が確認され、4.2RC1 は放棄され 4/12 のコミットで RC2 が作成されましたが、 QA 期間中に kernel/qemu/drm に関する問題が発生したため、4/22 まで上記問題の対応およびその他 cve への対応を含めた rc3 に向けた修正を行い、最終的な構築を開始し 4/29 にテストが完了、TSC の承認後の 5/5 にリリースアナウンスが行われました。

目次

  1. 4.2 で新規に追加・拡張された機能
  2. 過去のリリースからの主な変更点
  3. 今後のサポートに関して
  4. 次号予告

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

1.1 更新状況

1.Kernel

本バージョンの kernel は、linux-5.15 及び linux 6.1 と共に現時点では2026 年 12 月までメンテナンスがおこなわれる予定の LTS バージョンが提供されています。

2. glibc

2.37

3. その他

~ 350 本のレシピのアップグレード

1.2 主な機能追加及び拡張

1. bitbake
  • レイヤー内で Python ライブラリを有効にするための新しい addpylib ディレクティブのサポート追加
  • Cooker-server のマルチスレッド化
  • これまで無視されていた一部の長時間実行中の操作を CTRL-C で中断可能に
  • bitbake のキャッシュは、より多くのハッシュデバッグデータを含むように拡張を行なうとともに、キャッシュデータを圧縮するように最適化
  • bitbake の UI は、サーバーが生きていることを確認するために、定期的に ping を打つように変更
2. bitbake-layers
  • create-layer サブコマンドにレイヤー作成と同時に conf/bblayers.conf に登録するオプション -a / --add-layer を追加
  • layerindex-fetch サブコマンドは、既に clone が存在する場合は layer を checkout するように変更
  • show-layers サブコマンドは、レイヤーディレクトリ名ではなくレイヤー名を表示するように変更
$ bitbake-layers show-layers
NOTE: Starting bitbake server...
layer                 path                                      priority
==========================================================================
meta                  /home/lineo/Yocto/4.0.9/poky/meta         5
meta-poky             /home/lineo/Yocto/4.0.9/poky/meta-poky    5
meta-yocto-bsp        /home/lineo/Yocto/4.0.9/poky/meta-yocto-bsp  5

Yocto4.0.9 での実行結果

$ bitbake-layers show-layers
NOTE: Starting bitbake server...
layer                 path                                                 priority
========================================================================================================
core                  /home/lineo/Yocto/4.2.0/poky/meta                    5
yocto                 /home/lineo/Yocto/4.2.0/poky/meta-poky               5
yoctobsp              /home/lineo/Yocto/4.2.0/poky/meta-yocto-bsp          5

Yocto4.2.0 での実行結果

3. 追加レシピ

以下のレシピが追加となっています。

  • debugedit
  • gtk4 (import from meta-gnome)
  • gcr: add recipe for gcr-4
  • graphene (import from meta-oe)
  • libc-test
  • libportal (import from meta-gnome)
  • libslirp
  • libtest-fatal-perl
  • libtest-warnings-perl (import from meta-perl)
  • libtry-tiny-perl
  • python3-build
  • python3-pyproject-hooks
  • python3-hatch-fancy-pypi-readme
  • python3-unittest-automake

2. 過去のリリースからの主な変更点

今回のリリースでは多くの変更点があります。より詳細な情報はリリースノートで確認いただけます。

2.1 開発環境

● Python 3.8 以上、GCC 8 以上が必要に

要件を満たさない場合は、YoctoProject から提供される buildtools を使用する

● 構築確認を行うディストリビューションの変更
追加 fedora 36 / 37
Almalinux 8.7 / 9.1
OpenSuse 15.4
削除 debian 10.x
fedora 34 / 35
Almalinux 8.5

2.2 ターゲットアーキテクチャ

Mickledore では、新規にアーキテクチャの追加、intel アーキテクチャ向けに tune の追加がおこなわれています。また meta-yocto-bsp で提供される mips アーキテクチャ向けの実機 edgerouter は、Yocto4.3 ではサポートされなくなります

● 新規追加アーキテクチャ

loongarch64
上記アーキテクチャ向けに qemuloongarch64 も追加

● tune の追加

gcc 11 向けに、Haswell/AMD Excavator CPU 以降向けに x86-64-v3 を追加

2.3 rust の改善

  • ターゲット向けに自動 QA 機能も含んだ cargo のサポートを追加
  • Rust crates に対するチェックサムをサポート、レシピ内の crates ではチェックサムは必須に
  • Cargo.lock の crates リストから SRC_URI の更新を可能とする cargo-update-recipe-crates クラスの追加
  • baremetal ターゲット向けの Rust の構築を可能に
  • beta バージョンや毎晩の構築に対応した RUST_CHANNES 変数の追加
  • Cargo の依存関係を SRC_URI 変数に local の github のレポジトリを指定することで置換を可能に
  • native 構築で build-in Rust ターゲットを使用することで、Rust ツールチェインの構築を数分短縮

2.4 その他の主な変更点

  • 32bit プラットフォームで 64bit の日時をサポートする機能 (2038 問題のテスト済み) の追加(デフォルトはoff)
  • cve-check で使用する NVD CVEデータベース API を 2.0API に置き換え、脆弱性の確認期間が従来の 2002 年起点から 1999 年起点に変更
  • イメージに対する ptest の並列実行を可能とし、実行時間を 3.5 時間から 45 分ほどに短縮

3. 今後のサポートに関して

Mocledpre のメインテナーは、Langdale に引き続き Steve Sakoman 氏が担当することになり、commiter は 5/4 まで行っていた Richard Purdie から 5/10 に交替しています。

この後のポイントリリースのスケジュールは以下を予定しています。

バージョン 構築予定日 リリース予定日
4.2.1 2023/5/22 2023/6/2
4.2.2 2023/7/10 2023/7/21
4.2.3 2023/8/28 2023/9/8
4.2.4 2023/11/13 2023/11/24

次号予告

次回は「YoctoProject 始めます その 2」を予定しています。
2022 年 9 月に公開の Yocto よもやま話 第 5 回「Yocto Project 始めます その 1」の続編となります。

この記事の著者
執筆者
伊東 孝康

ウィンドウシステム X10 の時代からオープンソースに関わり、リネオでカーネル層からアプリケーション層まで幅広い組込みの開発を行う。
2020 年 10 月 Yocto Project Ambassador に就任

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

Yocto Project 公式実践講座 5 月 ~ 7 月 開催分 受講お申込み受付中!
Vigiles サポート
Yocto Project よもやま話
Yocto よもやま話 第 14 回 「Yocto 4.3 Nanbield リリース」
Yocto よもやま話 第 14 回 「Yocto 4.3 Nanbield リリース」

2024 年 03 月 26 日 Yocto Project よもやま話

Yocto よもやま話 第 13 回 「Yocto Project の最新動向 2023 夏」
Yocto よもやま話 第 13 回 「Yocto Project の最新動向 2023 夏」

2023 年 07 月 25 日 Yocto Project よもやま話

Yocto よもやま話 第 12 回 「Yocto Project 始めます その 2」
Yocto よもやま話 第 12 回 「Yocto Project 始めます その 2」

2023 年 06 月 20 日 Yocto Project よもやま話

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

2024 年 01 月 10 日 Linux 技術ネタ

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

2023 年 12 月 12 日 Linux 技術ネタ

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

2023 年 12 月 14 日 イベントレポート

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

2023 年 08 月 09 日 イベントレポート

Design Solution Forum 2022
Design Solution Forum 2022

2023 年 02 月 27 日 イベントレポート

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

2023 年 05 月 30 日 リクルート

国立大学オンライン研修レポート 2022
国立大学オンライン研修レポート 2022

2022 年 09 月 27 日 リクルート

北小野通信
北小野通信 桜の季節、珍客来訪?
北小野通信 桜の季節、珍客来訪?

2023 年 05 月 11 日 北小野通信

北小野通信 「 日本土真ん中ウォーク 2022 」
北小野通信 「 日本土真ん中ウォーク 2022 」

2023 年 01 月 30 日 北小野通信

北小野通信 1011
北小野通信 1011

2022 年 10 月 11 日 北小野通信

ソリューション統括部
シリコンバレー探検記 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 日 マーケティング統括部