Build Failed imx-gst1.0-plugin

Hi,

After init with: repo init -u http://git.toradex.com/toradex-bsp-platform.git -b LinuxImageV2.8

Tried to build custom console image which is a derivative ot console-txd-image and got this:

| arm-angstrom-linux-gnueabi-libtool: compile:  arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot "-DPACKAGE_NAME=\"GStreamer i.MX Plug-ins\"" -DPACKAGE_TARNAME=\"imx-gst1.0-plugin\" -DPACKAGE_VERSION=\"4.3.4\" "-DPACKAGE_STRING=\"GStreamer i.MX Plug-ins 4.3.4\"" -DPACKAGE_BUGREPORT=\"http://www.freescale.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"imx-gst1.0-plugin\" -DVERSION=\"4.3.4\" -DGST_API_VERSION=\"1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_VPU_LIB_H=1 -DHAVE_LINUX_IPU_H=1 -DHAVE_LIBRT=1 -DHAVE_MP3_ENC_INTERFACE_H=1 -DHAVE_VPU_WRAPPER_H=1 -DHAVE_FSL_PARSER_H=1 -DHAVE_FSL_UNIA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_G2D_H=1 -DHAVE_G2D_H=1 -DHAVE_IPU_H=1 -DHAVE_PXP_LIB_H=1 -DHAVE_LINUX_MXCFB_H=1 -I. -I../../git/libs -I/opt/yocto/build/tmp-glibc/work-shared/colibri-imx6/kernel-build-artifacts/include/generated/uapi -I/opt/yocto/build/tmp-glibc/work-shared/colibri-imx6/kernel-source/include/uapi -I/opt/yocto/build/tmp-glibc/work-shared/colibri-imx6/kernel-source/include -pthread -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/gstreamer-1.0 -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/glib-2.0 -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/lib/glib-2.0/include -pthread -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/gstreamer-1.0 -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/glib-2.0 -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/lib/glib-2.0/include -DUSE_IPU -DUSE_G2D -DUSE_PXP -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0=/usr/src/debug/imx-gst1.0-plugin/4.3.4-r0 -fdebug-prefix-map=/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot-native= -fdebug-prefix-map=/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot= -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/imx-mm/audio-codec -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/imx-mm/video-codec -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/imx-mm/parser -I/opt/yocto/build/tmp-glibc/work/colibri_imx6-angstrom-linux-gnueabi/imx-gst1.0-plugin/4.3.4-r0/recipe-sysroot/usr/include/imx-mm/vpu -DARM -D_GNUC_ -c ../../git/libs/gstsutils/gstsutils.c  -fPIC -DPIC -o .libs/libgstfsl_1.0_la-gstsutils.o
| In file included from ../../git/libs/device-2d/imx_2d_device.h:25:0,
|                  from ../../git/libs/device-2d/imx_2d_device.c:20:
| ../../git/libs/device-2d/imx_2d_device_allocator.h:24:10: fatal error: gst/allocators/gstallocatorphymem.h: No such file or directory
|  #include 
|           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| compilation terminated.
| Makefile:613: recipe for target 'libgstfsl_1.0_la-imx_2d_device.lo' failed
| make[1]: *** [libgstfsl_1.0_la-imx_2d_device.lo] Error 1
| make[1]: *** Waiting for unfinished jobs....
| In file included from ../../git/libs/device-2d/imx_2d_device_allocator.c:20:0:
| ../../git/libs/device-2d/imx_2d_device_allocator.h:24:10: fatal error: gst/allocators/gstallocatorphymem.h: No such file or directory
|  #include 
|           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| compilation terminated.
| Makefile:620: recipe for target 'libgstfsl_1.0_la-imx_2d_device_allocator.lo' failed
| make[1]: *** [libgstfsl_1.0_la-imx_2d_device_allocator.lo] Error 1

I could not add as comment, so I added more info to here. I tried to build console-tdx-image with below changes.

