Not able to run jetson-io.py

I am trying to modify pin configuration to use PWM using the latest Jet Pack release L4T R32.3.1.

The first command $ sudo /opt/nvidia/jetson-io/jetson-io.py gave a traceback error.

I then use $ sudo find /opt/nvidia/jetson-io/ -mindepth 1 -maxdepth 1 -type d -exec touch {}/init.py ;

After this, on running $ sudo /opt/nvidia/jetson-io/jetson-io.py, nothing happens. it just doesnt run.

Please help asap.

We just tried and saw the UI correctly.

Are you using uart, ssh or directly run it over HDMI screen with keyboard?

Hello,

I ran into the same problem. I am running with HDMI screen.
After running the command, I see a flash of grey. It is probably launched and closed immediately.

@im.bharma. Did you manage to figure out anything yet?

@WayneWWW

I added a line in the script so that the error message gets displayed.
The error is “No DTB found for NVIDIA Jetson Nano Developer Kit!”

From the board.py script:

the “model” string is: “NVIDIA Jetson Nano Developer Kit”
the “compat” string is:
"
nvidia,p3449-0000-b00+p3448-0000-b00
nvidia,jetson-nano
nvidia,tegra210
"

I had noticed previously* that the image from Nvidia website has a b00 index. However, when flashing through SDK manager, my board was recognized as a02. can it be the issue? Maybe not only the index but others strings have also changed between the releases.

could you please try with an early version Jetson Nano Developer Kit?
Thanks

*https://devtalk.nvidia.com/default/topic/1057627/jetpack-4-2-1-spi/?offset=8#reply

This should work. try it out

Please be aware that you have to use r32.3.1 if you want to run jetson-io.

Hi,

if I do what was suggested in https://devtalk.nvidia.com/default/topic/1068583/jetson-nano/jetpack-4-3-l4t-r32-3-1-released/post/5413341/#5413341 I get the file tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb back. But I use a Jetson Nano Developer Kit A02.
Can there be problems? So far I haven’t noticed anything negative.

Hi nobbyhok5p,

If still met an issue, please help to open a new topic. Thanks.

In case anyone else happens to run into this issue:

I was having this exact problem with the newest sd image (r32.3.1) on two versions of the developer board (945-13450-0000-100 & 945-13450-0000-000). The jetson-io tool would first give the ImportError “board”, and after applying the patch described in the docs the script would run and immediately close with no error messages.

I found a fix by reflashing the os using the sdkmanager, and running the command to fix the ImportError. The jetson-io tool now works as expected.

@WayneWWW @kayccc I ran into the same issue as well running the LTS r32.3.1 image, which I didn’t face when flashing with the SDK manager.

I initially got the board error then ran sudo find /opt/nvidia/jetson-io/ -mindepth 1 -maxdepth 1 -type d -exec touch {}/ **init** .py ;.

Running jetson-io now does nothing, the ui flashes for a brief 0.5 seconds and then disappears.

I’m tempted to fix the problem as CPU suggested but to reflash the image using the sdkmanager will mean I have to repeat all the provisioning steps again and is definitely the more convoluted means of installation. Can someone from nvidia address this issue? The jetson-io script was a major convenience UI utility tool for the flashing the dtb.

Is it jetson nano devkit or production module?

I’m using the b01 devkit. All r32.3.1.

I tried the SDK manager flashing method for the b01 but it seems like the sd card flashed for one device is unable to be used for another (both b01). Is this known? Its pretty weird that flashing via the SDK manager produces this outcome. The re32.3.1 images flashed via etcher don’t have this problem but are unable to launch jetson-io even after running the fix mentioned.

Well, I’m now definitely opposed to flashing via the SDK manager because I do swap sd cards between my devices fairly often. I flashed via the Nano Devkit P3448 … and not the Jetson Nano. This is a catch-22 for me because I’m definitely more inclined to want to use the official r32.3.1 images but the jetson-io bug affects my use of i2c, pwm. Is there another method to define the pinmux?

I own 2x a02s and 2x b01s

Ok I ran a pdb trace on the jetson-io script in the official r32.3.1 image (not via SDK Manager) and found that a silent error that wasn’t getting printed relating to the No DTB found for NVIDIA Jetson Nano Developer Kit! error illustrated in the second part of the troubleshooting guide.

