Device treeについて

ターゲットデバイスで、.dtsiファイルを見ることができますか?
もしくは、逆コンパイルなどをして、.dtsiのようなテキストファイル
生成することはできますか?
または、開発用PCでイメージファイルから抽出することができますか?

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


ターゲットデバイスで直接.dtsiファイルを見ることは通常できません。これは、デバイスツリーのソースファイル(.dtsや.dtsi)がコンパイルされてバイナリ形式のデバイスツリーブロブ(.dtb)になっているためです。しかし、逆コンパイルを行うことで、.dtbファイルからテキスト形式のデバイスツリーソースファイルを生成することが可能です。

以下の手順で、ターゲットデバイスや開発用PCで.dtbファイルを逆コンパイルして.dtsファイルを生成できます:

  1. ターゲットデバイスから.dtbファイルを取得する

    • ターゲットデバイスの/bootディレクトリや他の適切な場所から.dtbファイルをコピーします。
  2. Device Tree Compiler (DTC)を使用して逆コンパイルする

    • 開発用PCにDTCツールがインストールされていることを確認します。DTCは通常、Linuxカーネルのソースコードに含まれています。
    • 以下のコマンドを使用して.dtbファイルを.dtsファイルに逆コンパイルします:
      dtc -I dtb -O dts -o output.dts input.dtb
      
      ここで、input.dtbは逆コンパイルしたい.dtbファイルのパス、output.dtsは生成される.dtsファイルのパスです。
  3. .dtsiファイルの抽出

    • 逆コンパイルされた.dtsファイルには、元の.dtsiファイルの内容が含まれている場合がありますが、完全に元の.dtsiファイルに戻すことはできないかもしれません。必要に応じて、手動で編集して.dtsiファイルを再構築することができます。

この方法で、ターゲットデバイスやイメージファイルからデバイスツリーのソースファイルを取得し、カスタマイズやデバッグに役立てることができます。

Please, also check if these links can help you solve your problem:

How to get my current device tree?.

ターゲットデバイスで、下記のコマンドを実行しても.dtbファイルが見つかりませんでした。
find / -name “*.dtb”

@adt-saito

可能であれば、モジュールとSWバージョンを教えてください。

AIが言った通り、ターゲットデバイスで「.dtsi」がございません。「.dtb」しかございません。

Torizonをご利用いただけますでしょうか。TorizonでdtbのPATHは/boot/ostree/torizon-[commit]/dtb/になります。

以上、引き続きよろしくお願いいたします。
アルバロ。

アルバロさん

ご返信ありがとうございます。

バージョン情報は、下記の通りです。
root@colibri-imx6ull-14851063:~# cat /etc/os-release
ID=tdx-xwayland-upstream
NAME=“TDX Wayland with XWayland Upstream”
VERSION="5.7.2-devel-20230810051004+build.0 (dunfell)
VERSION_ID=5.7.2-devel-20230810051004-build.0
PRETTY_NAME=“TDX Wayland with XWayland Upstream 5.7.2-devel-20230810051004+build.0 (dunfell)”
DISTRO_CODENAME=“dunfell”

本件は、顧客からミニマムイメージを指定されています。
よって.dtsiは顧客から入手します。Torizonは別の機会に試してみます。
ご支援ありがとうございました。

Best regards,
Saito

@adt-saito

ご連絡ありがとうございます。

Colibri iMX6ULL 256MB / 512MBは、eMMCではなくNANDフラッシュを使用しており、DTBファイルはRAWファイルとして直接フラッシュに書き込まれているため、内容を取得することはできません。

おすすめとしては、元のToradex Easy InstallerイメージまたはYoctoビルド環境からDTBファイルを取得することです。

以上、引き続きよろしくお願いいたします。
アルバロ。