diff --git a/recipes-images/images/console-tdx-image.bb b/recipes-images/images/console-tdx-image.bb
index 50d9a48..984447a 100644
--- a/recipes-images/images/console-tdx-image.bb
+++ b/recipes-images/images/console-tdx-image.bb
@@ -50,6 +50,19 @@ IMAGE_INSTALL += " \
     ${ROOTFS_PKGMANAGE_PKGS} \
     timestamp-service \
     packagegroup-base-extended \
+    \
+    imx-gpu-viv \
+    gstreamer1.0-plugins-imx \
+    packagegroup-fsl-tools-gpu \
+    packagegroup-fsl-gstreamer1.0 \
+    packagegroup-imx-tools-audio \
+    packagegroup-fsl-gstreamer1.0-full \
+    imx-gst1.0-plugin \
+    gstreamer1.0-plugins-base \
+    gstreamer1.0-plugins-bad \
+    gstreamer1.0-plugins-ugly \
+    gstreamer1.0-plugins-good \
+    gstreamer1.0-plugins-imx \
 "
 
 require recipes-images/images/tdx-extra.inc
diff --git a/recipes-images/images/tdx-image-fstype.inc b/recipes-images/images/tdx-image-fstype.inc
index c6e909b..c1b84c6 100644
--- a/recipes-images/images/tdx-image-fstype.inc
+++ b/recipes-images/images/tdx-image-fstype.inc
@@ -8,7 +8,7 @@ IMAGE_DIR = "${IMAGE_NAME}_${TDX_VER_ITEM}"
 IMAGE_ROOTFS = "${WORKDIR}/${IMAGE_DIR}/rootfs"
 
 UBOOT_EXT = "bin"
-UBOOT_EXT_mx6 = "img"
+UBOOT_EXT_mx6 = "imx"
 UBOOT_EXT_colibri-imx6ull = "imx"
 UBOOT_EXT_mx7 = "imx"
 UBOOT_EXT_vf = "imx"

And conf diff:

hk@e560:/opt/yocto/build$ diff -U 0 conf conf.orig/
diff -U 0 conf/local.conf conf.orig/local.conf
--- conf/local.conf	2018-10-11 12:15:10.489678121 +0300
+++ conf.orig/local.conf	2018-10-11 12:03:23.692421349 +0300
@@ -2,2 +1,0 @@
-LICENSE_FLAGS_WHITELIST += "commercial"
-LICENSE_FLAGS_WHITELIST += "commercial_gst-plugins-ugly"
@@ -6 +4 @@
-DISTRO_FEATURES_remove = "x11 wayland"
+DISTRO_FEATURES_remove = "wayland"
@@ -11 +9 @@
-# be set in this file. More adventurous users can look at local.conf.extended
+# be set in this file. More adventurous users can look at local.conf.extended 
@@ -15 +13 @@
-# Lines starting with the '#' character are commented out and in some cases the
+# Lines starting with the '#' character are commented out and in some cases the 
@@ -23 +21 @@
-# These two options control how much parallelism BitBake should use. The first
+# These two options control how much parallelism BitBake should use. The first 
@@ -30 +28 @@
-#
+# 
@@ -53 +51 @@
-MACHINE ?= "colibri-imx6"
+#MACHINE ?= "colibri-imx6"
@@ -57 +55 @@
-#MACHINE ?= "colibri-t20"
+MACHINE ?= "colibri-t20"
@@ -123,2 +121,2 @@
-# This variable lists which packaging formats to enable. Multiple package backends
-# can be enabled at once and the first item listed in the variable will be used
+# This variable lists which packaging formats to enable. Multiple package backends 
+# can be enabled at once and the first item listed in the variable will be used 
@@ -138 +136 @@
-# you can build the SDK packages for architectures other than the machine you are
+# you can build the SDK packages for architectures other than the machine you are 
@@ -146 +144 @@
-# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
+# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated 
@@ -166 +164 @@
-EXTRA_IMAGE_FEATURES = "package-management"
+EXTRA_IMAGE_FEATURES = "debug-tweaks package-management"
@@ -172 +170 @@
-# enable extra features. Some available options which can be included in this variable
+# enable extra features. Some available options which can be included in this variable 
@@ -194,2 +192,2 @@
-# Under certain circumstances the system may need input from you and to do this it
-# can launch an interactive shell. It needs to do this since the build is
+# Under certain circumstances the system may need input from you and to do this it 
+# can launch an interactive shell. It needs to do this since the build is 
@@ -224 +222 @@
-    ABORT,${SSTATE_DIR},100M,1K"
+    ABORT,${SSTATE_DIR},100M,1K" 
@@ -229 +227 @@
-# As mentioned above, shared state files are prebuilt cache data objects which can
+# As mentioned above, shared state files are prebuilt cache data objects which can 
@@ -234,2 +232,2 @@
-# would contain the sstate-cache results from previous builds (possibly from other
-# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
+# would contain the sstate-cache results from previous builds (possibly from other 
+# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the 
@@ -252 +250 @@
-#ASSUME_PROVIDED += "libsdl-native"
+ASSUME_PROVIDED += "libsdl-native"
@@ -275,4 +272,0 @@
-PREFERRED_PROVIDER_virtual/kernel = "linux-toradex-rt"
-# https://www.toradex.com/community/questions/25246/error-compiling-real-time-linux-kernel.html
-MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE = "0"
-
@@ -283,9 +277 @@
-#include conf/machine/include/${MACHINE}.inc
-
-ACCEPT_FSL_EULA = "1"
-#INHERIT+="toaster buildhistory"
-
-PREFERRED_VERSION_imx-gpu-viv = "5.0.11.p8.6-hfp"
-
-# due to a bug at toradex, build both image types : https://developer.toradex.com/software/linux/linux-software/release-details?view=all&issue=17925
-#KERNEL_ALT_IMAGETYPE="zImage"
+include conf/machine/include/${MACHINE}.inc