To raise this error, just run python 3 in the /opt/nvidia/jetson-io and try to import the board file there from Jetson import board. Running board.Board() will raise the error.

So basically if you are running sudo /opt/nvidia/jetson-io/jetson-io.py and nothing is happening, or you see flashes of the UI, run the second part of the troubleshooting guide:

To resolve this issue, enter the following commands:
$ sudo mkdir /boot/dtb
$ sudo cp -v /boot/tegra210-p3448-0000-p3449-0000-[ab]0[02].dtb /boot/dtb/

Hope this helps someone else. Looks like the official r32.3.1 images are actually working and flashing via the SDK manager isn’t required (or recommended)

1 Like

Hi,

Thanks for sharing.
But actually, I think your conclusion is not correct because the real issue you should resolve is why your board does not have /boot/dtb?

I just flashed my board with sdkmanager and there is /boot/dtb.

I tried the SDK manager flashing method for the b01 but it seems like the sd card flashed for one device is unable to be used for another (both b01). Is this known?

Also tried with such case and it can work. I guess this issue is also due to the missing of /boot/dtb on sdcard.

Hmm, I actually posted this on a new thread and it seems your statement directly contradicts @kayccc:

Well I really don’t know how to explain why there’s a missing /boot/dtb,The official images were downloaded off nvidia’s down center repository and SDK manager manages their own sdkm downloads. Perhaps you can share a link of the image you’ve flashed and I’ll have a go at it?

Hi,

There is no contradiction. Let me explain what happened on that topic and you’ll understand.

There are two parts on Jetson Nano devkit that would make the boot from sdcard work: the QSPI and sdmmc(sdcard).

When you plug a sdcard, it only changes the sdmmc part and never update the bootrom on QSPI. The reason why your out-of-box devkit can just work with sdcard image is because the factory already flashed one bootrom to QSPI.

However, after later release, there are some incompatible issue in the bootrom of QPSI and cause boot failure. This does not help if you just keep changing sdcard or modify anything on sdcard because the problem is never in sdcard.
You have to update the QSPI bootrom.

And the only method on your side to do such update is through sdkmanager. Thus, what we want to fix on that board is the QSPI but not your sdcard.

Well I really don’t know how to explain why there’s a missing /boot/dtb ,The official images were downloaded off nvidia’s down center repository and SDK manager manages their own sdkm downloads. Perhaps you can share a link of the image you’ve flashed and I’ll have a go at it?

Actually, I am using sdkmanager too, set up 8 jetson devices and all of them have /boot/dtb. Your another post indicates you are putting your rootfs on usb storage. Do you use the same environment here?

1 Like

Hey thank you for the enlightening explanation. That clears up a lot. I’m running several devices right now (development and test kits) to make sure I don’t blow up my development progress. So to be clear, I’ve got a development setup that I run my code on, and another test board to test any destructive/compatibility changes. I’ve actually recently ported the codebase to the b01.

You are using the latest SDK Manager? So should I just take all my devices and update the bootroms with the SDK Manager? Which part of the flashing process does this take place?

I cannot guarantee whether “every” board needs to do this flash because the factory may already updated their image on product line.

If you plug your sdcard on it and the boot log stuck somewhere before booting into kernel, then it is probably that incompatible issue. Dump the serial console log may help tell this case.

You are using the latest SDK Manager? So should I just take all my devices and update the bootroms with the SDK Manager? Which part of the flashing process does this take place?

Yes, I use the latest sdkmanager. Actually, if you already installed sdkmanager once, you could just use the flash.sh under “Linux_for_Tegra” folder on your host to do the flash and it saves time.

sudo ./flash.sh -r board_name mmcblk0p1 (-r means reusing the existing system.img)

You have to write the correct board name for jetson nano. The quick start guide on download center could teach you how to use flash.sh.

And you could refer to flash.xml under Linux_for_Tegra/bootloader to check what partitions are on QSPI while others are on sdmmc (sdcard).

Unfortunately this part cannot be separate so flash will also erase and update new content on your sdcard. You have to be careful. If you have some important data on sdcard, you could firstly follow the instructions in this page to do the cloning.

https://elinux.org/Jetson/Clone

1 Like

Yes! So all the images I’ve flashed with the sdkm have their /boot/dtb and I can confirm that it now works . You still have create the __init__.py in the jetson-io folders but other than that I don’t see any other major issues.

Thanks again @WayneWWW

1 Like