PXE Installation of Jetsons

Hallo,

I bought a new jetson orin nano developer kit. I would like to install it completely remote, via PXE. I know that there is a documentation available describing the most important steps. I have already a PXE server up and running and the jetson can contact it.

I downloaded the Jetpack 5.1.2 and unpacked the Linux4Tegra folder. However, I do not know which files I have to place where.

Is it even possible to install the device completely via PXE? Or do I have to do some initial flash commands using the USB interface?

1 Like

Hi,

Please follow the guide to setup PXE server.
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/FlashingSupport.html?highlight=cpio#configuring-a-pxe-boot-server-for-uefi-bootloader-on-jetson
You will still need to have the bootloader flashed into your Jetson device, which is stored in the QSPI memory on the module, so you don’t need other stuff like NVMe or USB drives.

sudo ./flash.sh --no-systemimg -c bootloader/t186ref/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit mmcblk1p1

1 Like

Thank you. To be more specific:

I downloaded the sample rootfs. According to the link you guided me to, I have to provide additionally:

  • The file “efi/grubnetaa64.efi.signed”

Where can I find it? My rootfs/boot directory is still empty.

In the documentation, there is also this sentence: “The Kernel and initrd can be taken from the board support package directory as Image and initrd and are placed in the directory to which grub.cfg points”.

In the kernel directory of my Linux4Tegra, I have a file called “Image”. As far as I understand the sentence from above, grub has to point to this file, ok. What is meant with initrd? Where I can find it?

1 Like

Have you run sudo ./apply_binaries.sh yet?

1 Like

No, I have not run it yet. Does it build the contents of the boot folder?

1 Like

YES.
It’s required.
initrd image will be located at Linux_for_Tegra/rootfs/boot/initrd.
For GRUB support, please refer to:
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/Bootloader/UEFI.html#grub-support

1 Like

Thank you for your comments. I was able to initiate the boot process. Grub showed up and I chose the configuration I copied from the documentation. Afterwards, the jetson console started to initialize different things, but seems to get stuck at a certain point. I attached a screenshot of the latest output. By looking at it, is there something obvious going wrong? In my opinion, it might be that the script is still running, but I am not sure.

Please don’t put screenshots.
Attach text files instead.

Ok, I will see if there is a way to save the output as a text file. While installation runs, input is blocked.

Just to make sure that nothing is missing:

  1. I downloaded the sample fs from https://developer.nvidia.com/embedded/jetson-linux-r3541
  2. I ran the apply_binaries.sh script
  3. I put the Image and initrd files from the rootfs/boot/folder to the tftp directory
  4. I made sure that the complete rootfs is available as NFS
  5. I configured grub and the dhcp server

Because the tftp server can be contacted and the grub screen is running, I think that the tftp server, the dhcp server and grupb are configured correctly. After choosing the jetson configuration from grub, there was also a message indicating that the nfs could be contacted.

Did I forget to copy any necessary files or is there another script like apply_binaries.sh I have to run first?

Attached you can find the whole console output of the current run as a file.
output.txt (127.8 KB)

Can you please follow this page and try again?
In case there is anything different from your previous attempt.
https://elinux.org/Jetson/L4T/peripheral/#PXE_boot

Hi. It was not necessary to try again. I noticed that the terminal was waiting for a display. After connecting the monitor, I saw the ubuntu screen waiting for user configuration. So everything worked, basically. However, is there a way to automate user configuration or enter everything using the serial interface? In the future, I will have to setup a lot of jetson devices simultanesously via PXE.

You can run this script to skip OEM config in advance:
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/FlashingSupport.html?highlight=default_user#skipping-oem-config

I ran the script and flashed the device afterwards again. I updated the files on the tftp server. Unfortunately. OEM installation is not skipped. Any further ideas?

Nevermind, I flashed for a second time and now it worked. Thank you very much for your help, you can close this ticket now.

Just as a feedback: I appreciate that the documentation is very detailed and packed with lots of information. I recommend however to rearrange some parts. For me it was very difficult to set up the PXE process, because I more or less had to read all sections of the documentation first, even when for PXE, some steps were not necessary to do. So, although there might be the danger of repitition, I would create seperate sections for all the installation methods with complete step by step instructions.

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