• 検索結果がありません。

Yocto Project 紹介 2018/12/11 サイバートラスト株式会社 OSS 技術本部岩松信洋 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 公開

N/A
N/A
Protected

Academic year: 2021

シェア "Yocto Project 紹介 2018/12/11 サイバートラスト株式会社 OSS 技術本部岩松信洋 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 公開"

Copied!
85
0
0

読み込み中.... (全文を見る)

全文

(1)

Yocto Project 紹介

2018/12/11

サイバートラスト株式会社

(2)

アジェンダ

1. OSによる開発の違い

2. Yocto Project について

3. Poky について

4. レイヤー機能について

5. 質疑応答

(3)
(4)

1. ある OS の場合

2.

Linux OSの場合

(5)

ソフトウェア X が動作する環境を考える

● カーネル、GUI、基本ライブラリ等はOSベン

ダーから提供されたものを利用

● ライブラリA

○ ベンダーから購入して組み込み

● ライブラリB

○ フリーウェアを組み込み

● ソフトウェアX

○ ライブラリ

AとライブラリBを利用する自社

製ソフトウェア

ある OS の場合

カーネル

アプリケーション

ソフトウェア X

ライブラリ A

ライブラリ B

GUI

基本ライブラリ

(6)

ソフトウェア X が動作する環境を考える

● カーネル、ドライバ、基本ライブラリ等は

Linux ディストリビューター

から頒布されてい

るバイナリを使用、またはソースコードからコ

ンパイルして利用

● ライブラリA

OSSをコンパイルし、組み込む

● ライブラリB

○ ベンダーから購入して組み込み

● ソフトウェアX

○ ライブラリAとライブラリBを利用する自社

製ソフトウェア

Linux OS の場合

CPU

メモリ

デバイス

カーネル

アプリケーション

ソフトウェア X

ライブラリ A

ライブラリ B

デバイス

ドライバ

基本ライブラリ

(7)

Linuxディストリビューション

○ Linuxを利用者がインストールしたり、利用でき

る形にまとめ上げたもの。

○ 上記を頒布する団体・プロジェクトはディストリ

ビューター

● なぜディストリビューターがいるのか

○ 本来、LinuxはOSではなく、Linuxカーネルのみ

を指す

→カーネルだけではOSとして動作しない。

○ 基本ライブラリ(glibc)やコンパイラ(gcc, LLVM)

などの Linux OS を構成するソフトウェアは

Linux とは直接関係ない

OSS 

(Open Source

Software)のプロジェクト。よってこれらを組み

Linux ディストリビューションと頒布方法

カーネル

アプリケーション

ソフトウェア X

ライブラリ A

ライブラリ B

デバイス

ドライバ

基本ライブラリ

(8)

● 頒布方法

Linuxディストリビューションによって異なる

■ バイナリベース

■ ソースコードベース

(9)

Linux ディストリビューションと頒布方法

コンパイル

バイナリ

ダウンロード

ソースコード

● Linux のディストリビューションのほとんどは

OSSで構成される

● 基本、OSSはソースと共にコンパイル方法と使

用方法のみが提供されている

● ユーザーは自身でソフトウェアをダウンロード、

コンパイル、インストールを行う必要がある

(10)

Linux ディストリビューションと頒布方法

● OSSでもOSSやその他のソフトウェアの依存関

係を元に動作する

● 使用したいソフトウェアをコンパイルするために

は、依存しているソフトウェアやライブラリをコン

パイルし、依存関係を解消する必要がある。

● これらの作業を簡略化したものを提供している

のがLinuxディストリビューター

● 提供されているものがLinuxディストリビューショ

(11)

Linux ディストリビューションと頒布方法

コンパイル

バイナリ

ダウンロード

ソースコード

バイナリとインストール方法

をまとめたもの

ソースコード取得、コンパイ

ル、インストール方法をまと

めたもの

バイナリベース

ソースコードベース

(12)

Linux ディストリビューションと頒布方法

コンパイル

