Closed jbolduc01 closed 4 years ago
The nvcompositor
element is packaged separately into gstreamer1.0-plugins-tegra-nvcompositor
, so you'll need to add that. It's packaged separately because of some additional runtime dependencies.
The nvoverlaysink
element should be in gstreamer1.0-omx-tegra
, which should be getting included via settings in the machine config. If that package is installed but the element isn't showing up, try using gst-inspect-1.0 -b
to see if it's been blacklisted for some reason.
Thank you for your prompt reply! How to I get this gstreamer1.0-plugins-tegra-nvcompositor recipe in order to build it? Regards, Jérôme
The gstreamer1.0-plugins-tegra that is already present does this - you just need to reference the extra package name to CORE_IMAGE_EXTRA_INSTALL, and make sure that the additional gstreamer packages it depends on can also be built.
Thanks for the info. However, when I try to include the additional gstreamers to CORE_IMAGE_EXTRA_INSTALL, here is what I get:
ERROR: core-image-minimal-1.0-r0 do_rootfs: Could not invoke dnf. Command '/home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/rootfs/etc/yum.repos.d --installroot=/home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/rootfs --setopt=logdir=/home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/temp --repofrompath=oe-repo,/home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/oe-rootfs-repo --nogpgcheck install ethtool gstreamer1.0 gstreamer1.0-libav gstreamer1.0-meta-base gstreamer1.0-omx-tegra gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-nveglgles gstreamer1.0-plugins-nvvideo4linux2 gstreamer1.0-plugins-nvvideosinks gstreamer1.0-plugins-tegra gstreamer1.0-plugins-ugly gstreamer1.0-rtsp-server gstreamer1.0-vaapi htop libdrm2 libgstbadbase-1.0 libgstbadvideo-1.0 libgstvideo-1.0-0 nv-tegra-release openssh packagegroup-core-boot pciutils run-postinsts tegra-argus-daemon tegra-libraries usbutils v4l-utils' returned 1:
DNF version: 4.2.2
cachedir: /home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/rootfs/var/cache/dnf
Added oe-repo repo from /home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/oe-rootfs-repo
repo: using cache for: oe-repo
not found other for:
not found modules for:
not found deltainfo for:
not found updateinfo for:
oe-repo: using metadata from Thu 13 Feb 2020 07:30:25 PM UTC.
Last metadata expiration check: 0:00:01 ago on Thu 13 Feb 2020 07:30:25 PM UTC.
No module defaults found
No match for argument: libgstbadbase-1.0
No match for argument: libgstbadvideo-1.0
Error: Unable to find a match
ERROR: Logfile of failure stored in: /home/jerome/poky-nano/build/tmp/work/jetson_nano_qspi_sd-poky-linux/core-image-minimal/1.0-r0/temp/log.do_rootfs.3734
ERROR: Task (/home/jerome/poky-nano/meta/recipes-core/images/core-image-minimal.bb:do_rootfs) failed with exit code '1'
How can I build these two packages? I am sorry, I am quite new in building in Yocto.
Regards, Jérôme
Hmm. This could be a problem with using the nvcompositor plugin at all. It was pre-built against an older version of gstreamer and was linked against the libgstbadvideo-1.0
library. That library existed in the version of gstreamer (1.14.x) that comes with the version of Ubuntu that NVIDIA puts into L4T/JetPack, but it looks like it was dropped from more recent versions of gstreamer - the functionality was migrated into the base
or good
package. OE-Core zeus has gstreamer 1.16.x.
So if you really need the nvcompositor plugin, it could take some work. It might be possible to fake the missing library (and remove the RDEPENDS on the nonexistent packages from the recipe), or it might mean having to downgrade gstreamer to 1.14.
I think you are right, seems like the libgstcompositor.so
file is built inside my Yocto image. However, it relies on the libgstbadvideo-1.0
library, which is not built.
I think I will need to downgrade to gstreamer 1.14.x in order to get rid of this. I really need the nvcompositor
plugins since it manages DMA accesses.
Do you have any tips on how to downgrade to gstreamer 1.14.x? I think the latest Jetpack/L4T uses gstreamer 1.14.5.
Thanks for your help so far!
Regards,
Jérôme
You should be able to copy over all the gstreamer recipes from the openembedded-core or poky warrior
branch into your own layer. You'll need to set PREFERREDVERSION* for the gstreamer packages to have the build choose the older version.
I was able to include nvcompositor in my image when using gstreamer 1.14.4. Thanks for your help! Jérôme
Hello, I managed to build a Yocto image but there are some nVidia plugins that are missing. I am talking about nvcompositor and nvoverlaysink.
Here is my local.conf file:
Do you have any idea why they are not part of the image?
Thanks, Jérôme