Upgrade jetpack 4.6(Rev3) to 4.6.2 without reflashing(or at least backing up my python builds)


Is it possible to upgrade my jetpack4.6(rev3) install to jetpack4.6.2 performing steps like the ones described in: How to Install JetPack :: NVIDIA JetPack Documentation
I have a NX16 on a Carrier board from Auvidea and they suggested that I flashed with jetpack 4.6(rev3), but now that I have compiled all of my modules for my python3.9 (Pytorch, Open3d and Realsense) I have realized that I have an OpenGL es issue in Jetpack which can be seen by running glmark2-es2

Error: eglGetDisplay() failed with error: 0x3000
Error: eglGetDisplay() failed with error: 0x3000
Error: main: Could not initialize canvas

The error also appears in Open3D when I try to create an instance of the google filament rendering engine.
I thought this might have been due to me using nomachine to rdp control my jetson, but I have tried hooking up a HDMI Monitor and the error remains.
I feel like I have tried everything, but I can’t seem to fix this issue, so I wanted to try updating my jetpack install.
I tried sudo apt-get install nvidia-jetpack, but I already have the latest version

sudo apt list -a nvidia-jetpack
nvidia-jetpack/stable,now 4.6-b199 arm64 [installed]
nvidia-jetpack/stable 4.6-b197 arm64

Is there a way for me to upgrade my jetpack to test if the OpenGl ES issue will be solved without wiping my memory and having to recompile all of my modules again to support cuda on arm?

Never mind I guess.
I wanted to try and disable NoMachine to see if the device would boot on the actual xserver when I had a monitor connected.
Now it just boots into a vegetable desktop state where I can’t do anything and it won’t register my mouse and keyboard(because it is a virtual desktop)…
Guess I have to reflash anyway

You would still have a serial console access if you want to attempt repair (or reversal of your changes). Likely ssh also still works if you have wired ethernet (Wi-Fi tends to activate upon login to the GUI, although that can be changed).

It might be better to re-flash the system through SDKManager, to have a clean environment.

I have reflashed and am in the midst of setting everything up again.
It just takes so long to compile everything 😲😉

Once it is working as you want I’d suggest making a clone of the rootfs/APP partition. You can use that when flashing, and if desired, the raw version of the clone can be loopback mounted and updated with rsync over the network at a later date.

The problem still remains where I can’t run OpenGL ES without a monitor connected.
I have tried with the xorg dummy driver, setting up VNC without a monitor connected and starting Xserver without monitor connected, but all of them have failed.
I am starting to think that getting a dummy hdmi dongle is the only solution, but I can’t grasp why it is not possible with a software solution.

OpenGL ES is an additional library on top of the GUI environment. If one uses the NVIDIA driver for a real monitor, then they include this. I don’t know where this is supplied for a VNC setup, but this would very likely be some “optional” addition and not a bug. The problem I see is that the provided driver needs to be the NVIDIA GPU for the VNC, or else you will software render any OpenGL ES content without the GPU; this in turn hints that if CUDA or many other GPU operations are bound to that context, then they also won’t use the GPU (just because it doesn’t modify the video framebuffer does not mean CUDA doesn’t use the GPU).

Anyone know if or how one can get OpenGL ES hardware rendered to a VNC server?