バイナリ

ダウンロード

インストール

ソースコード

ソースコードと、コンパイル

方法をまとめたもの

バイナリとインストール方法

をまとめたもの

ソースコード取得、コンパイ

ル、インストール方法をまと

めたもの

バイナリベース

ソースコードベース

(13)

● ディストリビューターが

コンパイル済み

のソフトウェアをパッケージとして頒布する。

● ソフトウェアの最適化やパッケージで提供される機能はディストリビューターが決め

る。

○ 例1 : FPU(浮動小数点演算ユニット)をサポートするバイナリを提供する・しない

○ 例2: ソフトウェアで提供される機能があるパッケージを提供する・しない

● この方法を取ってるディストリビューション例

Red Hat

CentOS

Debian

Ubuntu

バイナリベース

(14)

● メリット

○ コンパイル済みのソフトウェアを頒布するため、すぐに利用できる

○ ユーザーは同じバイナリを使用するため、ユーザー同士で問題を共有できる

○ 提供さえたバイナリのコンパイルできる手順が確立されている

● デメリット

○ 最適化が行われていない

CPU性能を最大限に生かせない

■ (一部のユーザーにとって)不要な機能やファイルが含まれる

バイナリベース

(15)

● ディストリビューターがソフトウェアの

コンパイル方法

を頒布する。コンパイル済みのバ

イナリは基本頒布しない。

● この方法を取っているディストリビューション例

gentoo

OpenEmbedded

ソースコードベース

(16)

● メリット

○ 細かい最適化ができる

CPUへの最適化、利用者が必要な機能のみの有効化など

○ ソフトウェアライセンスへの対応が柔軟にできる

■ 基本的にソフトウェアのバイナリ頒布を行わない

● デメリット

○ 多くのリソース(CPU、メモリ、HDD、ネットワーク)を必要とする

○ 利用者がコンパイルするため、利用できるまでに時間を必要とする

○ ユーザー同士で最適化の内容が異なるため、問題の共有が難しい

ソースコードベース

(17)

SoC・ボードベンダーが公開しているBSP・SDKをベースに開発することが多い

BSP (Board Support Package)、SDK(Software Development Kit)

● 課題

OSSによる開発は規模が大きくなるため、詳細が把握できない

○ 機能の過不足が判断しずらい

OSSに関する情報のキャッチアップが難しい

OSSの機能修正、追加が難しい

SoCベンダー毎に開発環境が異なる

BSP・SDKでソフトウェアのバージョンが異なる

組込みLinuxシステム開発の課題

(18)
(19)

● 組込み向けOS開発環境を構築する仕組みを提供するプロジェクト

https://www.yoctoproject.org

CPUアーキテクチャへの依存を最小限に

○ コンパイル環境(SDK)も構築・提供できる仕組み

○ エミュレーターによる実機以外のサポート

○ 目的に合わせたOSイメージのビルド(OS最小構成、GUIあり、Webサーバーのみ、

など)

○ ソースコードベース

Yocto Project

(20)

Linux Foundation プロジェクトの一つ

● 複数のプロジェクトが協力

Poky

リファレンスビルドシステム

OpenEmbedded

ソフトウェアのビルド手順が記載されたレシピと呼ば

れるファイル群とビルドエンジンである bitbakeを開発

matchbox

GUIライブラリ

Eclispe IDE Plug-in

IDE向け開発プラグイン

opkg

パッケージングシステム

Toaster

ビルドサポート用GUI

プロジェクト体制

(21)

● メンバー企業

Intel

Arm

Linaro

TEXAS INSTRUMENTS

NXP

XLILNX

RENESAS

open embedded

Mentor

Facebook

DELL

プロジェクト体制

(22)

● 半年ごとにリリース

○ 現在のバージョン: 2.6

■ コードネーム: Thud、Poky 20.0.0

○ セキュリティ修正とレシピのバグによって更新

■ パッチによる更新

○ 約1年半のサポート

リリースポリシー

https://wiki.yoctoproject.org/wiki/Releases

