Hello,
I am using a Jetson Orin Dev Kit and a ZED camera, and sometimes the camera is not detected as a CUDA capable device and can’t be opened. The following command fails with an error :
> /usr/local/cuda/bin/__nvcc_device_query
/usr/local/cuda/bin/__nvcc_device_query failed to call cudaLoader::cuInit(0) with error 0x64 (CUDA_ERROR_NO_DEVICE)
This depends on the way I turn the Jetson board on :
- If I perform a soft reboot with
sudo reboot nowI have no issue - If I perform a soft shutdown and restart the board with the power button, I get the error
My environment is the following :
- Nvidia Jetson Orin with Jetpack 7.2
- Isaac ROS 4.6.0.0 installed in docker
- Added the default ZED layer to the docker image in order to install ZED SDK v5.2 and ZED ROS2 wrapper v5.2
- ZED Driver v1.4.3
- ZED X camera plugged to the Jetson Devkit using a ZED Link Mono capture card
I noticed a few things about this issue.
First, the camera is always correctly detected outside of the docker container, according to the dmesg logs :
[ 17.701310] sl_max9296 10-0048: sl_max9296_get_cam: zedx camera identified via eeprom
[ 17.701564] sl_max9296 10-0048: sl_max9296_probe: zedx camera connected to this port
[ 19.150443] sl_max9295 10-0062: probe_serializer: Serializer for zedx detect success
[ 19.171783] zedx 10-0020: Driver Version : v1.4.3
[ 19.172088] zedx 10-0020: tegracam sensor driver:video2_v2.0.6
[ 19.405037] tegra-camrtc-capture-vi tegra-capture-vi: subdev zedx 10-0020 bound
[ 19.412820] zedx 10-0020: ZED-X sensor initialisation done
[ 19.529241] zedx 10-0020: zedx_probe: Serial Number : 48331234
[ 19.529300] zedx 10-0020: zedx_probe: success
[ 19.530207] zedx 10-0028: Driver Version : v1.4.3
[ 19.530359] zedx 10-0028: tegracam sensor driver:video0_v2.0.6
[ 19.772642] tegra-camrtc-capture-vi tegra-capture-vi: subdev zedx 10-0028 bound
[ 19.773675] zedx 10-0028: ZED-X sensor initialisation done
[ 19.897462] zedx 10-0028: zedx_probe: Serial Number : 48331234
[ 19.897569] zedx 10-0028: zedx_probe: success
Secondly, when the issue occurs I can always see that the ownership of the /dev/nvhost* files are set to root:root instead of root:video inside the docker container.
For example, with the file /dev/nvhost-gpu I have the following permissions with a working system :
crw-rw---- 1 root video 493, 1 Sep 23 15:56 /dev/nvhost-gpu
But I get this when it fail to open the camera :
crw------- 1 root root 493, 1 Sep 23 15:56 /dev/nvhost-gpu
Lastly, I noticed the issue never happens when I plug a monitor to my dev kit. However as soon as I plug it out and restart the board using the power button, it fails again.
It’s also interesting to note that this error does not occurs on every power button boot, it feels quite random
This makes it quite complicated to debug, and I was hoping someone could help me with this here ?
Thank you for your time,
BR