Jetson-io.py crash when launch for Jetpack 6.1

Hi. I am currently using Jetson Orin Nano Developer Kit. I previously had jetson-io.py launch just fine with Jetpack 6.0 (r36.3). However, I flashed my 256Gb SD card today for Jetpack 6.1. Everything works except for jetpack-io. I will appear and crash right away when I launch it using sudo /opt/nvidia/jetson-io/jetson-io.py. Here is a little bit more debugging info.

anh-orin-nano@anh-orin-nano:~$ sudo /opt/nvidia/jetson-io/jetson-io.py
anh-orin-nano@anh-orin-nano:~$ sudo /opt/nvidia/jetson-io/config-by-pin.py 
Traceback (most recent call last):
  File "/opt/nvidia/jetson-io/config-by-pin.py", line 84, in <module>
    main()
  File "/opt/nvidia/jetson-io/config-by-pin.py", line 43, in main
    raise RuntimeError("Platform not supported, no headers found!")
RuntimeError: Platform not supported, no headers found!
anh-orin-nano@anh-orin-nano:~$ sudo apt-cache show nvidia-jetpack
Package: nvidia-jetpack
Source: nvidia-jetpack (6.1)
Version: 6.1+b123
Architecture: arm64
Maintainer: NVIDIA Corporation
Installed-Size: 194
Depends: nvidia-jetpack-runtime (= 6.1+b123), nvidia-jetpack-dev (= 6.1+b123)
Homepage: http://developer.nvidia.com/jetson
Priority: standard
Section: metapackages
Filename: pool/main/n/nvidia-jetpack/nvidia-jetpack_6.1+b123_arm64.deb
Size: 29312

Edit: This is what inside the /boot/dtb: kernel_tegra234-p3768-0000+p3767-0005-nv-super.dtb

Hi anhphanvt2705,

It seems header files are missing in your case.
Please share the result of the following command on your board.

$ ls -l /opt/nvidia/jetson-io/Headers

How did you flash the SD Card?

Are you using the SDK manager to perform this?

I have the exact same issue.

test@ubuntu:~$ ls -l /opt/nvidia/jetson-io/Headers
total 48
-rw-r--r-- 1 root root 2978 Dec 13 01:07 csi122.py
-rw-r--r-- 1 root root 1814 Dec 13 01:07 csi24.py
-rw-r--r-- 1 root root 3151 Dec 13 01:07 csi-agx.py
-rw-r--r-- 1 root root 1618 Dec 13 01:07 csi-nano.py
-rw-r--r-- 1 root root 3186 Dec 13 01:07 csi-tx1tx2.py
-rw-r--r-- 1 root root 1732 Dec 13 01:07 hdr20.py
-rw-r--r-- 1 root root 1692 Dec 13 01:07 hdr30.py
-rw-r--r-- 1 root root 1930 Dec 13 01:07 hdr40.py
-rw-r--r-- 1 root root 1857 Dec 13 01:07 __init__.py
-rw-r--r-- 1 root root 2202 Dec 13 01:07 m2kb.py
-rw-r--r-- 1 root root 2124 Dec 13 01:07 m2ke.py
drwxr-xr-x 2 root root 4096 Nov 21  2023 __pycache__

Also, I patched jetson-io.py to not catch the exception (because when it does, it clears the screen afterwards and you cannot see it anymore). I also added some info to the exception description. This is what I get when running this. It’s basically the same error:

test@ubuntu:~$ sudo /opt/nvidia/jetson-io/jetson-io.py 
[sudo] password for test: 
Traceback (most recent call last):
  File "/opt/nvidia/jetson-io/jetson-io.py", line 586, in <module>
    curses.wrapper(JetsonIO)
  File "/usr/lib/python3.10/curses/__init__.py", line 94, in wrapper
    return func(stdscr, *args, **kwds)
  File "/opt/nvidia/jetson-io/jetson-io.py", line 572, in __init__
    self.menu = MainMenu(stdscreen, self.win, height - 4, width - 12)
  File "/opt/nvidia/jetson-io/jetson-io.py", line 430, in __init__
    self.jetson = board.Board()
  File "/opt/nvidia/jetson-io/Jetson/board.py", line 242, in __init__
    self.dtb = _board_get_dtb(self.compat, self.model, dtbdir)
  File "/opt/nvidia/jetson-io/Jetson/board.py", line 152, in _board_get_dtb
    raise RuntimeError(f"No DTB found for {model} {compat=} {path=}")
RuntimeError: No DTB found for NVIDIA Jetson Orin Nano Developer Kit compat='nvidia,p3768-0000+p3767-0005-super nvidia,p3767-0005 nvidia,tegra234' path='/boot/dtb'

I did flash using GUI sdkmanager.

Here is the result of the $ ls -l /opt/nvidia/jetson-io/Headers