hi @huseyinkozan

Have you done any changes before starting the compilation? If yes, could you provide these changes?

Thanks and best regards, Jaski

hi @huseyinkozan

To use the Gstreamer for Colibri-imx6, you need to apply this patch.

Best regards, Jaski

Thanks.
Applied the patch with cherry pick inside meta-toradex-nxp.
How can I force to rebuild and use that settings ?

I tried : bitbake console-tdx-image -c clean but no luck.

My add blocker was blocking my Submit button.
I have added build diffs to question.

Adding these lines to local.conf did the trick:

PREFERRED_VERSION_gstreamer1.0 = "1.12.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-base = "1.12.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-good = "1.12.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-bad = "1.12.imx"

Now, I have these:

Collected errors:
 * Solver encountered 2 problem(s):
 * Problem 1/2:
 *   - nothing provides gstreamer1.0-plugins-good-souphttpsrc needed by packagegroup-fsl-gstreamer1.0-network-base-1.0-r0.colibri_imx6
 * 
 * Solution 1:
 *   - do not ask to install a package providing packagegroup-fsl-gstreamer1.0

 * Problem 2/2:
 *   - nothing provides gstreamer1.0-plugins-good-souphttpsrc needed by packagegroup-fsl-gstreamer1.0-network-base-1.0-r0.colibri_imx6
 * 
 * Solution 1:
 *   - do not ask to install a package providing packagegroup-fsl-gstreamer1.0-full

Renaming fixed:

diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb
index b2f62fc..311d06b 100644
--- a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb
+++ b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb
@@ -107,7 +107,7 @@ RDEPENDS_${PN}-debug = " \
 # Basic networking plugins required by most pipelines that receive and/or send data
 RDEPENDS_${PN}-network-base = " \
     gstreamer1.0-plugins-base-tcp \
-    gstreamer1.0-plugins-good-souphttpsrc \
+    gstreamer1.0-plugins-good-soup \
     gstreamer1.0-plugins-good-udp \
 "

So did the compilation work now?

Yes, I built it.
Thanks again.

Perfect that it worked. Thanks for the feedback.