Docker image zed:5.3-py-runtime-l4t-r36.4 missing nvidia libraries

Hi,

I tried to use stereolabs/zed:5.3-py-runtime-l4t-r36.4 image as a base and build ZED ROS 2 wrapper on top, however I ended up with errors related to missing .so files like
```
598.1 — stderr: zed_debug 598.1 /usr/bin/ld: warning: libcuda.so.1, needed by /usr/local/zed/lib/libsl_zed.so, not found (try using -rpath or -rpath-link) 598.1 /usr/bin/ld: warning: libnvargus_socketclient.so, needed by /usr/local/zed/lib/libsl_zed.so, not found (try using -rpath or -rpath-link) 598.1 /usr/bin/ld: warning: libnvbufsurftransform.so.1.0.0, needed by /usr/local/zed/lib/libsl_zed.so, not found (try using -rpath or -rpath-link) 598.1 /usr/bin/ld: warning: libnvbufsurface.so.1.0.0, needed by /usr/local/zed/lib/libsl_zed.so, not found (try using -rpath or -rpath-link) 598.1 /usr/bin/ld: /usr/local/zed/lib/libsl_zed.so: undefined reference to `NvBufSurfaceSyncForDevice’ 598.1 /usr/bin/ld: /usr/local/zed/lib/libsl_zed.so: undefined reference to `NvBufSurfTransform’ 598.1 /usr/bin/ld: /usr/local/zed/lib/libsl_zed.so: undefined reference to `cuGraphicsMapResources’ 598.1 /usr/bin/ld: /usr/local/zed/lib/libsl_zed.so: undefined reference to `NvBufSurfaceSyncForCpu’ 598.1 /usr/bin/ld: /usr/local/zed/lib/libsl_zed.so: undefined reference to `cuDeviceGet’ 598.1 /usr/bin/ld: /usr/local/zed/lib/libsl_zed.so: undefined reference to `cuInit’
```
etc.
In the image the `/usr/lib/aarch64-linux-gnu/nvidia/` is pretty empty (just a couple of libraries), but for example stereolabs/zed:5.3-py-runtime-l4t-r36.5 version has full nvidia librararies inside usr/lib and ROS wrapper builds without any issue. If I copy those libraries from the host Jetson Orin in the image, it builds on 36.4 image too.

The question here is: why doesn’t the zed:5.3-py-runtime-l4t-r36.4 image also contain all the needed libraries as the 36.5? Sadly I need that specific one to be compatible with the host L4T.

Best regards,

fgrcar

Hi @fgrcar
to build the ZED ROS2 Wrapper you need the “devel” image, not the “runtime”:
stereolabs/zed:5.3-py-devel-jetson-jp6.2.2

Hi,

thanks for the reply. I will give a try. But out of curiosity, why does just one version newer image of the runtime docker image has everything, but 36.4 one not?

Best regards,

fgrcar

Hi,

I tried stereolabs/zed:5.3-py-devel-l4t-r36.4 and it’s the same issue, it’s also missing nvidia libraries and building the ROS packages fails with those errors.

Best regards,

fgrcar

I recommend you follow the instructions in the README file in the Docker folder of the ZED ROS2 Wrapper:

It’s also important that you link the libraries in the correct way when building: