run Azure iot edge & deepstream sample failed

I follow the post of GitHubhttps://github.com/Azure-Samples/NVIDIA-Deepstream-Azure-IoT-Edge-on-a-NVIDIA-Jetson-Nano.

When I setup up the environment, and run the deepstream container.

I found the error as below, and how can I fix?


root@d762425ef5b2:~/deepstream_sdk_v4.0.1_jetson/sources/apps/sample_apps/deepstream-test5/configs# deepstream-test5-app -c test5_config_file_src_infer_azure_iotedge.txt

(gst-plugin-scanner:18): GLib-GObject-WARNING **: 12:35:13.788: cannot register existing type ‘GstInterpolationMethod’

(gst-plugin-scanner:18): GLib-GObject-CRITICAL **: 12:35:13.789: g_param_spec_enum: assertion ‘G_TYPE_IS_ENUM (enum_type)’ failed

(gst-plugin-scanner:18): GLib-GObject-CRITICAL **: 12:35:13.789: validate_pspec_to_install: assertion ‘G_IS_PARAM_SPEC (pspec)’ failed

(deepstream-test5-app:17): GLib-CRITICAL **: 12:35:14.525: g_strrstr: assertion ‘haystack != NULL’ failed
Error: Time:Tue Nov 26 12:35:14 2019 File:/home/nvidia/azure/azure-iot-sdk-c/iothub_client/src/iothub_client_core_ll.c Func:retrieve_edge_environment_variabes Line:177 Environment IOTEDGE_AUTHSCHEME not set
Error: Time:Tue Nov 26 12:35:14 2019 File:/home/nvidia/azure/azure-iot-sdk-c/iothub_client/src/iothub_client_core_ll.c Func:IoTHubClientCore_LL_CreateFromEnvironment Line:1186 retrieve_edge_environment_variabes failed
Error: Time:Tue Nov 26 12:35:14 2019 File:/home/nvidia/azure/azure-iot-sdk-c/iothub_client/src/iothub_client_core.c Func:create_iothub_instance Line:924 Failure creating iothub handle
ERROR: iotHubModuleClientHandle is NULL! connect failed
** ERROR: main:1123: Failed to set pipeline to PAUSED
Quitting
ERROR from sink_sub_bin_sink2: Could not configure supporting library.
Debug info: /dvs/git/dirty/git-master_linux/deepstream/sdk/src/gst-plugins/gst-nvmsgbroker/gstnvmsgbroker.c(332): gst_nvmsgbroker_start (): /GstPipeline:pipeline/GstBin:sink_sub_bin2/GstNvMsgBroker:sink_sub_bin_sink2:
unable to connect to broker library
ERROR from sink_sub_bin_sink2: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Debug info: gstbasesink.c(5265): gst_base_sink_change_state (): /GstPipeline:pipeline/GstBin:sink_sub_bin2/GstNvMsgBroker:sink_sub_bin_sink2:
Failed to start
App run failed

please check README, you use wrong config file, the config file you used is just for IOT configuration,
please use below config file for element parse.

  1. To run:
    ===============================================================================
    $ ./deepstream-test5-app -c configs/test5_config_file_src_infer.txt -p 1
    $ ./deepstream-test5-app -c configs/test5_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt -p 0

The default config file is test5_config_file_src_infer_azure_iotedge.txt.

I did not to change it.

And i used the two way that you say.

It’s also error, but i found the error message like not found .so files.


NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.295: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_osd.so’: libnvddk_2d_v2.so: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.296: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_ofvisual.so’: libnvdsbufferpool.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.299: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_dsexample.so’: libnvbufsurface.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.300: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_segvisual.so’: libnvdsbufferpool.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.304: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_multistreamtiler.so’: libnvbufsurface.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.306: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_multistream.so’: libnvdsbufferpool.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.308: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_dewarper.so’: libnvdsbufferpool.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.313: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_tracker.so’: libnvbufsurface.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK |
NVIDIADeepStreamSDK | (gst-plugin-scanner:6): GStreamer-WARNING **: 09:05:04.315: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_infer.so’: libnvbufsurface.so.1.0.0: cannot open shared object file: No such file or directory
NVIDIADeepStreamSDK | ** ERROR: <create_multi_source_bin:682>: Failed to create element ‘src_bin_muxer’
NVIDIADeepStreamSDK | ** ERROR: <create_multi_source_bin:745>: create_multi_source_bin failed
NVIDIADeepStreamSDK | ** ERROR: <create_pipeline:1045>: create_pipeline failed
NVIDIADeepStreamSDK | ** ERROR: main:1096: Failed to create pipeline
NVIDIADeepStreamSDK | Quitting
NVIDIADeepStreamSDK | App run failed

