コラム

2024年11月21日

,
, , ,

TorizonCoreBuilderでデバイスツリーオーバーレイ変更

TorizonCoreBuilderでデバイスツリーオーバーレイ変更

本コラムの目標

本コラムは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はデバイスツリーのハッシュ値で、ビルドによって変動する

 

以上、簡単ではございますが開発の一助となれば幸いです。