Toradex Verdin AM62 Solo で meta-qt6 を動かしてみた

# はじめに

この記事は [Qt Advent Calendar 2024](https://qiita.com/advent-calendar/2024/qt) ３日目の記事です。

昨日は @maakun_eng さんによる [Qt Creator のビルドにトライする](https://qiita.com/maakun_eng/items/3e9477ee283e52bb8845) でした。

Qt Creator はとても便利ですが、たまにもっと便利にならないかなとパッチを送ることがあります。自分が毎日使う仕事道具を自分でビルドができるといろんなことが試せていいですよね。

---

先月後半に [合同会社シグナルスロット](https://signal-slot.co.jp/) としてはじめて [EdgeTech+](https://www.jasa.or.jp/expo/) 2024 に参加するにあたり、[Toradex Japan 株式会社](https://www.toradex.com/ja-jp) から展示用のボードをお借りすることができました。今回はそのうちの１つで Qt6 のデモを動かした際の作業を記事にしました。

![carpark-verdin-am62.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/e8a668dc-abff-ed87-3344-1836ee7e6649.gif)

# ハードウェア構成

- [Toradex Verdin AM62 Solo 512MB](https://www.toradex.com/ja-jp/computer-on-modules/verdin-arm-family/ti-am62)
  - GPU なし
  - ディスプレイは LVDS のみサポート
- [Mallow Carrier Board](https://www.toradex.com/ja-jp/products/carrier-board/mallow-carrier-board)
- [Capacitive Touch Display 10.1” LVDS](https://www.toradex.com/ja-jp/accessories/capacitive-touch-display-10.1-inch-lvds)

# デバイスの準備

Toradex Development Center の [Quickstart Guide](https://developer.toradex.com/quickstart-landing/) のデバイスを設定していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/4e3958aa-f857-660b-73af-18ddeff7490a.png)

## 配線

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/4537ead9-d29f-39a2-a2c6-2cca8d674849.png)

### Verdin AM62 を Mallow にセットする
[Unboxing and Setup Cables - Mallow Carrier Board](https://developer.toradex.com/quickstart/bringup/unboxing-mallow/?module=verdin_am62&carrier=mallow&host=linux&os=torizon&learning_path=unbox_setup) に手順が書いてあります。

### ディスプレイを Mallow に接続する

[First Steps with Capacitive Touch Display 10.1 Inch LVDS](https://developer.toradex.com/hardware/hardware-resources/peripherals/displays/first-steps-with-capacitive-touch-display-101-inch-lvds/) に手順が書いてあります。

# イメージのフラッシュの手順

## Toradex Easy Installer

[Download Toradex Easy Installer](https://developer.toradex.com/easy-installer/toradex-easy-installer/download-tezi/) から Version 6 の Verdin AM62 のものをダウンロードし、展開します。

ホストPCに dfu-util が必要です。
```console
// Gentoo Linux の場合
$ sudo emerge -avt dfu-util
```

## リカバリーモードにする

[NXP i.MX and TI AM62x Recovery Mode](https://developer.toradex.com/hardware/hardware-resources/recovery-mode/imx-ti-recovery-mode/?module=verdin_am62&carrier=mallow#start) に手順が書いてあります。

以下のピンをショートさせて、電源を入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/5a56ffef-9e20-778b-04d6-1080c16b7077.png)

## USB-C でホスト PC と接続する

以下のように認識されました。

```console
[2280653.562256] usb 7-2.3: new high-speed USB device number 15 using xhci_hcd
[2280653.654786] usb 7-2.3: New USB device found, idVendor=0451, idProduct=6165, bcdDevice= 2.00
[2280653.654799] usb 7-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2280653.654804] usb 7-2.3: Product: AM62x DFU
[2280653.654808] usb 7-2.3: Manufacturer: Texas Instruments, Inc.
[2280653.654813] usb 7-2.3: SerialNumber: 01.00.00.00
```

## リカバリー

```console
$ ./recovery-linux.sh
Bus 007 Device 121: ID 0451:6165 Texas Instruments, Inc. AM62x DFU
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Opening DFU capable USB device...
Device ID 0451:6165
Device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Interface #1 ...
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 0110
Device returned transfer size 512
Copying data from DFU device to PC
Upload  [=========================] 100%          200 bytes
Upload done.
Received a total of 200 bytes
dfu-util: can't detach
Resetting USB to switch back to Run-Time mode
Bus 007 Device 121: ID 0451:6165 Texas Instruments, Inc. AM62x DFU
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Waiting for device, exit with ctrl-C
Opening DFU capable USB device...
Device ID 0451:6165
Device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Interface #0 ...
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 0110
Device returned transfer size 512
Copying data from PC to DFU device
Download        [=========================] 100%       321922 bytes
Download done.
DFU state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present
dfu-util: unable to read DFU status after completion (LIBUSB_ERROR_IO)
Bus 007 Device 122: ID 1b67:4000 Toradex USB download gadget
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Waiting for device, exit with ctrl-C
Opening DFU capable USB device...
Device ID 1b67:4000
Device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Interface #0 ...
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 0110
Device returned transfer size 4096
Copying data from PC to DFU device
Download        [=========================] 100%      1036059 bytes
Download done.
DFU state(7) = dfuMANIFEST, status(0) = No error condition is present
DFU state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to Run-Time mode
Bus 007 Device 123: ID 1b67:4000 Toradex USB download gadget
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Waiting for device, exit with ctrl-C
Opening DFU capable USB device...
Device ID 1b67:4000
Device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Interface #1 ...
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 0110
Device returned transfer size 4096
Copying data from PC to DFU device
Download        [=========================] 100%       985963 bytes
Download done.
DFU state(7) = dfuMANIFEST, status(0) = No error condition is present
DFU state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to Run-Time mode
Downloading Toradex Easy Installer...
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.165-0-g7347a80

Success 1    Failure 0


7:21     8/ 8 [Done                                  ] FB: done
```

## USB デバイスの認識

リカバリー後はNICとして認識されます。

```console
[2280984.055215] usb 7-2.3: new high-speed USB device number 23 using xhci_hcd
[2280984.148231] usb 7-2.3: New USB device found, idVendor=1b67, idProduct=4049, bcdDevice= 0.01
[2280984.148243] usb 7-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2280984.148248] usb 7-2.3: Product: 0073 Verdin AM62 Dual 1GB ET
[2280984.148253] usb 7-2.3: Manufacturer: Toradex
[2280984.148257] usb 7-2.3: SerialNumber: 15479088
[2280984.226483] cdc_ncm 7-2.3:1.0: MAC-Address: 32:ab:2b:da:f6:d3
[2280984.226829] cdc_ncm 7-2.3:1.0 eth1: register 'cdc_ncm' at usb-0000:22:00.3-2.3, CDC NCM (NO ZLP), 32:ab:2b:da:f6:d3
[2280984.254033] cdc_ncm 7-2.3:1.0 enp34s0f3u2u3: renamed from eth1
```

## VNC 接続をする

今回の SoM はデフォルトでは LVDS 接続のディスプレイには対応しておらず、HDMI には非対応のため、ネットワーク経由で GUI を表示する必要があります。

[Tezi の詳細ドキュメント](https://developer.toradex.com/easy-installer/toradex-easy-installer/flashing-new-image-using-tezi/#display-the-gui) などを読むと、RDNIS は `192.168.11.1` が初期状態で割り当てられているようなので、対応する `enp34s0f3u2u3` を `192.168.11.2` などに設定し、VNC で実機にアクセスします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/cb6dd0d7-092e-6978-b842-2667eadca437.png)

実機の有線LANを接続すると、インストール可能なイメージの一覧をインターネット経由で取得します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/ed50ed68-eef4-707f-9fd6-939026993708.png)

イメージを格納した USB メモリを差し込むと、それが表示されるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/a3865628-3411-a12d-1a36-f62c5da1663b.png)

では、次にこのイメージを自分で作成していきましょう。

# OS のイメージの作成

なるべく最低限の環境からはじめたいので、Yocto を自分でビルドすることにします。

## 初期設定

Docker で Ubuntu 24.04 を起動し、初期設定を行います。
```console
$ docker run -it ubuntu:24.04 /bin/bash
root@fee456f40266:/# apt-get update
root@fee456f40266:/# DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential chrpath cpio curl debianutils diffstat file gawk gcc-multilib git-core iproute2 iputils-ping language-pack-en liblz4-tool openssh-server pigz python3 python3-git python3-jinja2 python3-pexpect python3-pip rsync socat sudo texinfo tmux unzip vim wget xz-utils zstd
root@fee456f40266:/# update-locale LANG=en_US.UTF-8
```

24.04 の docker イメージには既に `ubuntu` ユーザーが存在するので、以降の作業はそのユーザーで行います。

```console
root@fee456f40266:/# su - ubuntu
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
```

## git のユーザーの設定

```console
ubuntu@fee456f40266:~$ git config --global user.email "[メールアドレス]"
ubuntu@fee456f40266:~$ git config --global user.name "[名前]"
```

## repo の取得

```console
ubuntu@fee456f40266:~$ curl https://storage.googleapis.com/git-repo-downloads/repo > repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 47141  100 47141    0     0   520k      0 --:--:-- --:--:-- --:--:--  523k
ubuntu@fee456f40266:~$ chmod +x repo
```

## Toradex の kirkstone を取得

```console
ubuntu@fee456f40266:~$ ~/repo init -u git://git.toradex.com/toradex-manifest.git -b kirkstone-6.x.y -m tdxref/default.xml
Downloading Repo source from https://gerrit.googlesource.com/git-repo
repo: Updating release signing keys to keyset ver 2.3

Your identity is: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp>
If you want to change this, please re-run 'repo init' with --config-name

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/N)? y

repo has been initialized in /home/ubuntu
ubuntu@fee456f40266:~$ ~/repo sync
Fetching: 100% (16/16), done in 3m20.524s
Checking out:  93% (15/16), done in 0.398s
Checking out:   6% (1/16), done in 0.062s
repo sync has finished successfully.
ubuntu@fee456f40266:~$ ls layers/
meta-arm        meta-freescale-3rdparty  meta-openembedded  meta-security  meta-toradex-bsp-common  meta-toradex-distro  meta-toradex-ti  openembedded-core
meta-freescale  meta-freescale-distro    meta-qt5           meta-ti        meta-toradex-demos       meta-toradex-nxp     meta-yocto
```

meta-qt5 がありますね

## meta-qt6 を追加

```console
ubuntu@fee456f40266:~$ git clone git://code.qt.io/yocto/meta-qt6.git --branch v6.8.0 layers/meta-qt6
Cloning into 'layers/meta-qt6'...
remote: Enumerating objects: 14044, done.
remote: Counting objects: 100% (14044/14044), done.
remote: Compressing objects: 100% (3544/3544), done.
remote: Total 14044 (delta 10814), reused 13465 (delta 10357), pack-reused 0
Receiving objects: 100% (14044/14044), 2.93 MiB | 922.00 KiB/s, done.
Resolving deltas: 100% (10814/10814), done.
Note: switching to 'd6e576a7d75d0371602e93124c4e2f1c539be8f3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false
```

## am62 ディレクトリ以下にビルドの設定をする

```console
ubuntu@fee456f40266:~$ . layers/openembedded-core/oe-init-build-env am62
You had no conf/local.conf file. This configuration file has therefore been
created for you from /home/ubuntu/layers/openembedded-core/meta/conf/local.conf.sample
You may wish to edit it to, for example, select a different MACHINE (target
hardware). See conf/local.conf for more information as common configuration
options are commented.

You had no conf/bblayers.conf file. This configuration file has therefore been
created for you from /home/ubuntu/layers/openembedded-core/meta/conf/bblayers.conf.sample
To add additional metadata layers into your configuration please add entries
to conf/bblayers.conf.

The Yocto Project has extensive documentation about OE including a reference
manual which can be found at:
    https://docs.yoctoproject.org

For more information about OpenEmbedded see the website:
    https://www.openembedded.org/


### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
    core-image-full-cmdline
    core-image-sato
    core-image-weston
    meta-toolchain
    meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86-64'.

Other commonly useful commands are:
 - 'devtool' and 'recipetool' handle common recipe tasks
 - 'bitbake-layers' handles common layer tasks
 - 'oe-pkgdata-util' handles common target package tasks
```

マシンの設定

```console
ubuntu@fee456f40266:~/am62$ vi conf/local.conf
```

```text
MACHINE = "verdin-am62"
```

```console
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-arm/meta-arm-toolchain/
NOTE: Starting bitbake server...
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-arm/meta-arm/
NOTE: Starting bitbake server...
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-ti/meta-ti-bsp/
NOTE: Starting bitbake server...
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-toradex-bsp-common/
NOTE: Starting bitbake server...
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-toradex-ti/
NOTE: Starting bitbake server...
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-openembedded/meta-oe
NOTE: Starting bitbake server...
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-qt6
NOTE: Starting bitbake server...
ERROR: Layer 'qt6-layer' depends on layer 'meta-python', but this layer is not enabled in your configuration
ERROR: Parse failure with the specified layer added, exiting.
```

怒られました。python はいらないことにしましょう。

```console
ubuntu@fee456f40266:~/am62$ vi conf/local.conf
```

```text
LAYERDEPENDS_qt6-layer:remove = " meta-python"
```

```console
ubuntu@fee456f40266:~/am62$ bitbake-layers add-layer ../layers/meta-qt6
NOTE: Starting bitbake server...
```

Qt のビルドの設定をします。フルのものはいらないので essentials のモジュールのみイメージに追加します。
X11 は利用せず、KMS に直接描くことにします。
また、Verdin-AM62 Solo は GPU が搭載されていないため、GLESv2 の機能も削除しています。
それから、Qt から利用するフォントを１つ追加しておきます。

```console
ubuntu@fee456f40266:~/am62$ vi conf/local.conf
```

```text
IMAGE_INSTALL:append = " packagegroup-qt6-essentials"
PACKAGECONFIG:append_pn-qtbase = " kms"
DISTRO_FEATURES:remove = "x11"
PACKAGECONFIG:remove = " glesv2"
IMAGE_INSTALL:append = " source-han-sans-jp-fonts"
```

LVDS ディスプレイを利用するための Device Tree の設定をします。

```console
ubuntu@fee456f40266:~/am62$ vi conf/local.conf
```

```text
TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT:remove = " verdin-am62_dsi-to-hdmi_overlay.dtbo"
TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT:append = " verdin-am62_panel-cap-touch-10inch-lvds_overlay.dtbo"
```

[Device Tree Overlays on Toradex System on Modules](https://developer.toradex.com/software/linux-resources/device-tree/device-tree-overlays-on-toradex-soms/#verdin-am62) を参考にしました。

ついでに ssh もできるようにしておきます。

```console
ubuntu@fee456f40266:~/am62$ vi conf/local.conf
```

```text
IMAGE_FEATURES:append = " ssh-server-openssh"
IMAGE_INSTALL:append = " openssh openssh-sftp-server"
```

## ビルド

```console
ubuntu@fee456f40266:~/am62$ bitbake core-image-base
```

成果物は以下の通りです。

```console
ubuntu@fee456f40266:~/am62$ find deploy-ti/
deploy-ti/
deploy-ti/images
deploy-ti/images/verdin-am62
deploy-ti/images/verdin-am62/u-boot-spl.bin-sd
deploy-ti/images/verdin-am62/core-image-base.env
deploy-ti/images/verdin-am62/tiboot3-am62x-hs-fs-verdin.bin-sd-r5
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-yavia--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-dahlia-verdin-am62.dtb
deploy-ti/images/verdin-am62/firmware-verdin-am62-hs-fs.bin
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246.rootfs.tar.xz
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-dev-verdin-am62.dtb
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-dev--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/u-boot-r5spl.bin
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-dahlia--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/boot.scr-verdin-am62
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246.testdata.json
deploy-ti/images/verdin-am62/core-image-base-verdin-am62.testdata.json
deploy-ti/images/verdin-am62/prepare.sh
deploy-ti/images/verdin-am62/u-boot.img-sd
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-dahlia.dtb
deploy-ti/images/verdin-am62/tiboot3.bin-sd-r5
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-dahlia-verdin-am62.dtb
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-dev-verdin-am62.dtb
deploy-ti/images/verdin-am62/firmware-verdin-am62-hs.bin
deploy-ti/images/verdin-am62/core-image-base-verdin-am62.manifest
deploy-ti/images/verdin-am62/u-boot-r5spl-sd-r5-2023.04+gitAUTOINC+40a1d7b913-r0.bin
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-mallow-verdin-am62.dtb
deploy-ti/images/verdin-am62/u-boot-spl.bin-verdin-am62-sd
deploy-ti/images/verdin-am62/Image.gz-verdin-am62.bin
deploy-ti/images/verdin-am62/tispl.bin
deploy-ti/images/verdin-am62/bl31.elf
deploy-ti/images/verdin-am62/ti-sysfw
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62px-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721s2-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200_sr2-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am65x_sr2-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am65x_sr2-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr1_1-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am64x-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62ax-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am65x-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j742s2-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am64x_sr2-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr2-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j722s-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62px-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62px-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200_sr2-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr2-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62ax-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62ax-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62ax-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721s2-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am64x_sr2-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721s2-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j742s2-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721s2-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62px-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62x-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721s2-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am64x-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr1_1-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62px-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j784s4-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62x-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr1_1-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j784s4-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62ax-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr1_1-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am65x_sr2-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62ax-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62ax-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j784s4-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62x-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j722s-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200_sr2-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62x-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200_sr2-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j722s-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j784s4-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62px-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr2-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62ax-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-stub-firmware-am62x-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e_sr2-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j7200-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am65x-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j784s4-hs-fs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am65x-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-am62x-hs-cert.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j721e-gp.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-fs-firmware-j722s-hs-enc.bin
deploy-ti/images/verdin-am62/ti-sysfw/ti-sci-firmware-am64x-gp.bin
deploy-ti/images/verdin-am62/tispl.bin-verdin-am62
deploy-ti/images/verdin-am62/core-image-base-verdin-am62.tar.xz
deploy-ti/images/verdin-am62/u-boot-verdin-am62.dtb
deploy-ti/images/verdin-am62/modules--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.tgz
deploy-ti/images/verdin-am62/bl31.bin
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0.tar
deploy-ti/images/verdin-am62/Image--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.bin
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-yavia.dtb
deploy-ti/images/verdin-am62/ti-dm
deploy-ti/images/verdin-am62/ti-dm/am62xx
deploy-ti/images/verdin-am62/ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f.signed
deploy-ti/images/verdin-am62/ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f
deploy-ti/images/verdin-am62/u-boot-nodtb-verdin-am62.bin
deploy-ti/images/verdin-am62/marketing.tar
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-yavia--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/optee
deploy-ti/images/verdin-am62/optee/tee-header_v2.bin
deploy-ti/images/verdin-am62/optee/tee.bin
deploy-ti/images/verdin-am62/optee/tee-raw.bin
deploy-ti/images/verdin-am62/optee/tee-pageable_v2.bin
deploy-ti/images/verdin-am62/optee/bl32.elf
deploy-ti/images/verdin-am62/optee/tee.elf
deploy-ti/images/verdin-am62/optee/tee-pager_v2.bin
deploy-ti/images/verdin-am62/optee/bl32.bin
deploy-ti/images/verdin-am62/Image-verdin-am62.bin
deploy-ti/images/verdin-am62/image-core-image-base.json
deploy-ti/images/verdin-am62/u-boot-spl.bin
deploy-ti/images/verdin-am62/toradexlinux.png
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-yavia.dtb
deploy-ti/images/verdin-am62/u-boot-verdin-am62-2023.04+gitAUTOINC+40a1d7b913-r0.img
deploy-ti/images/verdin-am62/u-boot-verdin-am62.img
deploy-ti/images/verdin-am62/tiboot3-am62x-hs-fs-verdin-sd-r5-2023.04+gitAUTOINC+40a1d7b913-r0.bin
deploy-ti/images/verdin-am62/tispl.bin-sd
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-mallow.dtb
deploy-ti/images/verdin-am62/u-boot-verdin-am62-2023.04+gitAUTOINC+40a1d7b913-r0.dtb
deploy-ti/images/verdin-am62/wrapup.sh
deploy-ti/images/verdin-am62/tispl.bin-verdin-am62-sd
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246-Tezi.tar
deploy-ti/images/verdin-am62/core-image-base-verdin-am62.wic.bmap
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246.rootfs.manifest
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-dev.dtb
deploy-ti/images/verdin-am62/fitImage
deploy-ti/images/verdin-am62/tiboot3.bin
deploy-ti/images/verdin-am62/Image
deploy-ti/images/verdin-am62/fitImage-verdin-am62.bin
deploy-ti/images/verdin-am62/u-boot-initial-env-verdin-am62-sd
deploy-ti/images/verdin-am62/bl31-k3.bin
deploy-ti/images/verdin-am62/ti_logo_414x97_32bpp.bmp.gz
deploy-ti/images/verdin-am62/kernel-config--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246
deploy-ti/images/verdin-am62/u-boot-verdin-am62.img-sd
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246.rootfs.wic.bmap
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-dahlia--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-mallow-verdin-am62.dtb
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-mallow--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/core-image-base-verdin-am62.bootfs.tar.xz
deploy-ti/images/verdin-am62/fitImage-its--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.its
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-mallow--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/u-boot.img
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246.rootfs.bootfs.tar.xz
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-dahlia.dtb
deploy-ti/images/verdin-am62/devicetree
deploy-ti/images/verdin-am62/devicetree/verdin-am62_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_nau8822-btl_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_ov5640_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_hmp_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_mezzanine_panel-lvds-dual-channel-1080p_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_spidev_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_panel-cap-touch-10inch-lvds_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_panel-cap-touch-10inch-dsi_overlay.dtbo
deploy-ti/images/verdin-am62/devicetree/verdin-am62_dsi-to-hdmi_overlay.dtbo
deploy-ti/images/verdin-am62/u-boot-spl.bin-verdin-am62-2023.04+gitAUTOINC+40a1d7b913-r0-sd
deploy-ti/images/verdin-am62/bl32.elf
deploy-ti/images/verdin-am62/core-image-base-verdin-am62.wic.xz
deploy-ti/images/verdin-am62/u-boot-spl.bin-verdin-am62
deploy-ti/images/verdin-am62/fitImage-its-verdin-am62
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-dev--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.dtb
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-yavia-verdin-am62.dtb
deploy-ti/images/verdin-am62/u-boot-initial-env-sd
deploy-ti/images/verdin-am62/overlays
deploy-ti/images/verdin-am62/overlays/verdin-am62_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_nau8822-btl_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_ov5640_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_hmp_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_mezzanine_panel-lvds-dual-channel-1080p_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_spidev_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_panel-cap-touch-10inch-lvds_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_panel-cap-touch-10inch-dsi_overlay.dtbo
deploy-ti/images/verdin-am62/overlays/verdin-am62_dsi-to-hdmi_overlay.dtbo
deploy-ti/images/verdin-am62/fitImage-linux.bin-verdin-am62
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-mallow.dtb
deploy-ti/images/verdin-am62/tiboot3-am62x-hs-fs-verdin.bin
deploy-ti/images/verdin-am62/u-boot-r5spl-verdin-am62.bin-sd-r5
deploy-ti/images/verdin-am62/firmware-verdin-am62-gp.bin
deploy-ti/images/verdin-am62/fitImage-linux.bin--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.bin
deploy-ti/images/verdin-am62/core-image-base-verdin-am62-20241202182246.rootfs.wic.xz
deploy-ti/images/verdin-am62/u-boot-initial-env-verdin-am62-sd-2023.04+gitAUTOINC+40a1d7b913-r0
deploy-ti/images/verdin-am62/overlays.txt
deploy-ti/images/verdin-am62/k3-am625-verdin-nonwifi-dev.dtb
deploy-ti/images/verdin-am62/u-boot-r5spl.bin-sd-r5
deploy-ti/images/verdin-am62/bl31-k3.elf
deploy-ti/images/verdin-am62/fitImage--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.bin
deploy-ti/images/verdin-am62/kernel-config
deploy-ti/images/verdin-am62/u-boot-nodtb.bin
deploy-ti/images/verdin-am62/u-boot-r5spl-verdin-am62.bin
deploy-ti/images/verdin-am62/u-boot-sd-2023.04+gitAUTOINC+40a1d7b913-r0.img
deploy-ti/images/verdin-am62/modules-verdin-am62.tgz
deploy-ti/images/verdin-am62/tiboot3-am62x-gp-verdin.bin
deploy-ti/images/verdin-am62/bl32.bin
deploy-ti/images/verdin-am62/u-boot.dtb
deploy-ti/images/verdin-am62/k3-am625-verdin-wifi-yavia-verdin-am62.dtb
deploy-ti/images/verdin-am62/Image.gz
deploy-ti/images/verdin-am62/Image.gz--6.1.83+git0+dd30c7ec04-r0-verdin-am62-20241202182246.bin
deploy-ti/images/verdin-am62/u-boot-nodtb-verdin-am62-2023.04+gitAUTOINC+40a1d7b913-r0.bin
deploy-ti/images/verdin-am62/TI-TFL.txt
deploy-ti/images/verdin-am62/tiboot3-am62x-hs-verdin.bin
deploy-ti/images/verdin-am62/tispl.bin-sd-2023.04+gitAUTOINC+40a1d7b913-r0
```

Tezi で利用するのは、`core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0.tar` になります。

```console
ubuntu@fee456f40266:~/am62$ cd deploy-ti/images/verdin-am62/
ubuntu@fee456f40266:~/am62/deploy-ti/images/verdin-am62$ file core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0.tar
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0.tar: POSIX tar archive (GNU)
ubuntu@fee456f40266:~/am62/deploy-ti/images/verdin-am62$ tar tf core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0.tar
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/toradexlinux.png
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/marketing.tar
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/prepare.sh
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/wrapup.sh
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/TI-TFL.txt
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/image.json
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/core-image-base-verdin-am62.tar.xz
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/core-image-base-verdin-am62.bootfs.tar.xz
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/u-boot-initial-env-sd
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/u-boot.img
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/tiboot3-am62x-gp-verdin.bin
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/tiboot3-am62x-hs-fs-verdin.bin
core-image-base-verdin-am62-20241202182246-Tezi_nodistro.0/tispl.bin
```

## ホストにコピー

```console
ubuntu@fee456f40266:~/am62/deploy-ti/images/verdin-am62$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
411: eth0@if412: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
ubuntu@fee456f40266:~/am62/deploy-ti/images/verdin-am62$ scp core-image-base-verdin-am62-20241202182246-Tezi.tar tasuku@172.17.0.1:/home/tasuku/Downloads/
The authenticity of host '172.17.0.1 (172.17.0.1)' can't be established.
ED25519 key fingerprint is SHA256:RCAms6wluq20EsE+8d5PenmueHksO9GtDHcbE/S0cuo.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.17.0.1' (ED25519) to the list of known hosts.
(tasuku@172.17.0.1) Password:
core-image-base-verdin-am62-20241202182246-Tezi.tar                                                                                       100%   65MB 650.5MB/s   00:00
```

# Tezi

ホスト側にコピーした core-image-base-verdin-am62-20241202182246-Tezi.tar を USB メモリに展開し、実機に差すと以下のようにイメージが認識されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/edfc67f0-d7f2-1d14-c9fb-f8ceacfad6ba.png)

ダブルクリックすると、以下の確認ダイアログが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/06658ee9-b329-e371-d4a2-471610b47794.png)

Yes をクリックするとインストールがはじまります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/13df2f21-cca2-f1c0-0064-64593f2dfa5a.png)

インストールが終わると次のアクションを選択するダイアログが表示されます。
「Reboot」をクリックしましょう。
この時、リカバリーモードに入るために差したショートピンを外してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/2701a7e9-3ba6-2ec3-15db-63921d7c41e0.png)

# 実機の起動

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/39bd0053-92e2-3ebf-690d-8b0b6ac9095e.png)

LVDS 接続したディスプレイに起動画面が表示されます。

ホスト名は「verdin-am62」となっています。

今回ビルドした Yocto では RDNIS の機能は有効になっていないので、別途有線LANケーブルを差して、ホスト名でアクセスしましょう。

```console
host $ ssh root@verdin-am62.local

root@verdin-am62:~# vi main.qml
```

```qml
import QtQuick

Window {
    visible: true
    color: '#2CDE85'

    Text {
        anchors.centerIn: parent
        text: "Hello World!"
        color: '#00414A'
        font.pointSize: 48
    }
}
```

```console
root@verdin-am62:~# qml main.qml
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/0c4c23aa-a632-5858-4670-ac2e5d869d70.png)

無事 Qt Quick の画面が出せました。

## 作業をした docker の保存

`toradex_verdin_am62_solo:0.0.1` という名前でまた利用できるようにしておきましょう。
```console
$ docker ps
CONTAINER ID   IMAGE           COMMAND                   CREATED         STATUS        PORTS                                       NAMES
fee456f40266   ubuntu:24.04    "/bin/bash"               33 hours ago    Up 33 hours                                               goofy_shannon
$ docker commit fee456f40266 toradex_verdin_am62_solo:0.0.1
```

# 終わりに

今回は [Toradex Japan](https://www.toradex.com/ja-jp) さんにお借りした AM62 のボードで meta-qt6 をビルドし、簡単な Qt Quick の UI を表示してみました。この記事はここまでで完了で、次回はこの先を書こうと思っているので首を長くしてお待ちください。

明日は @hermit4 さんによる [Pyside6でアナログ時計を作ってみる](https://qiita.com/hermit4/items/4b351f76a141db39873d) です。
[Slint Advent Calendar 2024](https://qiita.com/advent-calendar/2024/slint) の方にも [Pyside6(QML) vs Slint-Python(Slint)](https://qiita.com/hermit4/items/a73b18f82623748cd82a) という記事を書かれるようで気になりますね！