Deepstream-app: error while loading shared libraries: libnvdla_compiler.so: cannot open shared object file: No such file or directory

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) Jetson
• DeepStream Version Docker image : nvcr.io/nvidia/deepstream-l4t 6.2-triton
**• JetPack Version (valid for Jetson only)**4.6.3-b17
• TensorRT Version 8.2.1-1+cuda10.2
• Issue Type( questions, new requirements, bugs)

Hi,

I’m using a Jetson device to run a deepstream app.
After running the docker container, I’m trying to launch a deepstream-app as mentioned in Quickstart Guide — DeepStream 6.2 Release documentation and I’m encountering below error.

> root@e6b9c627ecb1:/opt/nvidia/deepstream/deepstream-6.2/samples/configs# deepstream-app --help
> deepstream-app: error while loading shared libraries: libnvdla_compiler.so: cannot open shared object file: No such file or directory

Could you pls advise how to resolve this?

1.Could you check if the library exists in the below folder on the host

/usr/lib/aarch64-linux-gnu/tegra/

If no, I’m afraid you must flash you device first due to lack of driver

If yes,check it in your docker,if still exists

please try the below command before launching the application:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/aarch64-linux-gnu/tegra/ 

2.libnvdla_compiler.so is a lower-level driver that gets mounted from the host device. When you started the container, did you run it with --runtime nvidia

such as

sudo docker run -it --rm --runtime nvidia  nvcr.io/nvidia/deepstream-l4t:6.2-triton

Thanks.

  1. File exists on host but not docker. tegra directory does not exist on docker . So, I copied ‘tegra’ from host to docker. 'deepstream-app’ works. However, I’m not able to run the reference applications as mentioned in Quickstart Guide — DeepStream 6.2 Release documentation.
root@60a030fd8789:/opt/nvidia/deepstream/deepstream/samples/configs# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/aarch64-linux-gnu/tegra/ 
root@60a030fd8789:/opt/nvidia/deepstream/deepstream/samples/configs# deepstream-app -c   ./deepstream-app/source6_csi_dec_infer_resnet_int8.txt
** ERROR: <create_multi_source_bin:1490>: Failed to create element 'src_bin_muxer'
** ERROR: <create_multi_source_bin:1583>: create_multi_source_bin failed
** ERROR: <create_pipeline:1485>: create_pipeline failed
** ERROR: <main:697>: Failed to create pipeline
Quitting
App run failed


root@60a030fd8789:/opt/nvidia/deepstream/deepstream/samples/configs# deepstream-app -c   ./deepstream-app/source2_csi_usb_dec_infer_resnet_int8.txt
** ERROR: <create_multi_source_bin:1490>: Failed to create element 'src_bin_muxer'
** ERROR: <create_multi_source_bin:1583>: create_multi_source_bin failed
** ERROR: <create_pipeline:1485>: create_pipeline failed
** ERROR: <main:697>: Failed to create pipeline
Quitting
App run failed
root@60a030fd8789:/opt/nvidia/deepstream/deepstream/samples/configs# deepstream-app -c   ./deepstream-app/source1_csi_usb_dec_infer_resnet_int8.txt
** ERROR: <parse_config_file:606>: parse_config_file failed
** ERROR: <main:687>: Failed to parse config file './deepstream-app/source1_csi_usb_dec_infer_resnet_int8.txt'
Quitting
App run failed
  1. docker run -it --rm -v –-runtime nvidia /home/nvidia/CK:/opt/nvidia/deepstream/deepstream-6.2/sources/project nvcr.io/nvidia/deepstream-l4t:6.2-triton gives below error
Unable to find image 'nvidia:latest' locally
docker: Error response from daemon: pull access denied for nvidia, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'

I checked the example mentioned in NVIDIA Container Runtime on Jetson · NVIDIA/nvidia-docker Wiki · GitHub and tried to execute