(23)

● サポートしているCPU

x86(32bit/64bit)、 ARM(32bit/64bit)、MIPS(32bit/64bit)、powerpc

SoCベンダー共通のビルドシステムとして利用可能

NXP、Xilinx、Renesas、Intel (旧Altera含む)、TIなど

SIer への移行・引き渡しがスムーズになる可能性も

Wind River、Mentor、Enea、などの組込みLinuxOSベンダーが Poky ベースのシス

テムも利用

Real Time patch が適用されたLinux カーネルもサポート

(24)

● 課題

OSSによる開発は規模が大きくなるため、詳細が把握できない

○ 機能の過不足が判断しずらい

OSSに関する情報のキャッチアップが難しい

OSSの機能修正、追加が難しい

SoCベンダー毎に開発環境が異なる

BSP・SDKでソフトウェアのバージョンが異なる

解決できる課題

(25)

● 課題

OSSによる開発は規模が大きくなるため、詳細が把握できない

○ 機能の過不足が判断しずらい

OSSに関する情報のキャッチアップが難しい

OSSの機能修正、追加が難しい

SoCベンダー毎に開発環境が異なる

BSP・SDKでソフトウェアのバージョンが異なる

解決できる課題

(26)

● 組込みLinux開発環境を構築する仕組みを提供するLinux Foundation傘下のプロ

ジェクト

● 複数のプロジェクトが協力

Poky

OpenEmbedded

matchbox

Eclispe IDE Plug-in

opkg

Toaster

● SoCベンダーから組込みLinux SIerまで利用しており、組込みLinux開発のスタン

ダードとなっている

(27)

● 組込みLinux開発環境を構築する仕組みを提供するLinux Foundation傘下のプロ

ジェクト

● 複数のプロジェクトが協力

Poky

OpenEmbedded

matchbox

Eclispe IDE Plug-in

opkg

Toaster

● SoCベンダーから組込みLinux SIerまで利用しており、組込みLinux開発のスタン

ダードとなっている

(28)
(29)

Linux Foundation プロジェクトの一つ

● 複数のプロジェクトが協力

Poky

リファレンスビルドシステム

OpenEmbedded

ソフトウェアのビルド手順が記載されたレシピと呼ば

れるファイル群とビルドエンジンである bitbakeを開発

matchbox

GUIライブラリ

Eclispe IDE Plug-in

IDE向け開発プラグイン

opkg

パッケージングシステム

(30)

● リファレンスビルドシステム

○ ディストリビューションではない

○ ディストリビューション作成をサポートするビルドシステム

○ 最小構成のLinuxディストリビューションを構築できる

ユーザーはPokyをベースにカスタマイズする

● 主な構成要素

bitbake

○ メタデータ

(レシピ、設定ファイル)

● 主な生成物

Linux カーネル

○ ブートローダー

○ ユーザーランド(rootfs)

○ クロスツールチェイン、SDK

Poky

(31)

Poky 構成図

Poky

bitbake

Poky

meta

meta-yocto-bsp

meta-poky

メタデータ

meta

recipe-foo

設定ファイル(*.conf) includeファイル (*.inc) レシピファイル (*.bb, *.bbappend)

recipe-bar

レシピファイル (*.bb, *.bbappend) classファイル (*.bbclass)

build

(32)

Poky 構成図

Poky

bitbake

Poky

meta

meta-yocto-bsp

meta-poky

メタデータ

meta

recipe-foo

設定ファイル(*.conf) includeファイル (*.inc) レシピファイル (*.bb, *.bbappend)

recipe-bar

レシピファイル (*.bb, *.bbappend) classファイル (*.bbclass)

build

rootfs

ブートローダー

SDK

メタデータはレイヤーという単位で管理される

linuxカーネル

(33)

Poky 構成図

Poky

bitbake

Poky

meta

meta-yocto-bsp

meta-poky

メタデータ

meta

recipe-foo

