Can't get MQTT to work on DeepStream 7.1

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
Jetson Orin Nano 8GB
• DeepStream Version
7.1
• JetPack Version (valid for Jetson only)
6.1
• TensorRT Version
10.3
• Issue Type

Error: gst-library-error-quark: Could not initialize supporting library. (3): /dvs/git/dirty/git-master_linux/deepstream/sdk/src/gst-plugins/gst-nvmsgbroker/gstnvmsgbroker.cpp(401): legacy_gst_nvmsgbroker_start (): /GstPipeline:pipeline0/GstNvMsgBroker:nvmsg-broker:
unable to open shared library

• How to reproduce the issue ?

After a fresh install of JetPack 6.1 with DeepStream 7.1, I simply followed all the instructions to run the deepstream-test4 with mqtt. I installed the required dependencies, (both in the README.md in that folder, and the ones in /opt/nvidia/deepstream/deepstream-7.1/sources/libs/mqtt_protocol_adaptor/README.md)

Then I lunched the file with

python3 deepstream_test_4.py -i "/home/concept/example.mp4" -p "/opt/nvidia/deepstream/deepstream-7.1/lib/libnvds_mqtt_proto.so" --conn-str="broker.hivemq.com;1883" --topic="/jackaldetection/detections"

The output is what I mentioned earlier. I found a similar issue here, but installing the mentioned dependencies didn’t work for me

can you find in libnvds_mqtt_proto.so in /opt/nvidia/deepstream/deepstream/lib/libnvds_mqtt_proto.so? if so, can you share the result of “ldd /opt/nvidia/deepstream/deepstream/lib/libnvds_mqtt_proto.so”?

Thanks for the answer!

Yes, the proto lib exists:

concept@ubuntu:/opt/nvidia/deepstream/deepstream-7.1/sources/deepstream_python_apps/apps/deepstream-test4$ ls /opt/nvidia/deepstream/deepstream/lib/libnvds_mqtt_proto.so
/opt/nvidia/deepstream/deepstream/lib/libnvds_mqtt_proto.so

And here’s the requested output

concept@ubuntu:/opt/nvidia/deepstream/deepstream-7.1/sources/deepstream_python_apps/apps/deepstream-test4$ ldd /opt/nvidia/deepstream/deepstream/lib/libnvds_mqtt_proto.so
	linux-vdso.so.1 (0x0000ffffbed34000)
	libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000ffffbeb60000)
	libmosquitto.so.1 => /usr/local/lib/libmosquitto.so.1 (0x0000ffffbeb30000)
	libcrypto.so.3 => /lib/aarch64-linux-gnu/libcrypto.so.3 (0x0000ffffbe740000)
	libnvds_logger.so => /opt/nvidia/deepstream/deepstream-7.1/lib/libnvds_logger.so (0x0000ffffbe720000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffbe4f0000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffbe340000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffffbecfb000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffbe310000)
	libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000ffffbe290000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffbe1f0000)

In DS7.1, nvmsgbroker plugin and low-level lib are openosurce. from the error “unable to open shared library”, it is because dlopen libnvds_mqtt_proto.so failed. you can find the code in legacy_gst_nvmsgbroker_start of opt\nvidia\deepstream\deepstream-7.1\sources\gst-plugins\gst-nvmsgbroker\gstnvmsgbroker.cpp. but from the ldd result, seems the dependency has be installed.
I suggest using the test tool of low-level lib to narrow down this issue. the path is /opt/nvidia/deepstream/deepstream/sources/libs/mqtt_protocol_adaptor. please refer to the README under the path. especially modify test_mqtt_proto_async.cpp to use your conn-str and topics.

1 Like

Sorry for the late reply, Is this still an DeepStream issue to support? Thanks!

No it’s not, thank you for your kind answer! Keep up the good work

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.