oh, sorry, i see test5_config_file_src_infer_azure_iotedge.txt as dstest5_msgconv_sample_config.txt,
you can use test5_config_file_src_infer_azure_iotedge.txt also, i am not sure if you follow the
wiki https://github.com/Azure-Samples/NVIDIA-Deepstream-Azure-IoT-Edge-on-a-NVIDIA-Jetson-Nano completely,
I look through the wiki, it not use docker container to demonstrate how to do real-time video analytics,
instead it deploy Deepstream from the Azure Marketplace, so if you want to deploy by the way you do now,
you can follow this to setup azure IoT and sending message between your device and IoT center.
https://docs.nvidia.com/metropolis/deepstream/DeepStream_4.0.1_Release_Notes.pdf, 3.1 APPLICATIONS MAY BE DEPLOYED IN A DOCKER CONTAINER, you can check this first, then if you need, you can continue with test5,
from your running with other 2 config, seems your setup have some issue, you not do this, install.sh, right?
it setup DS plugin and other dependency library.

Yes, i just want to do the same thing like wiki.

but i follow the step by step, and get the error message.

Like “Deploy Deepstream from the Azure Marketplace” topic of the wiki, it means that setting up the envionment and deploy deepstream from the azure marketplace, it will see the recognition result like this(https://github.com/Azure-Samples/NVIDIA-Deepstream-Azure-IoT-Edge-on-a-NVIDIA-Jetson-Nano/blob/master/Telemetry.png).

but i did not see the result, even get the error message like i tell you.

I have no idea about the root cause.

ok, but from your log, you seems run from docker container?
root@d762425ef5b2:~/deepstream_sdk_v4.0.1_jetson/sources/apps/sample_apps/deepstream-test5/configs# deepstream-test5-app -c test5_config_file_src_infer_azure_iotedge.txt

but wiki setup using windows? so i can not figure out the relation between the two.
so can you tell more detailed about your setup steps?

The container is download from Azure Marketplace(marketplace.azurecr.io/nvidia/deepstream-iot-l4t:latest).

My situation is running in the container.

I follow the guide(https://dev.to/azure/getting-started-with-iot-edge-development-on-nvidia-jetson-devices-2dfl) to set it up.

And I checked the infomation upload the iot hub successfully.

Then, I follow the “Deploy Deepstream from the Azure Marketplace” of github(https://github.com/Azure-Samples/NVIDIA-Deepstream-Azure-IoT-Edge-on-a-NVIDIA-Jetson-Nano).

if I run the container directly, it always failed that used the “deepstream-test5-app -c test5_config_file_src_infer_azure_iotedge.txt” command.

By the way, what is different “docker” and “nvidia-docker”?

how can I check what I used?

You should follow strictly nvidia wiki, outside nvidia, we do not verify it.

So, could you give me information that I can run the deepstream & azure iot edge sample successfully?

can you follow the second half?

I will update the result.

Thank you for help.

Hi tw.manny.wang,

Have you managed to get issue resolved? Any result can be shared?

Hi kayccc,

I forgot to update, it’s my fault. Orz…

This is my detail step by step.


  1. install nvidia-docker on Jetson.
  2. run apt-get update on Jetson
  3. Install the latest runtime version(https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-linux)
  4. Install the Azure IoT Edge Security Daemon(as 3.link)
  5. Configure the security daemon(as 3.link)
  6. Verify successful installation(as 3.link)
  7. Deploy modules from Azure Marketplace(https://docs.microsoft.com/en-us/azure/iot-edge/how-to-deploy-modules-portal)

And I tested the TX1, TX2. they all work so well.

Hi tw.manny.wang,

Glad to know it works, thanks for the update.