Jetson x ZED X Mini headless argus error

Hello,

I have a Jetson Orin Nano connected to the ZED X Mini via Mono card. I am getting the following error when attempting to use the camera after installing the most recent (5.0.5) SDK and driver (1.3.1).

(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 93)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)

I had this issue about a month ago, using the dummy display port fixed it, but the problem came up again and the dummy display port is not fixing it. The problems started after doing a software update on my Jetson Orin Nano devkit, I assume that changed some dependencies, etc.

I am running Jetpack 6.2.1, and am operating headless using nomachine. This is a must as I am using the jetson orin nano x ZED X Mini combo embedded in a robotic system. Any suggestions?

Hi @nikalitt1
Welcome to the Stereolabs community.

This support page will help you understand and solve your problem:
https://support.stereolabs.com/hc/en-us/articles/28103346502167-Why-can-t-I-use-the-ZED-X-camera-with-ssh-X-in-headless-mode

Hello @Myzhar

Like I said in my post I already have a dummy display port connected, the exact one in that support page, still getting the Argus error. The display port stopped working after a software update on my Jetson Orin. Do you know if the update my have changed something on the Jetson stopping passive dummy DP from working? Do I need to get an active dummy DP for the ZED X Mini to initialize properly? I have already debugged pretty much any other issue I could think of both hardware and software fixes that are on the Stereolabs community.

Cheers,

Nika

Hello Everyone,

I figured out a solution so I wanted to post this incase anyone else runs into a similar issue. I am still not sure what exactly caused the dummy display port to not work as it was previously. Although I believe it was either an update on the Jetson Orin Nano Devkit or Nomachine, as it stopped working immediately after both were updated.

Solution: because Argus requires a GPU-backed display when running in headless mode a dummy display port is required to ensure it initializes properly. With the recent update I believe the Jetson was booting into multi-target.user (console mode) so no physical desktop is detected even with the dummy display port(dp) connected. Since it boots up like this when Nomachine is started it creates a virtual desktop (:1001) so Argus cannot initialize EGL while operating in a virtual desktop, as it is not a GPU-backed display. In order to fix this you need to change the Nomachine config files on your Jetson Orin Nano to attach to the existing physical display(dummy dp) and prevent Nomachine from creating a new virtual display. To do this, in a terminal open the config file with the following command:

sudo vi /usr/NX/etc/server.cfg

Press i to enter insert mode and add the following anywhere:

PhysicalDesktopSharing 1
VirtualDesktopSharing 0

Press esq then :wq to exit and save the config file. Then restart the Nomachine server with the following command:

sudo /usr/NX/bin/nxserver --restart

Next do the following two commands to ensure the GUI(gdm3) starts at boot:

sudo systemctl set-default graphical.target

sudo systemctl enable gdm3

Finally you can do sudo reboot and Nomachine should attach to the existing physical display (dummy dp) and Argus can now initialize properly.

If you do the following command you can check which display Nomachine is connected to:

echo $DISPLAY

If the output is :1001 its a virtual display(won’t work), if its :0 you should be good to go.

Thanks, I hope it helps!

2 Likes

Thank you for the detailed explanation of the solution to your problem.