docker run --net=host --runtime nvidia --rm --ipc=host -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE -e DISPLAY=$DISPLAY -it nvcr.io/nvidia/l4t-base:r32.2.1

And this works fine


Unable to find image 'nvcr.io/nvidia/l4t-base:r32.2.1' locally
r32.2.1: Pulling from nvidia/l4t-base
9c60bd908b30: Pulling fs layer 
50cb0860cf3b: Pulling fs layer 
1acdf7b4ab1d: Downloading [=>                                                 ]  484.1kB/15.72MB
a4e69ff56bc2: Waiting 
4395664c3ead: Waiting 
93e918a46aed: Waiting 
8717ee919c42: Waiting 
397716afa49a: Waiting 
c8c17c7e64bf: Waiting

I think you give a wrong command. As you folder path the correct way is

sudo docker run -it --rm --runtime nvidia  -v /home/nvidia/CK:/opt/nvidia/deepstream/deepstream-6.2/sources/project nvcr.io/nvidia/deepstream-l4t:6.2-triton

/home/nvidia/CK:/opt/nvidia/deepstream/deepstream-6.2/sources/project is params of -v. but you give --runtime to it

thanks

Thank you, junshengy, for the quick response.

There are two parts to my problem:

  1. If I don’t specify --runtime nvidia, then I can launch the docker container. However, I’m not able to run the deepstream-app. Please refer to (1) in my previous post.

  2. If I specify ‘’–runtime nvidia’, then docker throws an error. Please see below

nvidia@Chandra:~$ sudo docker run -it --rm --runtime nvidia  nvcr.io/nvidia/deepstream-l4t:6.2-triton
[sudo] password for nvidia: 
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: failed to create NVIDIA Container Runtime: failed to construct OCI spec modifier: requirements not met: unsatisfied condition: cuda>=11.4 (cuda=10.2): unknown.
nvidia@Chandra:~$ sudo docker run -it nvcr.io/nvidia/deepstream-l4t:6.2-triton
root@6d0fc6cc1a6c:/opt/nvidia/deepstream/deepstream-6.2#

Please let me know if I need to elaborate either part 1 or part 2 of the above.

Sorry for not confirming your jetpack version.

Docker on jetson depends host cuda/trt version.

If you want run DeepStream 6.2 in docker,pls update your cuda/trt version.

I recommend you update jetpack to lastest version.

Here is jetson model platform and OS compatibility

This is document about docker on jetson
Thansk

Below is my current set up:

Jetson: nano
Gstreamer: 1.14.5
Cuda: 10.2
Jetpack version: 4.6.3-b17, 4.6.2-b5, 4.6.1-b110
DeepStream Docker image : nvcr.io/nvidia/deepstream-l4t 6.2-triton

Table here Quickstart Guide — DeepStream 6.2 Release documentation mentions that Jetson nano is not compatible with docker deepstream-l4t:6.2.

So, should I use deepstream-l4t:6.0.1? or upgrading CUDA to 11.4 will work?
Could you please let me know? Thanks.

Jetson nano support the latest version of ds6.0.1

You should use deepstream-l4t:6.0.1

nvidia@Chandra:~$ docker pull nvcr.io/nvidia/deepstream-l4t:6.0.1
Error response from daemon: manifest for nvcr.io/nvidia/deepstream-l4t:6.0.1 not found: manifest unknown: manifest unknown

Where to find the deepstream-l4t:6.0.1? Could you pls advise?

Please refer the document about docker on jetson

Here is the complete command line

docker pull nvcr.io/nvidia/deepstream:6.0.1-triton

Documentation here mentions that deepstream6.2 can run on jetson

https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_docker_containers.html#a-docker-container-for-jetson

Because your board is jetson nano,It can support 6.0.1 only.The lastest JetPack does not support Jetson Nano. DeepStream docker should run on the corresponding JetPack drivers.

This link is the latest version.

Here is document for 6.0.1

Thanks