設定ファイル(*.conf) includeファイル (*.inc) レシピファイル (*.bb, *.bbappend)

recipe-bar

レシピファイル (*.bb, *.bbappend) classファイル (*.bbclass)

build

(34)

● 主な構成要素

○ レシピ(拡張子: .bb または .bbappend)

■ ソースコードの取得、ソフトウェアのコンパイル、パッケージングまでの動作を定義

■ シェルスクリプトとPythonで記述

■ レシピ同士の依存関係を設定

bbppaned ファイルは既存のbbファイルに内容を修正・追加する際に使用

○ 設定ファイル(拡張子: .conf)

CPUアーキテクチャなどのターゲットマシン毎の定義

■ ビルド環境などの独自設定

bitbake

Python で書かれたビルドツール

■ レシピを解析し、定義された動作を実行する

Poky

(35)

Poky 構成図

Poky

bitbake

Poky

meta

meta-yocto-bsp

meta-poky

メタデータ

meta

recipe-foo

設定ファイル(*.conf) includeファイル (*.inc) レシピファイル (*.bb, *.bbappend)

recipe-bar

レシピファイル (*.bb, *.bbappend) classファイル (*.bbclass)

build

(36)

Poky 構成図

Poky

bitbake

Poky

meta

meta-yocto-bsp

meta-poky

メタデータ

meta

recipe-foo

設定ファイル(*.conf) includeファイル (*.inc) レシピファイル (*.bb, *.bbappend)

recipe-bar

レシピファイル (*.bb, *.bbappend) classファイル (*.bbclass)

build

linux-kernel

rootfs

ブートローダー

SDK

(37)

● 主な構成要素

○ レシピ(拡張子: .bb または .bbappend)

■ ソースコードの取得、ソフトウェアのコンパイル、パッケージングまでの動作を定義

■ シェルスクリプトとPythonで記述

■ レシピ同士の依存関係を設定

bbppaned ファイルは既存のbbファイルに内容を修正・追加する際に使用

○ 設定ファイル(拡張子: .conf)

CPUアーキテクチャなどのターゲットマシン毎の定義

■ ビルド環境などの独自設定

bitbake

Python で書かれたビルドツール

■ レシピを解析し、定義された動作を実行する

Poky

(38)

$ bitbake core-image-minimal

(39)

$ bitbake core-image-minimal bitbake 実行時にビルドするレシピを指定する

(40)

$ bitbake core-image-minimal

bitbake の動作

レシピを解析

ソースコードのダウンロード

ソースコードの展開

パッチの適用

ソフトウェアのコンパイル

生成物をパッケージ化

(41)

$ bitbake core-image-minimal

bitbake の動作

レシピを解析

ソースコードのダウンロード

ソースコードの展開

パッチの適用

ソフトウェアのコンパイル

コンパイルするソフトウェアの情報

どこからダウンロードするのか

どのように展開するのか

どのようなパッチを適用するのか

コンパイル方法

どのようなオプションでコンパイルするのか

どのような機能を有効・無効にするのか

ソフトウェア同士の依存関係

(42)

$ bitbake core-image-minimal

bitbake の動作

レシピを解析

ソースコードのダウンロード

ソースコードの展開

パッチの適用

ソフトウェアのコンパイル

生成物をパッケージ化

コンパイルするソフトウェアの情報

どこからダウンロードするのか

どのように展開するのか

どのようなパッチを適用するのか

コンパイル方法

どのようなオプションでコンパイルするのか

どのような機能を有効・無効にするのか

ソフトウェア同士の依存関係

インストール・パッケージング方法

どのファイルをどこにインストールするのか

どのファイルをどのパッケージに入れるのか

これらを

スク

呼び、

レシピ記述

する。

(43)

タスク

bitbake で実行される動作単位

● タスクを定義する際、do_タスク名 とする必要がある

例: do_fetch: ソースコードを取得するタスク

● レシピをビルドする際、1タスク1スレッドで実行される

● プログラミング言語に合わせたタスクが約70ほど定義されており、コンパイル方式、イ

