リネオブログ

Yocto よもやま話 第 6 回「Yocto への道 その 2」

2022 年 10 月 24 日   Yocto Project よもやま話

今回は「Yocto への道 その 2」と題して、今日に至る Yocto Project の配布物 pokyに関する情報を提供する連載の第二回目をお届けします。

目次

  1. Poky-1.0(Inky)リリース
  2. Poky-2.0(Clyde)リリース
  3. 次回予告
連載第一回「Yoctoへの道 その 1」の「Codename について」の欄で言及した Yocto4.2(2023年 4 月 28 日リリース予定)のコードネームが、予測通り9月 30 日に公開されました。 今回は「Mickledore」 と湖水地方の峰と峰を結ぶ尾根の名称となっており、GoogleMap では検索できず、BingMap で見つけることができました。日本語での表記ですが「ミクルドール」と記載されている例が多いです。

1. poky-1.0 リリース

Tag Inky 1.0

inky-1.0 と後日 TAG 付けされた最初のリリースは、2006 年 2 月 10 日付けでコミットがおこなわれたリビジョンとなります。

1.1 レシピの追加・変更

前回紹介した 2005 年 11 月 16 日付のコミットに対して、既存のレシピのアップデートの他、"alsa" のレシピの追加、gtk2 上で実装された "web" というWebブラウザのレシピが追加され、依存する "libsoupl" "js" 等のレシピが追加されています。

poky に含まれるwebブラウザは、9.0(dylan)までは "web"(web-webkit)、10.0(dora)から 13.0(fid)までは "midori"、14.0(jethoro)以降は "epiphany" が提供されています。

下図は、最新のpokyに含まれる epiphany_42.4 で弊社サイトを表示させた際のスクリーンショットとなります。(qemuarm64 上のcore-image-sato + ephipany + ttf-sazanami)

弊社サイトを表示させた際のスクリーンショット

1.2 コンフィグレーションファイルの追加・変更

前回紹介した 2005年 11 月 16 日付のコミットから、inky-1.0 リリースの間、コンフィグレーションファイル関連に関して、大きな変更は有りませんでした。

2. poky-2.0 リリース

2007 年 1 月 21 日のコミットでリリースが行われた poky-2.0(Clyde)は、多くの変更が行われています。Poky LinuxのGUI Sato Desktop Thema は本リリースから含まれています。

下図は、最新の Yocto4.0.4 の core-image-sato のスクリーンショットです。

最新の Yocto4.0.4 の core-image-sato のスクリーンショット

2.1 ディレクトリ構成

$ tree -L 1
. .
|-- README
|-- bitbake
|   |-- AUTHORS
|   |-- COPYING
|   |-- ChangeLog
|   |-- HEADER
|   |-- MANIFEST
|   |-- bin
|   |-- classes
|   |-- conf
|   |-- contrib
|   |-- doc
|   `-- lib
|-- build
|   `-- conf
|-- meta
|   |-- COPYING.MIT
|   |-- classes
|   |-- conf
|   |-- files
|   |-- packages
|   `-- site
|-- meta-extras
|   |-- COPYING.MIT
|   `-- packages
|-- poky-init-build-env
`-- scripts
    |-- README
    |-- jhbuild
    |-- poky-autobuild
    |-- poky-env-internal
    |-- poky-qemu
    |-- poky-qemu-ifup
    |-- poky-qemu-internal
    |-- poky-qemu.README
    `-- runqemu

19 directories, 17 file

  • ディレクトリ名の変更:openenmbedded meta
  • ファイル名の変更:readme.txt README, setdevenv poky-init-build-env
  • 追加ディレクトリ: meta-extras, scripts

2.2 コンフィグレーションファイルの主な変更点

2.2.1 conf/distro
$ ls -R conf/distro/
conf/distro/:
angstrom-2007.1.conf  maemo-1.0.conf           poky-bleeding.conf
include               openzaurus-unstable.conf   poky.conf

conf/distro/include:
angstrom.inc               poky-eabi2.inc   preferred-e-versions.inc        sane-srcdates.inc
openzaurus.inc             poky-eabi3.inc   preferred-gpe-versions-2.7.inc
poky-eabi-csl2005q3-2.inc   poky-eabi5.inc   preferred-opie-versions.inc
poky-eabi.inc              poky-oabi.inc    preferred-xorg-versions.inc
$

conf/distro ディレクトリは構成が変更となり、直下のディレクトリ内には、実際に DISTRO 変数に設定可能なディストリビューションの定義ファイルが置かれ、".inc" をサフィックスに持つファイルは include ディレクトリ以下に移動となっています。
また、今回のリリースから familia.conf は、angstrom-2007.1.conf に置き換わっています。

2.2.2 conf/machine
$ ls -R conf/machine/
conf/machine/:
akita.conf  cmx270.conf  ipaq-pxa270.conf  qemuarm.conf  spitz.conf
c7x0.conf   include      nokia770.conf     qemux86.conf

conf/machine/include:
ixp4xx.conf        tune-arm926ejs.conf  tune-ppc603e.conf    tune-supersparc.conf
poodle-2.6.conf    tune-arm9tdmi.conf   tune-ppce500.conf    tune-xscale.conf
qemu.conf          tune-c3.conf         tune-sh3.conf        zaurus-2.6.conf
tosa-2.6.conf      tune-ep9312.conf     tune-sh4.conf        zaurus-clamshell.conf
tune-arm920t.conf  tune-iwmmxt.conf     tune-strongarm.conf
$

