I am using a Kunpeng 920 CPU (ARM64) with the Kylin Server OS(Base on RHEL 8) installed.
Part of my program code is:
nvvidconv = Gst.ElementFactory.make("nvvideoconvert", "convertor")
if not nvvidconv:
sys.stderr.write(" Unable to create nvvidconv \n")
It runs well in the nvcr.io/nvidia/deepstream:7.0-samples-multiarch image (on x86 ,ubuntu2204),
but in the nvcr.io/nvidia/deepstream:7.0-triton-arm-sbsa image, it prints Unable to create nvvidconv.
My test
to enter the container(nvcr.io/nvidia/deepstream:7.0-triton-arm-sbsa )
sudo docker run -it --rm --net=host --gpus all -e DISPLAY=$DISPLAY --device /dev/snd -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/deepstream:7.0-triton-arm-sbsa bash
I ran:
gst-inspect-1.0 nvvideoconvert
then get error:
(gst-inspect-1.0:100): GStreamer-WARNING **: 08:47:39.420: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though.
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
Aborted (core dumped)
My question:
Does the nvcr.io/nvidia/deepstream:7.0-triton-arm-sbsa image support ARM64 and RHEL 8 system as the host?
If it does support, what is the cause of the above error, and how can it be resolved?
Since this is for a project, I look forward to your response. Thank you.
i add --privileged in docker command,then in container run gst-inspect-1.0 nvvideoconvert , the msg :
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
(gst-plugin-scanner:105): GStreamer-WARNING **: 01:55:57.625: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_udp.so': librivermax.so.0: cannot open shared object file: No such file or directory
EGL failed to initialize! Exiting...
/bin/dash: 1: lsmod: not found
/bin/dash: 1: modprobe: not found
(gst-plugin-scanner:105): GStreamer-WARNING **: 01:55:57.661: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstchromaprint.so': libavcodec.so.58: cannot open shared object file: No such file or directory
(gst-plugin-scanner:105): GStreamer-WARNING **: 01:55:57.703: adding type GstEvent multiple times
(gst-plugin-scanner:105): GStreamer-WARNING **: 01:55:57.716: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpeg2dec.so': libmpeg2.so.0: cannot open shared object file: No such file or directory
(gst-plugin-scanner:105): GStreamer-WARNING **: 01:55:57.717: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpeg2enc.so': libmpeg2encpp-2.1.so.0: cannot open shared object file: No such file or directory
(gst-plugin-scanner:105): GStreamer-WARNING **: 01:55:57.719: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpg123.so': libmpg123.so.0: cannot open shared object file: No such file or directory
(gst-plugin-scanner:105): GStreamer-WARNING **: 01:55:57.729: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstopenmpt.so': libmpg123.so.0: cannot open shared object file: No such file or directory
No such element or plugin 'nvvideoconvert'
sudo docker run -it --rm --runtime=nvidia --network=host -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video,graphics --gpus all --privileged -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /etc/X11:/etc/X11 nvcr.io/nvidia/deepstream:7.0-triton-arm-sbsa
the log show run success. but my app has a rtsp server, when i use VLC to play the rtsp url,the VLC screen is black, but the VLC time is increasing. ( It runs well in the nvcr.io/nvidia/deepstream:7.0-samples-multiarch image (on x86 ,ubuntu2204))
If you run the sampe apps such as deepstream_test1_app and deepstream3_test3_app, Are they work normally ?
sbsa is more similar to jetson. Some plug-ins have some differences between x86 and arm.
Can you share full log after running this command GST_DEBUG=3 ./your_app > log.log 2>&1 ?
Then I tested running the deepstream-test1-app program, and the log is as follows:
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
(gst-plugin-scanner:148): GStreamer-WARNING **: 02:02:16.718: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_udp.so': librivermax.so.0: cannot open shared object file: No such file or directory
libEGL warning: DRI3: Screen seems not DRI3 capable
libEGL warning: DRI2: failed to authenticate
Cannot load EGL
/bin/dash: 1: lsmod: not found
/bin/dash: 1: modprobe: not found
(gst-plugin-scanner:148): GStreamer-WARNING **: 02:02:16.793: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstchromaprint.so': libavcodec.so.58: cannot open shared object file: No such file or directory
(gst-plugin-scanner:148): GStreamer-WARNING **: 02:02:16.841: adding type GstEvent multiple times
(gst-plugin-scanner:148): GStreamer-WARNING **: 02:02:16.855: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpeg2dec.so': libmpeg2.so.0: cannot open shared object file: No such file or directory
(gst-plugin-scanner:148): GStreamer-WARNING **: 02:02:16.855: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpeg2enc.so': libmpeg2encpp-2.1.so.0: cannot open shared object file: No such file or directory
(gst-plugin-scanner:148): GStreamer-WARNING **: 02:02:16.858: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpg123.so': libmpg123.so.0: cannot open shared object file: No such file or directory
(gst-plugin-scanner:148): GStreamer-WARNING **: 02:02:16.871: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstopenmpt.so': libmpg123.so.0: cannot open shared object file: No such file or directory
/bin/dash: 1: lsmod: not found
/bin/dash: 1: modprobe: not found
One element could not be created. Exiting.
cd /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-test1
make CUDA_VER=12.2
./deepstream-test1-app /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264
2.Try the following command line, make sure the rtsp sink feature can run properly.
root@localhost:/opt/nvidia/deepstream/deepstream-7.0# gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 ! h264parse ! nvv4l2decoder ! nvrtspoutsinkbin
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting.
(gst-plugin-scanner:818): GStreamer-WARNING **: 05:24:43.145: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_udp.so': librivermax.so.0: cannot open shared object file: No such file or directory
libEGL warning: DRI3: Screen seems not DRI3 capable
libEGL warning: DRI2: failed to authenticate
Cannot load EGL
/bin/dash: 1: lsmod: not found
/bin/dash: 1: modprobe: not found
/bin/dash: 1: lsmod: not found
/bin/dash: 1: modprobe: not found
Unable to create video pipelineWARNING: erroneous pipeline: could not link nvv4l2decoder0 to dsnvrtspoutbin0
root@localhost:~/apps/myapp# gst-launch-1.0 filesrc location=./sample_720p.h264 ! h264parse ! nvv4l2decoder ! nvrtspoutsinkbin
/bin/bash: line 1: lsmod: command not found
/bin/bash: line 1: modprobe: command not found
*** dsnvrtspoutbin0: Launched RTSP Streaming at rtsp://localhost:8554/ds-test ***
Setting pipeline to PAUSED ...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
0:00:02.0 / 0:00:40.1 (5.0 %)
(gst-launch-1.0:339): GLib-GObject-CRITICAL **: 06:33:30.414: g_object_get_is_valid_property: object class 'GstUDPSrc' has no property named 'pt'
Execution was successful, but the screen is green in VLC.