FOG on Jetson Orin NX ARM64
-
Hello everyone,
I’m trying to set up my FOG server (1.5.10) to upload/deploy Ubuntu ARM images to my ARM devices; as of now, I’m focusing on trying to deploy to my Jetson Orin NX which is arm64. I’m able to successfully upload/deploy amd64 images to my amd64 devices without any issues, so that’s set up properly.I am not sure if this is the right way to do it, but in order for me to switch from PXE Booting between ARM and AMD, I’m going into my FOG server’s /tftpboot folder and overwriting ipxe.efi with /tftpboot/arm64-efi/ipxe.efi when I deploy to ARM. When I need AMD, I overwrite the ipxe.efi file with a backup file I copied for AMD.
When I PXE boot my Orin, it displays the FOG menu and I’m able to authenticate in when trying to deploy an image. However, after selecting an image, or even selecting any other option like Full/Quick Host Registration, it says it’s able to load arm_Image and arm_init.cpio.gz fine, but then freezes a few lines later:
So far, I have tried boot with these Kernels:
5.15.98
6.1.22
6.1.89
6.6.49
6.6.69
I’ve also tried compiling my own following this guide: https://docs.fogproject.org/en/latest/kb/reference/compile-fos-kernel/So far, all of them lead to the same results.
I took a look at this thread, relating to a different model of Orin:
https://forums.fogproject.org/topic/17772/fog-on-orin-agx/2Do you guys think this issue is also related to the known issue with hyper-v/proxmox and efi loading? Or am I missing something on my setup?
Thanks in advance
-
@Nyeine I’ve got an Orin Nano at home and an AGX at work. I’m not sure you can image them with FOG. TBH I have never tried, so it would be interesting to find out.
One comment before I get too deep into this, if you use for your dhcp server either WIndows 2016 or later or linux as your dhcp server, you can setup profiles with your dhcp server to automatically send the right ipxe boot loader based on the pxe booting computer. You won’t need to mess with the ipxe.efi files like you have. You can surely continue to do it that way, I just wanted to let you know there might be an easier way to go about it.
So you are able to pxe boot into the iPXE boot loader, as soon as you pick a menu option that is where the wheels come off, so to say. Looking at the screen shot the process is failing at the handoff between ipxe and FOS Linux (arm_Image+arm_init). Its hard to tell if its ipxe or fos linux at fault.
I have a process to create a debug usb image for x64, but I haven’t tried to create one for arm. In theory if you have a working Jetson Orin running ubuntu you should be able to follow this to create a FOS linux usb boot image: https://forums.fogproject.org/topic/7727/building-usb-booting-fos-image In your case you don’t want to use bzImage and init.xy but use the arm_Imag… (to replace bzImage) and arm_init (to replace init.xz). The idea here is to see if you can select register from the grub menu to get FOS Linux to boot on the jetson nx. If it can then the issue is with ipxe. If it doesn’t hopefully you can debug with the usb boot image.
You may need to build a custom linux kernel for the Jetson. Just for reference https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/Kernel/KernelCustomization.html