ンストール方式などに合わせて利用する

● タスク同士は依存関係を持っており、依存関係に合わせて実行される

bitbake の動作

(44)

$ bitbake core-image-minimal

bitbake の動作

do_fetch

do_unpack

do_patch

do_configure

do_compile

do_install

do_package

これらを

スク

呼び、

レシピ記述

する。

レシピを解析

ソースコードのダウンロード

ソースコードの展開

パッチの適用

ソフトウェアのコンパイル

生成物をパッケージ化

(45)

SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz \ file://remove.ldconfig.call.patch \ file://Makefile-runtests.patch \ file://ldflags-tests.patch \ file://run-ptest \ " UPSTREAM_CHECK_URI = "http://zlib.net/" SRC_URI[md5sum] = "85adef240c5f370b308da8c938951a68" SRC_URI[sha256sum] = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066" CFLAGS += "-D_REENTRANT" RDEPENDS_${PN}-ptest += "make" inherit ptest do_configure() {

uname=GNU ./configure --prefix=${prefix} --shared --libdir=${libdir}

レシピの中身 (zlib)

(46)

SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz \ file://remove.ldconfig.call.patch \ file://Makefile-runtests.patch \ file://ldflags-tests.patch \ file://run-ptest \ " UPSTREAM_CHECK_URI = "http://zlib.net/" SRC_URI[md5sum] = "85adef240c5f370b308da8c938951a68" SRC_URI[sha256sum] = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066" CFLAGS += "-D_REENTRANT" RDEPENDS_${PN}-ptest += "make" inherit ptest do_configure() {

uname=GNU ./configure --prefix=${prefix} --shared --libdir=${libdir} }

