始めに
TorizonCore Builder はデバイス構成の変更、カスタムデバイスツリーとオーバーレイ、事前にプロビジョニングされたコンテナ、外部カーネルモジュール、スプラッシュスクリーンなど、TorizonOSのカスタムイメージを簡単に生成できるツールです。
このツールによって作成されたイメージは、SSH、Toradex Easy Installer、またはTorizon Cloudの更新機能などを利用してボードに展開できます。
この記事では、ツールのワークフローについて詳しく説明します。
このツールは、既存のTorizon OSのイメージをベースとして下記要素をカスタマイズし、Torizon OSのイメージを出力として生成出来ます。
・デバイスツリー、デバイスツリーオーバーレイのソースコード
・デバイスツリー自体とカーネルモジュール
・スプラッシュスクリーンイメージ
インストール方法
下記コラムの「セットアップ」をご覧ください
コラム:https://circuit-toradex.com/column/column-966/
TorizonCore Builderの使用方法
TorizonCore Builderには2つの使用方法があります。
1.ビルドコマンドを使用する
概要:既存のイメージを、カスタマイズ内容の記載したYAMLファイルに従いビルドする方法
2.スタンドアロン コマンドの使用
概要:手動で組み込みを行いビルドする方法
説明:
1.ビルドコマンドを使用する
YAMLファイルを使用したビルドのワークフローの説明を行います
YAMLファイルを書く→ビルドの流れのため、後述の内容はYAMlファイルの読み方となります
■YAML形式ファイルの作成
カスタマイズする手順をYAML形式ファイルに記載します。
テンプレートを生成する事が出来ます。下記コマンドです。
$ torizoncore-builder build –create-template
■各種カスタマイズ元になるファイルの取得
カスタマイズに使用するファイルをTorizonCoreBuilder動作環境上に用意します。
・スプラッシュ画面のイメージ
・デバイスツリーとデバイスツリーオーバーレイのソースコード
・外部カーネルモジュールのソースコード
・アプリケーションコンテナーのdocker-compose(YAML)構成ファイル、またはコンテナーイメージを含むディレクトリ
・ToradexのTorizonのEasyInstallerイメージ
・ターゲットデバイスの設定をローカルで操作可能にする。下記はコマンド。
$ torizoncore-builder isolate –remote-host “取得先IP” –remote-username “ログイン名” –remote-password “パスワード” –changes-directory “保存する先+保存するファイル名”
■YAMLファイルの編集
YAMLファイルをエディターで編集します。
下記は構成となっており、セクションが分かれております。
・inputセクションでは、ToradexのToradexEasyInstallerイメージをカスタム対象として定義し、コンテナ無しでカスタマイズする
・customizationセクションでは、目的の出力を生成するために、入力にどのような変更を行うかを記載する。
・output:torizoncore-builder buildセクションでは、出力される内容に詳細説明を付ける。
各セクションの詳細内容については下記を参照してください
下記は、次のような内容の例です。
入力
・ローカルにダウンロードされたToradexのOSのイメージ
カスタム内容
・スプラッシュスクリーン
・特定のデバイスツリー
・デバイスツリーオーバーレイ
・デバイスから取り込まれた設定変更を含むディレクトリ
出力
・生成されたToradexEasyInstallerイメージに同封するDocker-compose.ymlファイル
・生成されたToradexEasyInstallerイメージとコンテナ、およびカスタマイズが保存されているディレクトリ名
・カスタム・イメージのOSTreeコミットを定義するパラメータ
tcbuild.yaml
input:
easy-installer:
local: torizon-core-docker-colibri-imx6-Tezi_5.3.0+build.7.tar
customization:
splash-screen: splash.png
filesystem:
– changes/
device-tree:
include-dirs:
– linux/include/
custom: device-trees/dts-arm32/imx6dl-colibri-eval-v3.dts
overlays:
add:
– device-trees/overlays/colibri-imx6_lcd-edt7_overlay.dts
output:
ostree:
branch: “test-release-1”
commit-subject: “Test Release 1”
commit-body: “This is the first test release for my great product”
easy-installer:
local: torizon-core-docker-colibri-imx6-Tezi_5.3.0.CUSTOM
bundle:
compose-file: docker-compose.yml
username: “docker_hub_username”
password: “docker_hub_password”
■イメージのビルド
YAMLファイルを元にビルドを行う。下記はコマンド。
$ torizoncore-builder build
■イメージの展開
ボードへ展開する方法は3種類あります。任意の方法で書き込みを行ってください
・TEZIを使用する
・deployコマンドを使用してボード上に直接展開する
・TorizonCloudサーバ経由で展開を行う
2.スタンドアロン コマンドの使用
■ベースとなるイメージのダウンロードと解凍
ダウンロード方法は2つあります。
1.ローカルに手動でイメージを配置し、解凍して使用する
・OSのイメージをダウンロードし、ローカルに配置する
・ローカルのOSのイメージを下記のコマンドにて解凍する
$ torizoncore-builder images unpack “OSのイメージ.tar”
2.ボードに接続し、適切なOSのイメージをダウンロード、解凍を行う。下記はコマンド。
$ torizoncore-builder images download –remote-host “接続先IP” –remote-username “ホスト名” –remote-password “パスワード”
※同じイメージから別のカスタマイズを作成する際にはこの手順を再度行う必要はありません
■カスタマイズ元となるファイルのダウンロード
カスタマイズするファイルをTorizonCoreBuilder動作環境上に用意します。
・スプラッシュ画面のイメージ
・デバイスツリーとデバイスツリーオーバーレイのソースコード
・外部カーネルモジュールのソースコード
・アプリケーションコンテナーのdocker-compose(YAML)構成ファイル、またはコンテナーイメージを含むディレクトリ
・ToradexのOSイメージ
・対象デバイスのデバイスツリー、デバイスツリーのソースコード。下記はそのコマンド。
$ torizoncore-builder dt checkout
・ターゲットデバイスの設定をローカルで操作可能にする。下記はコマンド。
$ torizoncore-builder isolate –remote-host “取得先IP” –remote-username “ログイン名” –remote-password “パスワード” –changes-directory “保存する先+保存するファイル名”
・コンテナイメージを含むディレクトリ。下記は他のビルド用に現在のbundleディレクトリを生成する。下記はコマンド。
$ torizoncore-builder bundle docker-compose.yml –bundle-directory “ディレクトリ名”
■Torizon Core Builder専用コマンドを使用し、イメージのカスタマイズ
行いたいカスタマイズごとに専用コマンドがあります。
それぞれ下記URLから捜索して使用してください。
https://developer.toradex.com/torizon/os-customization/torizoncore-builder-tool-commands-manual/#torizoncore-builder—300-and-later
例)
・スプラッシュ画像を適応する。下記はコマンド。
$ torizoncore-builder splash “ファイル名”
・デバイスツリーソースをコンパイル。生成されたデバイスツリーを格納する。下記はコマンド。
$ torizoncore-builder dt apply –include-dir “パス+コンパイル対象デバイスツリーソース”
・カスタムしたファイルをイメージにする
カスタムした内容をビルドし、ブランチを作成します。下記はコマンド。
$ torizoncore-builder union “任意のブランチ名” –changes-directory changes
・ToradexEasyInstallerを作成する
生成したカスタムイメージをToradexEasyInstallerの形にします。下記はコマンド。
$ torizoncore-builder deploy custom-branch –output-directory “任意の名前”
■イメージの展開
ボードへ展開する方法は3種類あります。任意の方法で書き込みを行ってください
・TEZIを使用する
・deployコマンドを使用してボード上に直接展開する
・TorizonCloudサーバ経由で展開を行う
参考資料
ワークフロー : https://developer.toradex.com/torizon/os-customization/torizoncore-builder-workflow/#introduction
TorizonCoreBuilder tool command : https://developer.toradex.com/torizon/os-customization/torizoncore-builder-tool-commands-manual/#introduction