DeepStream v6.0.1 plugins are blacklisted in the deepstream-l4t samples container on AGX Xavier

Hello!

• Hardware Platform (Jetson / GPU): Jetson AGX Xavier
• DeepStream Version: 6.0.1 (deepstream-l4t samples container)
• JetPack Version (valid for Jetson only): 4.6.1
• Issue Type( questions, new requirements, bugs): questions

I am using the [nvcr.io/nvidia/deepstream-l4t:6.0.1-samples] (https://catalog.ngc.nvidia.com/orgs/nvidia/containers/deepstream-l4t/tags#:~:text=1%20Architecture-,6.0.1-samples,-03/09/2022) on the Xavier AGX and I am trying to run the deepstream-app reference application and I see the following error message.

$ deepstream-app -c deepstream/deepstream-6.0/samples/configs/deepstream-app/source6_csi_dec_infer_resnet_int8.txt
deepstream-app: error while loading shared libraries: libnvinfer.so.8: cannot open shared object file: No such file or directory

When I run gst-inspect-1.0 nvinfer I get a message that says: No such element or plugin 'nvinfer'.

I checked to see if the plugin was blacklisted and I ran gst-inspect-1.0 -b and I find that there are 16 plugins blacklisted:

...
(gst-plugin-scanner:35): GStreamer-WARNING **: 17:13:58.900: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_infer.so': libnvparsers.so.8: cannot open shared object file: No such file or directory

(gst-plugin-scanner:36): GStreamer-WARNING **: 17:13:59.198: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_infer.so': libnvparsers.so.8: cannot open shared object file: No such file or directory
No EGL Display
nvbufsurftransform: Could not get EGL display connection
No EGL Display
nvbufsurftransform: Could not get EGL display connection
No EGL Display
nvbufsurftransform: Could not get EGL display connection
No EGL Display
nvbufsurftransform: Could not get EGL display connection
Blacklisted files:
  libnvdsgst_multistreamtiler.so
  libgstnvvideoconvert.so
  libnvdsgst_ofvisual.so
  libnvdsgst_infer.so
  libnvdsgst_multistream.so
  libnvdsgst_inferaudio.so
  libnvdsgst_dewarper.so
  libnvdsgst_inferserver.so
  libnvdsgst_osd.so
  libnvdsgst_tracker.so
  libnvdsgst_segvisual.so
  libnvdsgst_deepstream_bins.so
  libcustom2d_preprocess.so
  libnvdsgst_udp.so
  libnvdsgst_dsexample.so
  libnvdsgst_preprocess.so

Total count: 16 blacklisted files

I stopped and re-ran the container without passing the -e DISPLAY=$DISPLAY and -v /tmp/.X11-unix/:/tmp/.X11-unix arguments to it and that seemed to fix the No EGL Display issue. This then reduced the number of blacklisted files to 7.

...
(gst-plugin-scanner:22): GStreamer-WARNING **: 17:17:09.451: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_inferaudio.so': libcufft.so.10: cannot open shared object file: No such file or directory

(gst-plugin-scanner:22): GStreamer-WARNING **: 17:17:09.457: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_infer.so': libnvparsers.so.8: cannot open shared object file: No such file or directory
Blacklisted files:
  libnvdsgst_infer.so
  libnvdsgst_inferaudio.so
  libnvdsgst_inferserver.so
  libnvdsgst_osd.so
  libnvdsgst_deepstream_bins.so
  libcustom2d_preprocess.so
  libnvdsgst_udp.so

Total count: 7 blacklisted files

I still see nvinfer being blacklisted.

On another note, I do not have plugins blacklisted on the TX2 Development Kit which is also flashed with JetPack v4.6.1 and the same samples container [nvcr.io/nvidia/deepstream-l4t:6.0.1-samples] (https://catalog.ngc.nvidia.com/orgs/nvidia/containers/deepstream-l4t/tags#:~:text=1%20Architecture-,6.0.1-samples,-03/09/2022) installed on it. The deepstream reference app runs on it with no issues.

Thank you for your support!

deepstream-app: error while loading shared libraries: libnvinfer.so.8: cannot open shared object file: No such file or directory

Can you find this file in system?
/usr/lib/aarch64-linux-gnu/libnvinfer.so.8

No the file doesn’t exist in /usr/lib/aarch64-linux-gnu/ or anywhere in the container file system.

Please add --runtime=nvidia in the docker command.

Sorry for my late response. I added the --runtime=nvidia to the docker command and I still see the same error message “libnvinfer.so.8: cannot open shared object file: No such file or directory”.

I am using the following command to run the container:

CONTAINER=deepstream6
IMAGE=nvcr.io/nvidia/deepstream-l4t:6.0.1-samples

docker run --gpus all -dit --privileged --rm \
--name $CONTAINER \
--network=host \
--ipc=host \
--runtime=nvidia \
-p 8889:8889 \
--env TERM=xterm-256color \
-v /Data/:/opt/nvidia/Data \
-w /opt/nvidia/ \
$IMAGE

There another way you can add symlinks in the container.
ln -s /usr/lib/aarch64-linux-gnu/libnvinfer.so.8.0.1 /usr/lib/aarch64-linux-gnu/libnvinfer.so.8
/usr/lib/aarch64-linux-gnu/libnvinfer.so.8 /usr/lib/aarch64-linux-gnu/libnvinfer.so

The files libnvinfer.so.8.0.1, libnvinfer.so.8, libnvinfer.so do not exist inside the container.

I must also mention that we have DeepStream v6.0 installed outside the container on the AGX host and
the files libnvinfer.so.8.2.1, libnvinfer.so.8, libnvinfer.so exist outside the container in the path
/usr/lib/aarch64-linux-gnu.

We also checked on a Jetson Nano with the same image and libnvinfer.so.8.2.1 exists in the
container but libnvinfer.so.8 and libnvinfer.so exist as symbolic links.

Sorry, Jetpack 4.6.1 use TensorRT 8.2.1
ln -s /usr/lib/aarch64-linux-gnu/libnvinfer.so.8.2.1 /usr/lib/aarch64-linux-gnu/libnvinfer.so.8
/usr/lib/aarch64-linux-gnu/libnvinfer.so.8 /usr/lib/aarch64-linux-gnu/libnvinfer.so

I tried to create the symbolic links inside the container but I am still having issues. It appears that libnvinfer.so.8.2.1 does not exist inside the container.

Did you add --runtime=nvidia in docker command, you should see libnvinfer.so.8.2.1 inside docker after this.