Restarting zed_x_daemon and nvargus-daemon.service doesnt work when unplugging and replugging the cameras

Hi @Myzhar ,

I’m currently running reliability tests using the ZED X Mini GMSL camera connected to a Jetson AGX Orin platform. During testing, I observed that if the GMSL cable is unplugged while the streaming script (from this example) is running, the camera attempts to reboot but eventually times out.

After reconnecting the GMSL cable, we restart jetson_clocks, nvargus-daemon.service, and zed_x_daemon. While ZED_Explorer -a detects the cameras, we are unable to view the live feed within ZED Explorer or restart the streaming script successfully. The only reliable workaround we’ve found is to perform a full Jetson reboot.

Is there an alternative method to recover the camera without rebooting the Jetson? Any guidance or suggestions would be greatly appreciated.

1 Like

Hi @abhishekpavani

This is the expected behavior.

The only action that is required when the hardware configuration changes is the reset of the ZED X Driver.
You must use the command sudo service zed_x_daemon restart and wait for at least 25 seconds to allow the driver to reconfigure.
This normally allows you to recover the camera.

Hi @Myzhar , I tried sudo service zed_x_daemon restart and waited for 25 seconds(even longer) but am still not able to start the streaming back again. I had to restart the jetson to be able to stream the camera.

This is what I see when I try to start the stream again after restarting the zed_x_daemon service

user@jetson:~$ python3 ./streaming_sender.py 59819861 20000
Starting the camera...
[2025-05-29 15:51:41 UTC][ZED][INFO] Logging level INFO
[2025-05-29 15:51:41 UTC][ZED][INFO] [Init]  Depth mode: NONE
[2025-05-29 15:52:02 UTC][ZED][ERROR] [ZED] Cannot initialize the camera.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found

When this situation appears, to understand what’s happening at the driver level, please run sudo ZED_Diagnostic --dmesg and send me the dmesg.log report that it generates.

Here is the dmesg.log. The log was generated after I did sudo service zed_x_daemon restart and waited for 25 seconds
dmesg_1.log (130.8 KB)

The cameras are detected by the Driver.

Can you confirm that you are disconnecting the camera while it’s still open by the ZED SDK, and then you reset the Driver?
Are you closing the application before resetting the driver?

I disconnect the cameras while still streaming the cameras using the python script.

I kill the streaming script, plug the cameras back in and then restart the zed_x_daemon as you suggested.

Hi @abhishekpavani
as you know, GMSL2 cameras are not plug-and-play.
If you disconnect a GMSL2 camera while the driver keeps it open, it takes a while to detect the issue and recover from it.
Normally, the ZED X Daemon restart should allow a quick recovery of the full functionalities, I reported the described procedure to the team to replicate it and detect eventual issues while recovering the camera.

1 Like