conf/machine ディレクトリも構成が変更となり、直下のディレクトリ内には、実際に MACHINE 変数に設定可能なマシンの定義ファイルが置かれ、SoC やアーキテクチャのコンフィグレーションファイルは include ディレクトリ以下に移動となっています。
また、今回のリリースから qemuarm, qemux86 が追加されています。

2.2.3 build/conf/local.conf.sample

主な相違点を local.conf.sample を例に変数ごとに挙げます。

2.2.3.1 MACHINE の追加及びデフォルトの変更
     15 # The machine to target
     16 MACHINE ?= "qemuarm"
     17
     18 # Other supported machines
     19 #MACHINE ?= "cmx270"
     20 #MACHINE ?= "qemux86"
     21 #MACHINE ?= "c7x0"
     22 #MACHINE ?= "akita"
     23 #MACHINE ?= "spitz"
     24 #MACHINE ?= "nokia770"

MACHINE 変数に設定可能なマシンに qemuarm/qemux86 が追加となり、デフォルトの構築対象マシンは qemuarm に変更となっています

2.2.3.2 IMAGE_FEATURES 変数の追加
     31 # IMAGE_FEATURES configuration of the generated images
     32 # (Some of these are automatically added to certain image types)
     33 # "dev-pkgs"   - add -dev packages for all installed packages
     34 #                (useful if you want to develop against libs in the image)
     35 # "dbg-pkgs"   - add -dbg packages for all installed packages
     36 #                (adds symbol information for debugging/profiling)
     37 # "apps-core"  - core applications
     38 # "apps-pda"   - add PDA application suite (contacts, dates, etc.)
     39 # "dev-tools"  - add development tools (gcc, make, pkgconfig etc.)
     40 # "dbg-tools"  - add debugging tools (gdb, strace, oprofile, etc.)
     41 # "test-tools" - add useful testing tools (ts_print, aplay, arecord etc.)
     42 # "debug-tweaks" - make an image for suitable of development
     43 #                  e.g. ssh root access has a blank password
     44
     45 IMAGE_FEATURES = "dbg-tools test-tools debug-tweaks"

本リリースから IMAGE_FEATURES 変数が追加となり、デフォルトの指定が local.conf の中でおこなわれています。

2.2.3.3 PACKAGE_CLASSES 変数の追加
     47 # A list of packaging systems used in generated images
     48 # The first package type listed will be used for rootfs generation
     49 # include 'package_deb' for debs
     50 # include 'package_ipk' for ipks
     51 #PACKAGE_CLASSES ?= "package_deb package_ipk"
     52 PACKAGE_CLASSES ?= "package_ipk"

本リリースから PACKAGE_CLASSES 変数が追加となり、デフォルト値の指定が local.conf の中でおこなわれています。

2.2.3.4 BB_NUMBER_THREADS 変数の登場
     67 # Uncomment and set to allow bitbake to execute multiple tasks at once.
     68 # Note, This option is currently experimental - YMMV.
     69 # 'quilt' is also required on the host system
     70 # BB_NUMBER_THREADS = "1"

本リリースから BB_NUMBER_THREADS 変数が登場しています。但しこの時点では試験的実装となっており、値は未設定となっています。

2.3 レシピ数の推移

Poky1.0と poky2.0 のレシピの数を以下に挙げます。

リリース レシピ数
poky-inky-1.0 356
poky-clyde-2.0 552

レシピ数には、バージョンのみ違うものも含まれていますが、1 年の間に 5 割増しで増加しています。
poky-cylde-2.0 の 552 レシピのうち、poky 独自の meta-extras に含まれるレシピ数は 14 となっています。

$ tree -L 2 meta-extras/
meta-extras/
|-- COPYING.MIT
`-- packages
    |-- bluez
    |-- images
    |-- libid3tag
    |-- libmad
    |-- madplay
    |-- maemo-mapper
    |-- mc
    |-- python
    |-- sqlite
    `-- tasks

11 directories, 1 file

3. 次回予告

次回は 10 月末リリース予定の Yocto4.1(Langdale)に関するリリース情報をお届けする予定です。
今回の記事の続きは、2023 年 1 月以降のブログに掲載予定です。

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

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

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

組込みLinuxセキュリティ基礎講座
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+ West 2024 出展レポート
EdgeTech+ West 2024 出展レポート

2024 年 07 月 26 日 イベントレポート

Advanced Technology Forum 2024 Summer 参加レポート
Advanced Technology Forum 2024 Summer 参加レポート

2024 年 07 月 09 日 イベントレポート

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

2023 年 05 月 30 日 リクルート

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

2022 年 09 月 27 日 リクルート

信州リネオ便り
社内BBQを開催しました!
社内BBQを開催しました!

2024 年 09 月 25 日 信州リネオ便り

夏季休業明け、スイカを頂きました!
夏季休業明け、スイカを頂きました!

2024 年 08 月 20 日 信州リネオ便り

逃げ上手の聖地、諏訪大社上社前宮
逃げ上手の聖地、諏訪大社上社前宮

2024 年 08 月 07 日 信州リネオ便り

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