Hello,
I recently acquired a set of ZED cameras and a capture board that I plugged on my Nvidia Xavier AGX.
I tested the whole setup and everything works fine when a screen is connected!
Now, I need to configure my board to process data in an embedded set-up, with no screen attached. That’s where the problems start. If I am correct, the SDK rely on libargus to capture camera images. Now, as far as I can understand, that library requires a display to be connected and does not accept SSH X redirection. Starting a simple image capture with the ZEDX using the C++ or python SDK, I get the following error:
libEGL warning: DRI3: failed to query the version
libEGL warning: DRI2: failed to authenticate
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 89)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 89)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)
CAMERA FAILED TO SETUP
I can find similar problems online of people using nvidia deepstream, but I struggle to find a good answer though:
Forcing the X DISPLAY index with export DISPLAY=:0.0
leads me nowhere:
nvbuf_utils: Could not get EGL display connection
(Argus) Error NotSupported: Failed to initialize EGLDisplay (in src/eglutils/EGLUtils.cpp, function getDefaultDisplay(), line 77)
(Argus) Error NotSupported: Failed to initialize EGLDisplay (in src/eglutils/EGLUtils.cpp, function getDefaultDisplay(), line 77)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 89)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 89)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)
CAMERA FAILED TO SETUP
I also tried forcing GStreamer to point to a fake screen sink with gst-launch-1.0 -v nvarguscamerasrc ! fakesink
but I don’t think I’m doing it right.
Does anyone know what can be done here? I can’t imagine no one is using the ZEDX on a Xavier without a screen. Thank you!
Hardware: 2 ZEDX camera, 1 stereolabs GMSL2 capture board, 1 Nvidia Xavier AGX
Software versions: Linux L4T 35.1.0, JetPack 5.0.2, linux kernel 5.10.104-tegra, CUDA 11.4.14, ZED SDK 4.0.5, ZEDX driver 0.5.4