本コラムの目標
本コラムはTorizonCore builderにて、自身で作成したDeviceTree、DeviceTreeOverlayをイメージに反映させることを目標とする。
なお、今回はTorizonCoreBuilderの操作を記載することが目的のため、リネームしたソースからDeviceTree、DeviceTreeOverlayをビルドする。
対象デバイス:Apalis-imx8qm、Evalation Board
環境構築
下記コラムの「セットアップ」を参照
https://circuit-toradex.com/column/column-966/
※エラー事例
tcb-env-setup.shをsource時、下記のようなエラーが発生する場合がある。
Got permission denied while trying to connect to the Docker daemon socket at …以下省略
その場合、権限問題によるエラーのため、下記コマンドを実行してdocker.sockに権限を付与する。
# sudo chmod 666 /var/run/docker.sock
イメージのカスタマイズ
Step1:イメージやソースの取得
ローカルのTorizonCore Builderのワークスペースにイメージを配置し、下記コマンドを実行する。
※注 torizon-core-docker-evaluation-apalis-imx8-Tezi_6.8.0+build.22.container.tar は今回のカスタムを行うベースのTorizonOSイメージ。
# torizoncore-builder images unpack torizon-core-docker-evaluation-apalis-imx8-Tezi_6.8.0+build.22.container.tar
デバイスツリーファイル&オーバーレイのソースを取得する。
# git clone -b toradex_5.15-2.2.x-imx git://git.toradex.com/linux-toradex.git linux
# git clone -b toradex_5.15-2.2.x-imx git://git.toradex.com/device-tree-overlays.git device-trees
Step2:使用するデバイスファイルの準備
現在適応されているデバイスツリー名を確認する。
※注 出力されたファイル名が完全一致でない場合がある。
展開されたデバイス内から確認するコマンド。
#strings /proc/device-tree/compatible
下記実行時レスポンス
toradex,apalis-imx8-v1.1-eval
toradex,apalis-imx8-v1.1
fsl,imx8qm
対象デバイスで使用可能なデバイスツリーを検索する。
# find linux -name “*imx8qm-apalis*.dts”
検索結果の中で使用したいデバイスツリーをコピー&リネームする。
# cp linux/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval.dts linux/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-custom.dts
作成したデバイスツリーが使用可能なデバイスツリーオーバーレイを検索する。
# torizoncore-builder dto list –device-tree linux/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-custom.dts
検索結果の中で使用したいデバイスツリーオーバーレイをコピー&リネームする。
# cp device-trees/overlays/apalis-imx8_hdmi_overlay.dts device-trees/overlays/apalis-imx8_hdmi_overlay_custom.dts
Step3:YAMLファイルの作成
YAMLファイルのテンプレートを下記コマンドにて、作成する。
# torizoncore-builder build –create-template
YAMLファイルを下記のように編集する
今回使用するtcbuild.yaml
input:
easy-installer:
local: torizon-core-docker-apalis-imx8-Tezi_6.8.0+build.22.tar
customization:
device-tree
include-dirs
– linux/include
custom: linux/arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-eval-custom.dts
overlays:
add:
– device-trees/overlays/apalis-imx8_hdmi_overlay_custom.dts
output:
easy-installer:
local: torizon-core-docker-evaluation-apalis-imx8-Tezi_6.8.0+build.22.CUSTOM
Step4:YAMLファイルをビルドする
下記コマンドにてビルドを行う
# torizoncore-builder build
Step5:イメージをデバイスにデプロイする
今回はSSHで展開するため、1度ビルド結果を解凍する
# torizoncore-builder images unpack torizon-core-docker-evaluation-apalis-imx8-Tezi_6.8.0+build.22.CUSTOM
SSHでデバイスに展開する
#torizoncore-builder deploy –remote-host 192.168.57.4 –remote-username torizon –remote-password torizon
デバイス起動ログにて
Applying Overlay: apalis-imx8_hdmi_overlay_custom.dtbo
と出力されればデバイスツリーが使用されている
下記コマンドを実行し、ファイル内にapalis-imx8_hdmi_overlay_custom.dts と記載があれば成功。
# ls /boot/ostree/torizon-1cc176e84cbbcbbd8c7a63f9d44a1c04cc0bb5d83b5b6d133ce9237d748b8a38/dtb/overlays.txt
※注 1cc176e84cbbcbbd8c7a63f9d44a1c04cc0bb5d83b5b6d133ce9237d748b8a38はデバイスツリーのハッシュ値で、ビルドによって変動する
以上、簡単ではございますが開発の一助となれば幸いです。