Jetson AGX Orin をセットアップした際の試行錯誤
デバイス
Key | Value |
---|---|
機種 | NVIDIA Jetson AGX Orin Developper Kit |
RAM | 32GB(エミュレーションモードのため、認識されるのは16GB) |
ストレージ | eMMC flash memory 64GB |
備考 | Jetson Orin NX のエミュレーションモードでセットアップされている |
初回起動直後の状態
Ubuntu の初回セットアップ画面が表示された後にターミナルから状態を確認
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
$ uname -a
Linux 5.15.122-tegra #1 SMP PREEMPT Thu Nov 30 10:30:37 PST 2023 aarch64 aarch64 aarch64 GNU/Linux
アップグレードしようとしたらエラーが発生
その後、sudo apt update
してから sudo apt upgrade -y
を実行したところ何故かエラーになった
$ sudo apt upgrade -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
libiperf0 libjs-jquery-ui libopenexr25 python3-scipy libpostproc55
libavcodec58 iperf3 libavutil56 libswscale5 libswresample3 libavformat58
libavfilter7
Learn more about Ubuntu Pro at https://ubuntu.com/pro
The following packages have been kept back:
python3-update-manager update-manager update-manager-core
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
7 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up nvidia-l4t-bootloader (36.2.0-20231218214829) ...
Warning: Cannot get compatible board name.
3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb-
Info. Active boot storage: mmcblk3
TNSPEC 3701-500-0000-H.0-1-1-jetson-agx-orin-devkit-as-nx-16gb-
COMPATIBLE_SPEC 3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb-
TEGRA_BOOT_STORAGE mmcblk3
TEGRA_CHIPID 0x23
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0
Info: Write TegraPlatformCompatSpec with 3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb-.
INFO. Dump slots info:
Current version: 36.2.0
Capsule update status: 0
Current bootloader slot: A
Active bootloader slot: A
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
INFO. Dump nv_boot_control.conf:
TNSPEC 3701-500-0000-H.0-1-1-jetson-agx-orin-devkit-as-nx-16gb-
COMPATIBLE_SPEC 3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb-
TEGRA_BOOT_STORAGE mmcblk3
TEGRA_CHIPID 0x23
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0
ERROR. 3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb- does not match any known boards.
dpkg: error processing package nvidia-l4t-bootloader (--configure):
installed nvidia-l4t-bootloader package post-installation script subprocess returned error exit status 1
Setting up nvidia-l4t-kernel (5.15.122-tegra-36.2.0-20231218214829) ...
Using the existing boot entry 'primary'
Warning: Cannot get compatible board name.
3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb-
Info. Active boot storage: mmcblk3
TNSPEC 3701-500-0000-H.0-1-1-jetson-agx-orin-devkit-as-nx-16gb-
COMPATIBLE_SPEC 3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb-
TEGRA_BOOT_STORAGE mmcblk3
TEGRA_CHIPID 0x23
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0
Info: Write TegraPlatformCompatSpec with 3701-300-0000--1--jetson-agx-orin-devkit-as-nx-16gb-.
Starting kernel post-install procedure.
Rootfs AB is not enabled.
ERROR. Procedure for A_kernel update FAILED.
Cannot install package. Exiting...
dpkg: error processing package nvidia-l4t-kernel (--configure):
installed nvidia-l4t-kernel package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of nvidia-l4t-kernel-headers:
nvidia-l4t-kernel-headers depends on nvidia-l4t-kernel (= 5.15.122-tegra-36.2.0-20231218214829); however:
Package nvidia-l4t-kernel is not configured yet.
dpkg: error processing package nvidia-l4t-kernel-headers (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of nvidia-l4t-kernel-oot-modules:
nvidia-l4t-kernel-oot-modules depends on nvidia-l4t-kernel (= 5.15.122-tegra-36.2.0-20231218214829); however:
Package nvidia-l4t-kernel is not configured yet.
dpkg: error processing package nvidia-l4t-kernel-oot-modules (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
No apport report written because MaxReports is rea
ched already
dpkg: dependency problems prevent configuration of nvidia-l4t-display-kernel:
nvidia-l4t-display-kernel depends on nvidia-l4t-kernel (= 5.15.122-tegra-36.2.0-20231218214829); however:
Package nvidia-l4t-kernel is not configured yet.
dpkg: error processing package nvidia-l4t-display-kernel (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of nvidia-l4t-kernel-oot-headers:
nvidia-l4t-kernel-oot-headers depends on nvidia-l4t-kernel (= 5.15.122-tegra-36.2.0-20231218214829); however:
Package nvidia-l4t-kernel is not configured yet.
dpkg: error processing package nvidia-l4t-kernel-oot-headers (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of nvidia-l4t-kernel-dtbs:
nvidia-l4t-kernel-dtbs depends on nvidia-l4t-kernel (= 5.15.122-tegra-36.2.0-20231218214829); however:
Package nvidia-l4t-kernel is not configured yet.
dpkg: errorNo apport report written because MaxReports is reached already
No apport report written because MaxReports is reached already
No apport report writ
ten because MaxReports is reached already
processing package nvidia-l4t-kernel-dtbs (--configure):
dependency problems - leaving unconfigured
Processing triggers for nvidia-l4t-initrd (36.2.0-20231218214829) ...
nv-update-initrd: Updating /boot/initrd from /etc/nv-update-initrd/modules for kernel version 5.15.122-tegra..
Add /lib/modules/5.15.122-tegra/extra/drivers/net/ethernet/nvidia/nvethernet/nvethernet.ko
Add /lib/modules/5.15.122-tegra/extra/drivers/nvpps/nvpps.ko
Add /lib/modules/5.15.122-tegra/extra/drivers/firmware/tegra/ivc_ext.ko
Add /lib/modules/5.15.122-tegra/extra/drivers/staging/platform/tegra/gte/tegra194_gte.ko
Add /lib/modules/5.15.122-tegra/modules*
Add /lib/modules/5.15.122-tegra/kernel/drivers/nvme/host/nvme.ko
Add /lib/modules/5.15.122-tegra/kernel/drivers/nvme/host/nvme-core.ko
Add /lib/modules/5.15.122-tegra/kernel/drivers/nvme/host/nvme-fabrics.ko
Add /lib/modules/5.15.122-tegra/kernel/drivers/pci/controller/dwc/pcie-tegra194.ko
Add /lib/modules/5.15.122-tegra/kernel/drivers/phy/tegra/phy-tegra194-p2u.ko
Add /bin/sh
Add /lib/modules/5.15.122-tegra/kernel/drivers/usb/gadget/udc/tegra-xudc.ko
Add /lib/modules/5.15.122-tegra/kernel/drivers/usb/typec/ucsi/typec_ucsi.ko
Add /lib/modules/5.15.122-tegra/kernel/drivers/usb/typec/ucsi/ucsi_ccg.ko
Add /lib/modules/5.15.122-tegra/kernel/drivers/usb/typec/typec.ko
Cleaning up the temporary directory for updating the initrd..
Errors were encountered while processing:
nvidia-l4t-bootloader
nvidia-l4t-kernel
nvidia-l4t-kernel-headers
nvidia-l4t-kernel-oot-modules
nvidia-l4t-display-kernel
nvidia-l4t-kernel-oot-headers
nvidia-l4t-kernel-dtbs
E: Sub-process /usr/bin/dpkg returned an error code (1)
Copilot に聞いてみたが、よく分からん
- Jetson Orin NX のエミュレーションモードでセットアップされている
- https://www.macnica.co.jp/business/semiconductor/articles/nvidia/142283/
- https://developer.nvidia.com/blog/emulating-an-nvidia-jetson-orin-nx-using-the-nvidia-jetson-agx-orin-developer-kit/
- https://developer.nvidia.com/blog/develop-for-all-six-nvidia-jetson-orin-modules-with-the-power-of-one-developer-kit/
- JetPack 6.0 Developer Preview
というのが何か影響しているかも...
経緯としては、展示会で使用するデモ機が Jetson Orin NX で、
今回用意できたデバイスがハイエンドモデルである Jetson AGX Orin だったため、
前者の性能になるようにエミュレートしていたのだが、
また変な不具合が発生して止まると嫌なので、
一旦は SDK Manager で JetPack 5.x の最新版を普通に再インストールしてみる!
備考 : 各種モデルをダウンロードしていると64GBの内臓ストレージはすぐに使い切ってしまうので、NVMe SSDを増設してそちらにOSをインストールする
- Jetson AGX Orin
- Jetson Orin NX
で動作するモデルにそこまで差は無いと思われるので、
前者に比べて、後者だとFPSが30%落ちる、というような想定で進めてみる。
(実際どれくらいの性能差があるのかよく分からんけど...)
の (2) How to use SDK Manager to Install JetPack Components を参考にセットアップを行う
-
Jetson AGX Orin を強制回復モードで起動
-
USB Type-C を Ubuntu マシンに接続
-
認識できていることを確認
ubuntu@minipc:~$ lsusb Bus 002 Device 002: ID 0955:7020 NVIDIA Corp. L4T (Linux for Tegra) running on Tegra Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 25a7:fa61 Compx 2.4G Receiver Bus 001 Device 003: ID 8087:0026 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ここで入力する Username と Password は、現在のJetsonデバイスに設定済の値のことを指しているので注意!
USB Type-C で接続しているポートに 192.168.55.1 というアドレスが割り当てられることで通信が行えるっぽい
(なので、pingやSSHで192.168.55.1に通信が行えるのは直接接続しているUbuntuのPCだけ)
ホスト名が何故か ubuntu で設定され、SSHで接続する際にちょっと気持ち悪いので
以下のコマンドを実行してホスト名を変更
sudo hostnamectl set-hostname jetson-agx-orin
OSのバージョン情報
ryoyo@jetson-agx-orin:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
ryoyo@jetson-agx-orin:~$ uname -a
Linux jetson-agx-orin 5.10.192-tegra #1 SMP PREEMPT Mon Feb 19 20:19:53 PST 2024 aarch64 aarch64 aarch64 GNU/Linux
apt upgrade などが正常に動作するようになった!
ディスク容量を確認
ryoyo@jetson-agx-orin:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 915G 16G 853G 2% /
none 15G 0 15G 0% /dev
tmpfs 15G 36K 15G 1% /dev/shm
tmpfs 3.0G 19M 3.0G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 15G 0 15G 0% /sys/fs/cgroup
tmpfs 3.0G 16K 3.0G 1% /run/user/1000
不要なサービスを無効化
ryoyo@jetson-agx-orin:~$ systemctl list-unit-files --type=service --state=enabled
UNIT FILE STATE VENDOR PRESET
accounts-daemon.service enabled enabled
anacron.service enabled enabled
apparmor.service enabled enabled
autovt@.service enabled enabled
avahi-daemon.service enabled enabled
binfmt-support.service enabled enabled
bluetooth.service enabled enabled
console-setup.service enabled enabled
containerd.service enabled enabled
cron.service enabled enabled
dbus-fi.w1.wpa_supplicant1.service enabled enabled
dbus-org.bluez.service enabled enabled
dbus-org.freedesktop.Avahi.service enabled enabled
dbus-org.freedesktop.ModemManager1.service enabled enabled
dbus-org.freedesktop.nm-dispatcher.service enabled enabled
dbus-org.freedesktop.resolve1.service enabled enabled
dbus-org.freedesktop.timesync1.service enabled enabled
dmesg.service enabled enabled
docker.service enabled enabled
e2scrub_reap.service enabled enabled
getty@.service enabled enabled
haveged.service enabled enabled
kerneloops.service enabled enabled
keyboard-setup.service enabled enabled
l4t-rootfs-validation-config.service enabled enabled
ModemManager.service enabled enabled
network-manager.service enabled enabled
networkd-dispatcher.service enabled enabled
NetworkManager-dispatcher.service enabled enabled
NetworkManager.service enabled enabled
nv-l4t-bootloader-config.service enabled enabled
nv-l4t-usb-device-mode.service enabled enabled
nv-late-init.service enabled enabled
nv-ms-tpm-removal.service enabled enabled
nv-tee-supplicant.service enabled enabled
nv.service enabled enabled
nv_nvsciipc_init.service enabled enabled
nvcpupowerfix.service enabled enabled
nvfancontrol.service enabled enabled
nvfb-early.service enabled enabled
nvfb-udev.service enabled enabled
nvfb.service enabled enabled
nvgetty.service enabled enabled
nvmemwarning.service enabled enabled
nvphs.service enabled enabled
nvpmodel.service enabled enabled
nvpower.service enabled enabled
nvramoopsconfig.service enabled enabled
nvrtc-sync-boot.service enabled enabled
nvrtc-sync-shutdown.service enabled enabled
nvs-service.service enabled enabled
nvweston.service enabled enabled
nvzramconfig.service enabled enabled
openvpn.service enabled enabled
portmap.service enabled enabled
pppd-dns.service enabled enabled
resolvconf.service enabled enabled
rpcbind.service enabled enabled
rsync.service enabled enabled
rsyslog.service enabled enabled
setvtrgb.service enabled enabled
snapd.apparmor.service enabled enabled
snapd.autoimport.service enabled enabled
snapd.core-fixup.service enabled enabled
snapd.recovery-chooser-trigger.service enabled enabled
snapd.seeded.service enabled enabled
snapd.service enabled enabled
snapd.system-shutdown.service enabled enabled
ssh.service enabled enabled
sshd.service enabled enabled
switcheroo-control.service enabled enabled
syslog.service enabled enabled
systemd-pstore.service enabled enabled
systemd-resolved.service enabled enabled
systemd-timesyncd.service enabled enabled
ua-reboot-cmds.service enabled enabled
ubuntu-advantage.service enabled enabled
ubuntu-fan.service enabled enabled
udisks2.service enabled enabled
wpa_supplicant.service enabled enabled
80 unit files listed.
↓
ryoyo@jetson-agx-orin:~$ systemctl list-unit-files --type=service --state=enabled | cat
UNIT FILE STATE VENDOR PRESET
accounts-daemon.service enabled enabled
anacron.service enabled enabled
apparmor.service enabled enabled
autovt@.service enabled enabled
avahi-daemon.service enabled enabled
binfmt-support.service enabled enabled
console-setup.service enabled enabled
containerd.service enabled enabled
cron.service enabled enabled
dbus-org.freedesktop.Avahi.service enabled enabled
dbus-org.freedesktop.nm-dispatcher.service enabled enabled
dbus-org.freedesktop.resolve1.service enabled enabled
dbus-org.freedesktop.timesync1.service enabled enabled
dmesg.service enabled enabled
docker.service enabled enabled
e2scrub_reap.service enabled enabled
getty@.service enabled enabled
haveged.service enabled enabled
kerneloops.service enabled enabled
keyboard-setup.service enabled enabled
l4t-rootfs-validation-config.service enabled enabled
network-manager.service enabled enabled
networkd-dispatcher.service enabled enabled
NetworkManager-dispatcher.service enabled enabled
NetworkManager.service enabled enabled
nv-l4t-bootloader-config.service enabled enabled
nv-l4t-usb-device-mode.service enabled enabled
nv-late-init.service enabled enabled
nv-ms-tpm-removal.service enabled enabled
nv-tee-supplicant.service enabled enabled
nv.service enabled enabled
nv_nvsciipc_init.service enabled enabled
nvcpupowerfix.service enabled enabled
nvfancontrol.service enabled enabled
nvfb-early.service enabled enabled
nvfb-udev.service enabled enabled
nvfb.service enabled enabled
nvgetty.service enabled enabled
nvmemwarning.service enabled enabled
nvphs.service enabled enabled
nvpmodel.service enabled enabled
nvpower.service enabled enabled
nvramoopsconfig.service enabled enabled
nvrtc-sync-boot.service enabled enabled
nvrtc-sync-shutdown.service enabled enabled
nvs-service.service enabled enabled
nvweston.service enabled enabled
nvzramconfig.service enabled enabled
portmap.service enabled enabled
resolvconf.service enabled enabled
rpcbind.service enabled enabled
rsyslog.service enabled enabled
setvtrgb.service enabled enabled
ssh.service enabled enabled
sshd.service enabled enabled
switcheroo-control.service enabled enabled
syslog.service enabled enabled
systemd-pstore.service enabled enabled
systemd-resolved.service enabled enabled
systemd-timesyncd.service enabled enabled
ua-reboot-cmds.service enabled enabled
ubuntu-advantage.service enabled enabled
ubuntu-fan.service enabled enabled
udisks2.service enabled enabled
64 unit files listed.
Before
ryoyo@jetson-agx-orin:~$ free -h
total used free shared buff/cache available
Mem: 29Gi 1.3Gi 27Gi 21Mi 901Mi 28Gi
Swap: 14Gi 0B 14Gi
After
ryoyo@jetson-agx-orin:~$ free -h
total used free shared buff/cache available
Mem: 29Gi 684Mi 28Gi 26Mi 331Mi 28Gi
Swap: 14Gi 0B 14Gi
もう1台の Jetson AGX Orin にもOSインストールを実施
こちらは内蔵ストレージ(eMMC flash memory 64GB)にインストールした
ホスト名は jetson-agx-orin-32gb
とした
sudo hostnamectl set-hostname jetson-agx-orin-32gb
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p1 54G 16G 36G 30% /
none 15G 0 15G 0% /dev
tmpfs 15G 36K 15G 1% /dev/shm
tmpfs 3.0G 19M 3.0G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 15G 0 15G 0% /sys/fs/cgroup
tmpfs 3.0G 16K 3.0G 1% /run/user/124
tmpfs 3.0G 20K 3.0G 1% /run/user/1000
$ free -h
total used free shared buff/cache available
Mem: 29Gi 1.6Gi 27Gi 23Mi 1.0Gi 27Gi
Swap: 14Gi 0B 14Gi