anh-orin-nano@anh-orin-nano:~$ ls -l /opt/nvidia/jetson-io/Headers
total 48
-rw-r--r-- 1 root root 2978 Dec 12 19:07 csi122.py
-rw-r--r-- 1 root root 1814 Dec 12 19:07 csi24.py
-rw-r--r-- 1 root root 3151 Dec 12 19:07 csi-agx.py
-rw-r--r-- 1 root root 1618 Dec 12 19:07 csi-nano.py
-rw-r--r-- 1 root root 3186 Dec 12 19:07 csi-tx1tx2.py
-rw-r--r-- 1 root root 1732 Dec 12 19:07 hdr20.py
-rw-r--r-- 1 root root 1692 Dec 12 19:07 hdr30.py
-rw-r--r-- 1 root root 1930 Dec 12 19:07 hdr40.py
-rw-r--r-- 1 root root 1857 Dec 12 19:07 __init__.py
-rw-r--r-- 1 root root 2202 Dec 12 19:07 m2kb.py
-rw-r--r-- 1 root root 2124 Dec 12 19:07 m2ke.py
drwxr-xr-x 2 root root 4096 Dec 23 02:16 __pycache__

And I flashed the SD Card by downloading the Jetpack 6.1 (rev1) image and setup with BalenaEtcher.

Edit: I do not have a Linux system to flash it with SDK.

Try a find and see if that file is on the board.

RuntimeError: No DTB found for NVIDIA Jetson Orin Nano Developer Kit compat='nvidia,p3768-0000+p3767-0005-super nvidia,p3767-0005 nvidia,tegra234' path='/boot/dtb'

You will have to resolve that error first. Some of the symbolic links and env paths are missing from installs and you will have to set PATH to the file if it is on the board.

What file exactly are you talking about? I understand that the tool reads the board id from somewhere and tries to find a matching dtb. But even putting a matching file in /boot/dtb I was not able to make it work.

The error messages says it cannot find the DTB that it is looking. I am on jp5.1 so I cannot do the search. It is suppose to be located in

path='/boot/dtb'

If you have it that is good, the PATH env will need updated. If it is not in that path you have a problem.

Run this and see if the file is present.

find /boot/dtb/ -type f \( -name "nvidia,p3768-0000+p3767-0005-super*" -o -name "nvidia,p3767-0005*" -o -name "nvidia,tegra234*" \)

I just double-checked with a fresh flash of JP 6.1 rev. 1 on a Jetson P3767-0005 using GUI sdkmanager. First thing I did after boot was to run sudo /opt/nvidia/jetson-io/jetson-io.py. I just returns, the curses windowing is set up to clean any error message printed. This is exactly the behavior OP described. It appears as if this was not tested properly, with the new “super” DTB being used to enable MAXN, but jetson-io would have used an update that it didn’t receive.

Of course I checked that. This is not the literal name, but apparently the tool tries to guess the name from some model information it reads from somewhere. But it’s possible that this error was an intermediate one when I was trying things and the actual issue is the error “Platform not supported, no headers found!” that OP reported.

On mine it was actually missing some of the py modules.
Open up the script and see if you can import the modules.

That is possible, I did not have that error. I went into the script and started to debug it.

FWIW, I have another Orin Nano SOM without SD card slot (P3767-0005), where the “super” MAXN mode is not supported (for whatever reason, I started another thread about this). Flashing this board with the exact same procedure, the jetson-io tool works as expected. The file in /boot/dtb indicates that it is recognized as the non-super version. This also indicates that the issue is with jetson-io being incompatible with the Orin Nano Super (which curiously is just the standard dev kit Orin Nano SOM that has been sold for years with JP 6.1 rev 1).

Hi ahans123,

Do you mean the issue is specific to Orin Nano super configuration(jetson-orin-nano-devkit-super.conf)?
If so, it may be caused from something missing there. Please use jetson-orin-nano-devkit.conf as board config instead to flash the devkit.

@KevinFFF So, how should I fix the jetson-io.py issue on my Orin Nano Dev Kit? Will flashing with the jetson-orin-nano-devkit.conf remove the MAXN power mode?

There’s also MAXN mode if you flash the board with jetson-orin-nano-devkit.conf.
MAX-N is an unconstraint mode for CPU/GPU frequency.

We will verify the Jetson-IO issue with super mode config and check if it would be fixed in next release.

Thank you! How exactly do I do that? So far I have only used the sdkmanager flashing method where you don’t give a specific configuration file.

I do not have Linux OS on hand. Is it still possible to flash the mentioned conf file without a Linux host machine.

Edit: I would also appreciate a step by step guide.

Please download the BSP package from Jetson Linux 36.4 | NVIDIA Developer and refer to the steps in To Flash the Jetson Developer Kit Operating Software to setup.

You can run the following command to flash the devkit with NVMe SSD connected.

$ cd <Linux_for_Tegra>/
$ sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-orin-nano-devkit internal

We would suggest you get an Ubuntu host PC to develop Jetson device.
Or you can just refer to the instruction in Jetson Orin Nano Developer Kit Getting Started Guide | NVIDIA Developer to setup for the devkit.
For more flash related issue, I would suggest you creating another topic to discuss in details since the current topic focuses on the Jetson-IO issue.

@ahans123, can you please let me know if flashing the Jetson Orin Nano Dev Kit with jetson-orin-nano-devkit.conf fixes the jetson-io issue? Many thanks, and Merry Christmas.