対象材料を含まないレシピを用いたラベルの 信頼度計算による画 … · レシピには,調理工程ごとに調理方法を言葉で説明した手順教示文とその工
組込みLinuxの開発方法 - cybertrust.co.jp ·...
Transcript of 組込みLinuxの開発方法 - cybertrust.co.jp ·...
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
組込みLinuxの開発方法~BSPを使った組込みLinuxのビルド~
2019/03/12サイバートラスト株式会社
OSS技術本部 第一組込技術部
山根大典
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
目次
● 目次
● Yocto Projectについて
● BSP(Board Support Package)を使った組込みLinuxのビルド○ 開発環境
○ 事前準備/BSPのダウンロード
○ プロプライエタリ・ソフトウェアの準備 / ビルド環境のセットアップ
○ 設定ファイルの編集
○ ビルド
○ 実機へインストール
● BSPのカスタマイズ(事例紹介)○ カスタムボードへの移植
● 参考文献
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● 組み込み用カスタムLinuxOSを開発するためのオープンソースプロジェクト群○ https://www.yoctoproject.org/
● 組み込みLinuxをビルドするための環境を提供○ CPU非依存
○ ソースコードベース
○ クロスコンパイル環境(SDK)も提供
● Yocto Projectの共通要素○ poky: リファレンスビルドシステム
○ bitbake: ビルドエンジン
Yocto Project (YP)
Yocto Project® について
OpenEmbedded
Poky
meta-openembedded
metadatabitbake (build engine)
meta-pokymeta-yocto-bspDocumentation
YP Compatible BSPsYP compatible Layers
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● ビルドエンジン(bitbake)がレシピ(手順書)を元に処理を実行
Yocto Project® について
ソースコードのダウンロード
ソースコードの展開
パッチの適用
ソフトウェアのコンパイル
生成物をパッケージ化
レシピ解析 レシピの依存関係やビルド手順を解析
git, svn, ssh, httpなどの形式を指定可能※ https://www.yoctoproject.org/docs/2.4.2/ref-manual/ref-manual.html#var-SRC_URI
ファイル名が*.patch, *.diffのパッチファイルがあれば自動的に適用※ https://www.yoctoproject.org/docs/2.4.2/ref-manual/ref-manual.html#ref-tasks-patch
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● bitbake(ビルドエンジン)がレシピ(手順書)を元に処理を実行
● レシピはレイヤー単位で提供
Yocto Project® について
優先度: 高
優先度: 低poky/meta busybox linux-yocto
meta-poky busybox
meta-vendor linux-yocto bootloader
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● bitbake(ビルドエンジン)がレシピ(手順書)を元に処理を実行
● レシピはレイヤー単位で提供
● レイヤーを重ねることで既存のレシピの修正や置換が可能
Yocto Project® について
優先度: 高
優先度: 低poky/meta busybox linux-yocto
meta-poky busybox 修正
追記
meta-vendor linux-yocto bootloader
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
BSPを使った組込みLinuxのビルド
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
ホストPC: Ubuntu 16.04
ターゲット: Renesas Salvator-X board (with R-Car H3)
BSP: Yocto-BSP v3.9.0
poky: v2.4.2
開発環境
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● 事前準備(環境構築)
https://elinux.org/R-Car/Boards/Yocto-Gen3#Preliminary_steps を参照
1. プロプラエタリ・ソフトウェアをインストール(グラフィックやMMPが必要な場合)
2. 必要なパッケージのインストール
BSPを使った組込みLinuxのビルド
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● BSPのダウンロード
BSPを使った組込みLinuxのビルド
$ cd ${WORK}$ git clone git://git.yoctoproject.org/poky # poky本体$ git clone git://git.linaro.org/openembedded/meta-linaro.git # linaroのtoolchain用$ git clone git://git.openembedded.org/meta-openembedded # OE-coreを補足するレイヤー群$ git clone git://github.com/renesas-rcar/meta-renesas.git # BSP本体
$ cd $WORK/poky$ git checkout -b tmp 342fbd6a3e57021c8e28b124b3adb241936f3d9d$ cd $WORK/meta-openembedded$ git checkout -b tmp dacfa2b1920e285531bec55cd2f08743390aaf57$ cd $WORK/meta-linaro$ git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885$ cd $WORK/meta-renesas$ git checkout -b tmp fd078b6ece537d986852cb827bd21e022a797b2f
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● プロプライエタリ・ソフトウェアの準備(GUIやMMPが必要な場合)
BSPを使った組込みLinuxのビルド
$ cd ${WORK}/renesas-rcar$ ./meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh ${PROPRIETARY_DIR}
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● ビルド環境のセットアップ
BSPを使った組込みLinuxのビルド
$ cd ${WORK}
# ビルド環境のセットアップ
$ source poky/oe-init-build-env
# 設定ファイルの準備 (BSPが提供するサンプルを使用)$ cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/salvator-x/poky-gcc/bsp/*.conf \
./conf
$ ls -1 ./conf
bblayers.conf # 使用するレイヤを指定
local.conf # ビルド環境の設定ファイル
local-wayland.conf # weston込のビルド用の設定ファイル
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
BSPを使った組込みLinuxのビルド
● 設定ファイルの編集○ local.confを編集し、ターゲットのアーキテクチャやインストールするパッケージを設定
# U-boot/IPL option for H3 (SoC: r8a7795)# For H3 SiP DDR 4GiB (1GiB x 4ch)# H3_OPTION = "0"# For H3 SiP DDR 8GiB (2GiB x 4ch)H3_OPTION = "1"# For H3 SiP DDR 4GiB (2GiB x 2ch)#H3_OPTION = "2"
# U-boot/IPL option for H3 (SoC: r8a7795)# For H3 SiP DDR 4GiB (1GiB x 4ch)H3_OPTION = "0"# For H3 SiP DDR 8GiB (2GiB x 4ch)# H3_OPTION = "1"# For H3 SiP DDR 4GiB (2GiB x 2ch)#H3_OPTION = "2"
bootloaderのビルドオプションを変更
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● ビルド
※ Renesas BSPが提供するイメージ
● core-image-minimal
○ 最低限の機能のみサポート
● core-image-weston
○ weston/waylandをサポート
● core-image-weston-sdk
○ クロス開発環境を提供するSDK(Software Development Kits)
BSPを使った組込みLinuxのビルド
$ bitbake core-image-minimal # 最小構成でビルド
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● ビルド成果物
● Linuxの起動に必要なバイナリ
BSPを使った組込みLinuxのビルド
$ ls -1 tmp/deploy/images/salvator-x/bl2-salvator-x.binbl2-salvator-x.elfbl2-salvator-x.srecbl31-salvator-x.bin...(省略)...
Image カーネルイメージ (カーネル本体)
Image-r8a7795-salvator-x.dtb デバイスツリー (ハードウェア情報)
core-imge-minimal-salvator-x.tar.bz2 rootfs
*.srec or *.bin bootloader
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● 実機へのインストール○ TFTP(Trivial File Transfer Protocol)経由のNFS (Network File System) ブート
■ https://elinux.org/R-Car/Boards/Yocto-Gen3#Running_Yocto_images 参照
○ eMMC/SDカードブート
■ https://elinux.org/R-Car/Boards/Yocto-Gen3#How_to_prepare_and_boot_from_eMMC.2FSD_card 参照
BSPを使った組込みLinuxのビルド
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
BSPのカスタマイズ(事例紹介)
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
カスタムボードへの移植
1. BSPをベースにカスタムボード用のパッチ/ソースコードを作成
poky/meta
meta-poky
meta-vendor
busybox
busybox
linux-yocto bootloader
linux-yocto
既存のレイヤ
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
1. BSPをベースにカスタムボード用のパッチ/ソースコードを作成2. 新しいレイヤを定義し、レシピを追加
カスタムボードへの移植
poky/meta
meta-poky
meta-vendor
busybox
busybox
linux-yocto bootloader
linux-yocto
meta-custom applicationbootloaderlinux-yocto
既存のレイヤ
カスタムボード用のパッチ
アプリの追加
設定ファイル+
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
1. BSPをベースにカスタムボード用のパッチ/ソースコードを作成2. 新しいレイヤを定義し、レシピを追加3. パッチ/ソースコードとカスタムレイヤをリリース
カスタムボードへの移植
poky/meta
meta-poky
meta-vendor
busybox
busybox
linux-yocto bootloader
linux-yocto
meta-custom applicationbootloaerlinux-yocto
リリース
設定ファイル+
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
● Yocto Project Software Overview
○ https://www.yoctoproject.org/software-overview
● Yocto Project Poky Reference Manual
○ https://www.yoctoproject.org/docs/2.4.2/mega-manual/mega-manual.html
● Bitbake User Manual
○ https://www.yoctoproject.org/docs/2.4.2/bitbake-user-manual/bitbake-user-manual.html
● R-Car Wiki
○ https://elinux.org/R-Car
参考URL
Copyright Cybertrust Japan Co., Ltd. All rights reserved.公開
信頼とともに
留意事項
本資料に記載されている会社名、製品名、サービス名は、当社または各社、各団体の商標もしくは登録商標です。その他本資料に記載されているイラスト・ロゴ・写真・動画・ソフトウェア等は、当社または第三者が有する知的財産権やその他の権利により守られております。お客様は、当社が著作権を有するコンテンツについて、特に定めた場合を除き、複製、改変、頒布などをすることはできません。本資料に記載されている情報は予告なしに変更されることがあります。また、時間の経過などにより記載内容が不正確となる場合がありますが、当社は、当該情報を更新する義務を負うものではありません。