Can not flash jetson Orin NX

Good day to all.
I’ve got NVIDIA Jetson Orin NX (16GB ram) and at some point in time the OS and some packaged got messed up and I’ve decided to run a fresh install on L4T.
Originally I have just plugged a clean nve ssd and the system got burned at first boot. So my idea was to repeat that once again. I’ve formatted an ssd and started the system - nothing worked out.
So I’ve started a long story to flash this device. I don’t have an Ubuntu but I do have a mac. So I’ve launched Ubuntu in vmware downloaded BSP and sample rootfs, put board in recovery mode, connected usb to host and ran those commands.

sudo tar -xjf Jetson_Linux_R35.3.1_aarch64.tbz2
cd Linux_for_Tegra/rootfs
sudo tar -xfj ../../Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64.tbz2
cd ../
sudo ./apply_binaries.sh
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" --showlogs --network usb0 p3509-a02+p3767-0000 internal

The process fails with

gzip: /home/osboxes/orin_install/Linux_for_Tegra/kernel/Image: not in gzip format
/home/osboxes/orin_install/Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_make_recovery_img_dtb.sh: line 177: strings: command not found
ERROR: failed to get kernel version from /home/osboxes/orin_install/Linux_for_Tegra/kernel/Image
Error: failed to generate images
Cleaning up…

Any ideas how to fix that and make the board working are much appreciated.

strings: command not found

This is the error.

I think the dependencies are not installed. Maybe you can try to use skdmanager and it will install all the dependencies on your host.

There is a problem with sdkmanager - I don’t have a host with Ubuntu - only a virtual machine and as far as I have seen on the forum - sdkmanager does not work from VM.

Is there any way to flash jetson orin NX in my case (I just have a mac laptop and a server with archlinux)?

Can I flash orin nx booting from USB?
Or can I flash with docker sdkmanager image?

docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ -v /dev:/dev -v /media/$USER:/media/nvidia:slave
--name JetPack_NX_Devkit --network host sdkmanager --cli install --logintype devzone --product Jetson --target P3767-0000 --targetos Linux --version 4.4.1 --select 'Jetson OS' --deselect 'Jetson SDK Components' --flash all --license accept --staylogin true --datacollection enable --exitonfinish

What version should I pass in

–targetos Linux --version 4.4.1

if I am looking for L4T 35.3.1?

Have never thought it will be that hard to install a base image.

Thanks a bunch.

sdkmanager does not work from VM.

I think you misunderstood something. It is not sdkmanager does not support VM.

SDKM is just a GUI tool to wrap up the command line tool inside. The point “sdkm does not support vm” actually means “the command line tool inside does not support vm”.

We don’t know whether the command line tool can work fine on your vm or not. All the behaviors on VM are not deterministic. And this comes to unstable usb connection with jetson and VM host.

My purpose here is just let sdkmanager install dependencies on your host. It has nothing to do with usb connection. Thus, it has nothing to do with whether vm + sdkm can work fine or not.

Sorry I don’t understand. My host is a macbook - sdkmanager does not support it.
I have installed sdkmanager inside ubuntu vm and it does not see jetson orin.
Any advice how to bring orin NX back to life without ubuntu host pc is appreciated.
To me it is still a mystery how orin could run initial setup on a clean SSD without any intricate flashing procedure and why that does not work if I just change SSD…

Hi,

My previous comment means: actually it is not 100% “sdkmanager won’t work on vm”. Some users still have sdkm works with vm fine.
Your earliest flash comment only indicated some files are missing and the flash process did not even start. You didn’t mention your ubuntu vm does not detect jetson at that time. So I felt you can still try sdkm.

If you are sure about your ubuntu vm cannot detect jetson in recovery mode, then you can ignore all the comments I shared above.
But please be aware that if you are newbie to jetson flash, then you need to confirm if you really knew some terms I am talking about here (e.g. recovery mode)

And sorry that if you want to make sure having a clean setup, then you need to native ubuntu 18.04 host here to flash.
My personal suggestion here is always prepare a x86 ubuntu PC if you want to use jetson platforms.

Thanks for response.
Yeap. I do know the recovery mode and I have put a jumper on 9 an 10 pins.
Now I have an archlinux machine with sdkmanager docker running on-top.
My current intention is to use this command inside the docker to flash attached jetson orin.

sdkmanager --cli install --logintype devzone \
--product Jetson --version 5.1.1 \
--targetos Linux --host  --flash all \
--additionalsdk 'DeepStream 6.2'  \
--target P3767-0000 --downloadfolder /nvidia \
--staylogin true  \
--license accept

But one thing I don’t quite understand - how does sdk manager identify what divice is associated with jetson orin?
lsusb does not show any nvidia devices.
I am running docker with the following options

docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb/ -v /dev:/dev

Finally I was able to flash jetson orin NX.
There was a problem with usb cable and once I changed it lsusb command showed NVIDIA device. I have used graphical sdkmanager to flash orin - it has detected the board worked till the end but the device still would not boot and was not flashed.
So then I tried once again that command line approach:

sudo tar -xjf Jetson_Linux_R35.3.1_aarch64.tbz2
cd Linux_for_Tegra/rootfs
sudo tar -xfj ../../Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64.tbz2
cd ../
sudo ./apply_binaries.sh
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" --showlogs --network usb0 p3509-a02+p3767-0000 internal

Originally I had an error and the script would not run even though sdkmanager was installed prior to running the script - still some dependencies were not present.
So just running

sudo apt-get install binutils

was enough to make the flashing working.
The final command worked 10-15 mins or so and it has done the job.

So all in all - IMHO I don’t see any reason why setup should be that confusing and complicated. Why there is no just a bootable image for USB-drive?

1 Like

Due to the boot flow/software on jetson, a bootable image or a usb drive won’t have a really clean setup for any jetson platform.

For example, jetson orin nano supports sdcard because there is a memory on the device which stores bootloader software. A usb drive can only work after such bootloader software exists.
SDKM will reflash those bootloader software.

simple and not confusing do not go with linux.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.