Nvidia Jetson Nano OS

Hi there @Hillel – I suspect this is due to your device previously having Jetpack 4.5 installed on it, which overwrites the SPI flash with a boot setup that does not work with balenaOS. The solution is to use Nvidia SDK Manager to flash Jetpack 4.4 instead, as we discovered in this GH Issue: Support for the Jetson Nano 2GB developer kit · Issue #122 · balena-os/balena-jetson · GitHub

After Jetpack 4.4 is flashed to the board, you should be able to then boot your balenaOS SD Card. Hope that helps!

Hi there, @dtischler

I have tried your suggestion on JETSON NANO 4GB DEVELOPER KIT, but unfortunately did not work.

Do you any other suggestions on how I could solve this problem?

Thanks a lot in advance.

Hi @sali – just to clarify, is your 4gb Nano experiencing the exact same behavior as what is shown in the image above, about failing to boot and just the recovery mode options are shown? Can you post a picture of where it hangs on boot?

Also, when you tried to re-install using Nvdia SDK, are you sure you selected Jetpack version 4.4 instead of 4.5 when flashing the board?

Hi @dtischler,
My nano does not boot at all, when I try to run the balenaOS from SD Card.

The next step, was to flash Nvidia SDK (JetPack SDK 4.4 archive | NVIDIA Developer)
on my sd card, then install it on my board, and after that I would format and burn the balenaOS on the SD card and try to run it on my board.

Is this the correct procedure in order to establish the Jetpack 4.4?

@dtischler We are also struggling to get balenaOS to boot on our Jetson Nano Dev Kits (the 4GB version). While it worked for me (I had only used Nvidia’s Ubuntu image with JetPack 4.4 before and then put in the SD card with BalenaOS), it failed for my colleagues who before had used Nvidia’s Ubuntu image with JetPack 4.5. Even after flashing the Ubuntu image with JetPack 4.4 and booting it successfully and then putting in the balenaOS image, balena would not boot up for them and the screen would be stuck at the Nvidia logo. My colleagues will post here soon to elaborate on the details.

In the meantime I would like to ask: What exactly are the differences between JetPack 4.4 and 4.5 when it comes to the boot setup? And does BalenaOS override the SPI flash like the Ubuntu image with JetPack 4.4 does?

This seems particularly important once we want to roll out Balena in production: Would we have to boot up the Jetson with JetPack 4.4 first before we flash our Balena image in order for the latter to work?

Hey @codethief, welcome to the Balena forums!

From what you mentioned it looks like your colleague’s board might have not been restored to 4.4.1. At least for now Balena does not overwrite the SPI flash for the Jetson Nano devices, that’s why the SPI contents have to be compatible with the L4T on the sd-card. Jetpack 4.5 is the first release that came with a spi flash release that’s not backwards compatible.

So, to answer @sali’s question and yours, it’s not necessary to write the entire Jetpack image before booting Balena, it’s enough to write the matching SPI flash. For this you would grab the 32.4.4 BSP Nano archive from here , unpack it and then use the flasher script:

cd Linux_for_Tegra && sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1

After flashing is completed, you can power off the device, swap the sd-card with the one that contains the BalenaOS image, connect an ethernet cable and boot the board. If you connect your HDMI cable and use a production image you should be able to see the BalenaOS logo, on the dev images you will have a hostOS console.

Hi @acostach, thank you for responding so quickly and, also, for the warm welcome! :slight_smile:

My colleagues are currently trying the flasher script, as you suggested. I will report back.

At least for now Balena does not overwrite the SPI flash for the Jetson Nano devices, that’s why the SPI contents have to be compatible with the L4T on the sd-card.

I see. So when it comes to setting up an entirely fresh Jetson Nano, the SPI memory will have to be flashed before an SD card with BalenaOS will work. Does this also apply to boards with the production module or is this a DevKit-specific thing?

@codethief the SPI memory needs to be flashed only it has been previously flashed by the user with JP4.5, or if it came pre-flashed with JP4.5 from the factory. As far as I know all Jetson Nanos that have been sold before JP4.5 was released, so starting with L4T 32.1, have been working without the need to re-flash the SPI.

For the production module both the spi and the emmc get flashed at once. If you want to flash balenaOS on that one you can choose the Nano eMMC image in the dashboard and use jetson-flash.

Perfect, thank you!

A few seconds ago, my colleague reported that

cd Linux_for_Tegra && sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1

indeed did the trick! Thanks a lot!

PS: Can you give an estimate yet of when the Docker base images will be upgraded to JetPack 4.5? We would like to use the hardware decoder for incoming high-res camera images but in JetPack 4.4 there’s still a bug.

1 Like

Hi @codethief , glad to hear that worked! We cannot provide an estimation for that right now, it will be in the next months probably.