do_compile() {

oe_runmake shared

(47)

SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz \ file://remove.ldconfig.call.patch \ file://Makefile-runtests.patch \ file://ldflags-tests.patch \ file://run-ptest \ " UPSTREAM_CHECK_URI = "http://zlib.net/" SRC_URI[md5sum] = "85adef240c5f370b308da8c938951a68" SRC_URI[sha256sum] = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066" CFLAGS += "-D_REENTRANT" RDEPENDS_${PN}-ptest += "make" inherit ptest do_configure() {

uname=GNU ./configure --prefix=${prefix} --shared --libdir=${libdir}

レシピの中身 (zlib)

(48)

bitbake の動作

bitbake

(49)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

(50)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

core-image-minimal

busybox

glibc

依存

……

(51)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

core-image-minimal

busybox

glibc

gcc-cross

binutils-cross

依存

依存

……

……

(52)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

core-image-minimal

busybox

glibc

gcc-cross

binutils-cross

gettext-native

zlib-native

依存

依存

依存

……

……

(53)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

core-image-minimal

busybox

glibc

gcc-cross

binutils-cross

依存

依存

……

……

(54)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

core-image-minimal

busybox

glibc

gcc-cross

binutils-cross

gettext-native

zlib-native

gcc-cross

binutils-cross

gettext-native

zlib-native

ビルド

ビルド

依存

依存

依存

……

……

……

ビルド依存

(55)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

core-image-minimal

busybox

glibc

gcc-cross

binutils-cross

busybox

glibc

gcc-cross

binutils-cross

ビルド

ビルド

依存

依存

……

……

……

……

ビルド依存

(56)

bitbake の動作

bitbake

*.conf

レシピ

イメージ

core-image-minimal

busybox

glibc

gcc-cross

binutils-cross

gettext-native

zlib-native

core-image-minimal.bz2

zImage

busybox

glibc

gcc-cross

binutils-cross

gettext-native

zlib-native

インストール

ビルド

ビルド

ビルド

依存

依存

依存

……

……

……

……

ビルド依存

ビルド依存

ビルド依存

(57)

● 課題

OSSによる開発は規模が大きくなるため、詳細が把握できない

○ 機能の過不足が判断しずらい

OSSに関する情報のキャッチアップが難しい

OSSの機能修正、追加が難しい

SoCベンダー毎に開発環境が異なる

BSP・SDKでソフトウェアのバージョンが異なる

Poky で解決できる課題

(58)

● リファレンスビルドシステム

○ ディストリビューション作成をサポートするビルドシステム

○ 最小構成のLinuxディストリビューションを構築できる

● 主な構成要素

bitbake、メタデータ(レシピ、設定ファイル)

● ビルドする際には bitbake コマンドを使用する

bitbake はレシピファイルを解析し、ビルドに必要なアクションを実行する

○ レシピ同士の依存関係の解決、ソースコードの取得、パッチ適用、コンパイル、

パッケージ化など

● レシピにはソフトウェアのビルドに必要な処理を記述する。処理はタスクと呼ばれる。

● 主な生成物

Linux カーネル、ブートローダー、ユーザーランド(rootfs)、クロスツールチェイン、

SDK

Poky に関するまとめ

(59)
(60)

Poky 構成図

レイヤー機能について

bitbake

Poky

meta

meta-yocto-bsp

meta-poky

メタデータ

meta

recipe-foo

設定ファイル(*.conf) includeファイル (*.inc) レシピファイル (*.bb, *.bbappend)

recipe-bar

レシピファイル (*.bb, *.bbappend) classファイル (*.bbclass)

build

rootfs

ブートローダー

SDK

linuxカーネル

(61)

Poky 構成図

レイヤー機能について

bitbake

Poky

meta

meta-yocto-bsp

meta-poky

メタデータ

meta

recipe-foo

設定ファイル(*.conf) includeファイル (*.inc) レシピファイル (*.bb, *.bbappend)

recipe-bar

レシピファイル (*.bb, *.bbappend) classファイル (*.bbclass)

build

(62)

レイヤー機能について

bitbake

ビルドエンジン

meta-poky

Linux kernelやソフトウェアのレシピ

Poky ディストリビューションの情報

BSPの構成情報など

Poky

meta

meta-yocto-bsp

最小構成のLinuxディストリビューションを構築できる。

(63)

レイヤー機能について

bitbake

ビルドエンジン

meta-poky

Linux kernelやソフトウェアのレシピ

Poky ディストリビューションの情報

BSPの構成情報など

Poky

meta

meta-yocto-bsp

Xilinx社のMPSoC SoC

を使用したシステムを

構築したい…

(64)

レイヤー機能について

bitbake

ビルドエンジン

meta-poky

Linux kernelやソフトウェアのレシピ

Poky ディストリビューションの情報

BSPの構成情報など

Poky

meta

meta-yocto-bsp

meta-xilinx

Xilinx社のMPSoCをサポートするメタデータ

追加

(65)

レイヤー機能について

bitbake

ビルドエンジン

meta-poky

Linux kernelやソフトウェアのレシピ

Poky ディストリビューションの情報

BSPの構成情報など

Poky

meta

meta-yocto-bsp

meta-xilinx

Xilinx社のMPSoCをサポートするメタデータ

追加

conf/bblayers.conf:

BBLAYERS ?= " \

/home/user/work/poky/meta \

/home/user/work/poky/meta-poky \

(66)

レイヤー機能について

meta

busybox

linux-yocto

busybox

meta-poky

(67)

レイヤー機能について

meta

meta-xilinx

linux-yocto

busybox

linux-yocto

busybox

meta-poky

(68)

レイヤー機能について

meta

meta-xilinx

linux-yocto

busybox

linux-yocto

busybox

meta-poky

使用するボー

ドの設定等

(69)

レイヤー機能について

meta

meta-xilinx

linux-yocto

busybox

linux-yocto

busybox

meta-poky

Xilinx MPSoC

の設定有効

機能の追加

使用するボー

ドの設定等

(70)

レイヤー機能について

meta

meta-xilinx

最終的なレシピ

linux-yocto

busybox

linux-yocto

busybox

meta-poky

Xilinx MPSoC

の設定有効

busybox

linux-yocto

機能の追加

使用するボー

ドの設定等

レシピの解析

(71)

レイヤー機能について

meta

meta-xilinx

linux-yocto

busybox

linux-yocto

busybox

meta-poky

Xilinx MPSoC

の設定有効

機能の追加

使用するボー

ドの設定等

レシピの解析

(72)

poky/meta-yocto/recipes-core/busybox/

|-- busybox

| `-- poky-tiny

| `-- defconfig

`--

busybox_%.bbappend

poky/meta/recipes-core/busybox/

|-- busybox

| |-- …

| `-- 0001-Switch-to-POSIX-utmpx-API.patch

|-- busybox.inc

|-- busybox_1.23.2.bb

`-- files

|-- …

`-- umount.busybox

レイヤー機能について

(73)

poky/meta-yocto/recipes-core/busybox/

|-- busybox

| `-- poky-tiny

| `-- defconfig

`--

busybox_%.bbappend

poky/meta/recipes-core/busybox/

|-- busybox

| |-- …

| `-- 0001-Switch-to-POSIX-utmpx-API.patch

|-- busybox.inc

|-- busybox_1.23.2.bb

`-- files

|-- …

`-- umount.busybox

レイヤー機能について

recipes-core/busybox/busybox_%.bbappaned

recipes-core/busybox/busybox_1.23.2.bb

+

bbappendファイルで定義した内容が上書きまたは追

(74)

レイヤー機能

bitbake

ビルドエンジン

meta-poky

Linux kernelやソフトウェアのレシピ

Poky ディストリビューションの情報

BSPの構成情報など

Poky

meta

meta-yocto-bsp

meta-xilinx

Xilinx社のMPSoCをサポートするメタデータ

自社で作ったアプリ

ケーションをシステム

にインストールしたい

(75)

レイヤー機能について

bitbake

ビルドエンジン

meta-poky

Linux kernelやソフトウェアのレシピ

Poky ディストリビューションの情報

BSPの構成情報など

Poky

meta

meta-yocto-bsp

meta-xilinx

Xilinx社のMPSoCをサポートするメタデータ

meta-myapp

自社で作ったアプリケーション用レシピを含んだメタデータ

追加

conf/bblayers.conf:

BBLAYERS ?= " \

/home/user/work/poky/meta \

(76)

レイヤー機能について

meta

meta-xilinx

linux-yocto

busybox

linux-yocto

busybox

meta-poky

使用するボー

ドの設定等

(77)

レイヤー機能について

meta

meta-xilinx

linux-yocto

busybox

linux-yocto

busybox

meta-poky

使用するボー

ドの設定等

meta-myapp

myapp

myappに関す

る設定

(78)

レイヤー機能について

meta

meta-xilinx

最終的なレシピ

linux-yocto

busybox

linux-yocto

busybox

meta-poky

Xilinx MPSoC

の設定有効

busybox

linux-yocto

機能の追加

使用するボー

ドの設定等

レシピの解析

meta-myapp

myapp

myapp

myappに関す

る設定

(79)

● 課題

OSSによる開発は規模が大きくなるため、詳細が把握できない

○ 機能の過不足が判断しずらい

OSSに関する情報のキャッチアップが難しい

OSSの機能修正、追加が難しい

SoCベンダー毎に開発環境が異なる

BSP・SDKでソフトウェアのバージョンが異なる

レイヤー機能で解決できる課題

(80)

Pokyは最小構成のLinuxディストリビューションを構築するためのツールやメタデータを

提供する

● ユーザーが独自の実装を追加するには、レイヤー機能を使って追加する

● 各SoCの設定や、ボードの設定などもレイヤー単位で提供される

● レイヤーを使用することによって、他のレイヤーで提供されているレシピのファイルそ

のものを変更せずに、レシピの修正等ができるようになっている

レイヤー機能に関するまとめ

(81)
(82)
(83)

● Yocto Project

https://www.yoctoproject.org

https://www.yoctoproject.org/docs/2.6/mega-manual/mega-manual.html

● Yocto Project ハンズオン プレゼン用資料

https://www.slideshare.net/iwamatsu/yocto-project-40180199

● レシピの作り方入門

https://www.slideshare.net/iwamatsu/ss-31662659

参考文献

(84)

1.

https://1.bp.blogspot.com/-LHEZgJ6tpeA/UgSL_9y4KrI/AAAAAAAAW5s/DNRPJ4kSvpI/s400/food_curryruce.png

x2

2.

https://3.bp.blogspot.com/-N2OBmlrmp6I/UnyHSqHeW3I/AAAAAAAAahc/1XbLO4ZbaQg/s800/cooking_chef.png

x2

3.

https://4.bp.blogspot.com/-2t-ECy35d50/UPzH73UAg3I/AAAAAAAAKz4/OJZ0yCVaRbU/s1600/book.png

x2

4.

https://2.bp.blogspot.com/-kXpgJDSmOZI/VJ6XX867x9I/AAAAAAAAqJ4/yYWtYMdnE3A/s800/cooking10_kiru.png

x2

5.

https://2.bp.blogspot.com/-0_papKo8Qt4/VahRmEpGpUI/AAAAAAAAvtQ/QyU6EtxIhLc/s800/makimono_toranomaki.png

x2

6.

https://1.bp.blogspot.com/-etAOuOz8L7Y/W1a4rKcd5WI/AAAAAAABNhU/fB5zVLV7Mig1oPLUdf17QS7n15np1S3OACLcBGAs/s8

00/food_niku_pack.png

x2

7.

https://3.bp.blogspot.com/-QCe-ngfpbTg/UkJM8tkaq6I/AAAAAAAAYWM/U3pbo3YS9XA/s800/ninjin_carrot.png

x2

8.

https://3.bp.blogspot.com/-EiqKoF2kMTQ/UkJM5vVnb7I/AAAAAAAAYVU/tCuJxeQQiNE/s800/jagaimo_poteto.png

x2

9.

https://3.bp.blogspot.com/-TY2VUFySQZA/VJ6XYaf5BTI/AAAAAAAAqKA/PBSngtXpNpE/s800/cooking12_ajitsuke.png

x2

10.

https://4.bp.blogspot.com/-0pySHudh9OY/VMIvIn6zDGI/AAAAAAAAq4M/v-imllVrsxE/s800/pose_souzou_man.png

x2

いらすとや使用画像

(85)

信頼とともに

留意事項

本資料に記載されている会社名、製品名、サービス名は、当社または各社、各団体の商標もしくは登録商標です。

その他本資料に記載されているイラスト・ロゴ・写真・動画・ソフトウェア等は、当社または第三者が有する知的財産権やその他の権利により守られております。 お客様は、当社が著作権を有するコンテンツについて、特に定めた場合を除き、複製、改変、頒布などをすることはできません。

参照

関連したドキュメント

2690MHzからの周波数離調(MHz).. © 2018 NTT DOCOMO、INC. All Rights Reserved.

BIGIグループ 株式会社ビームス BEAMS 株式会社アダストリア 株式会社ユナイテッドアローズ JUNグループ 株式会社シップス

出典: ランドブレイン株式会社HP「漁村の元気は日本元気」, http://www.landbrains.co.jp/gyoson/approach/toshigyoson_h21_mie.html,

三洋電機株式会社 住友電気工業株式会社 ソニー株式会社 株式会社東芝 日本電気株式会社 パナソニック株式会社 株式会社日立製作所

サテライトコンパス 表示部.. FURUNO ELECTRIC CO., LTD. All Rights Reserved.. ECS コンソール内に AR ナビゲーション システム用の制御

Copyright(C) 2020 JETRO, Nagashima Ohno & Tsunematsu All rights reserved... a)

出所:香港BS & Food and Environmental Hygiene Department にもとづきジェトロ作成(2021年11月10日).. (A)

地域の RECO 環境循環システム.. 小松電子株式会社