Skip to end of metadata
Go to start of metadata

Build Setup Instructions


Setting up the Host Environment

How to Build#SettinguptheHostEnvironment

Yocto 3.1 (Dunfell) support in RDK Emulator

Downloading Source Code & Building (Dunfell version of RDK-Emulator)


The following commands fetch the source code of the emulator using the Android repo tool
yocto workspace setup

mkdir dunfell && cd dunfell
repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkv-nosrc.xml 
repo sync -j `nproc` --no-clone-bundle --no-tags

The above step configures and sets up your directory to start an appropriate build for hybrid or media client.

For Mediaclient:
mediaclient image

MACHINE=qemux86mc-dunfell source meta-cmf-bsp-emulator/setup-environment  
bitbake rdk-generic-mediaclient-wpe-image

On Successful build, the image (in .vmdk format) would be available at the following reference location -

-       build-qemux86mc-dunfell/tmp/deploy/images/qemux86mc -dunfell

Prerequisites:

Changes needed to be done in the meta layers.

Meta LayerRecipeChange
1meta-rdk-bsp-emulatormeta-rdk-bsp-emulator/recipes-qt/qt5/qtbase_5.1.1.bbappend

diff --git a/recipes-qt/qt5/qtbase_5.1.1.bbappend b/recipes-qt/qt5/qtbase_5.1.1.bbappend
index a6bf466..c675286 100644
--- a/recipes-qt/qt5/qtbase_5.1.1.bbappend
+++ b/recipes-qt/qt5/qtbase_5.1.1.bbappend
@@ -24,6 +24,9 @@ SRC_URI_remove = "file://0005-qmake-is-already-built-in-qtbase-native.patch"
 PACKAGECONFIG_remove = "fontconfig"
 
 SRC_URI_append_morty = " file://disable-qmakefor-morty.patch"
+SRC_URI_append_dunfell = " file://disable-qmakefor-morty.patch"
+
  EXTRA_OECONF_append = " -qpa eglfs"
 
@@ -38,6 +41,9 @@ do_install_append_morty() {
 RDEPENDS_${PN}_append = " libegl-gallium mesa-driver-swrast"
 
 RDEPENDS_${PN}_remove_morty = "libegl-gallium"
+RDEPENDS_${PN}_remove_dunfell = "libegl-gallium"

 PACKAGECONFIG[zlib] = "-qt-zlib,zlib"

meta-rdk-bsp-emulator/recipes-graphics/westeros/westeros.bbappendFrom CXXFLAGS_append_dunfell = " DUSE_MESA"
To
CXXFLAGS_append_dunfell = " -DUSE_MESA"
meta-rdk-bsp-emulator/conf/layer.conf

Add 

BBMASK .= "|meta-rdk-restricted/recipes-extended/closedcaption/closedcaption-hal-headers_git.bb"
BBMASK .= "|meta-rdk-restricted/recipes-extended/closedcaption/closedcaption_git.bb"

meta-rdk-bsp-emulator/recipes-graphics/directfb/directfb_%.bbappend

Add

DEPENDS_remove_dunfell = "linux-fusion"
RDEPENDS_${PN}_remove_dunfell = "kernel-module-fusion"
EXTRA_OECONF_remove_dunfell = "--enable-multi"

2
build-qemux86mc-dunfell/conf/local.conf
  1. Modified the line from require conf/distro/include/##RDK_FLAVOR##.inc to 
    require conf/distro/include/rdkv.inc

2. Add these masks (if already present, ignore)

BBMASK .= "|meta-rdk/recipes-support/base64/base64_git.bb"
BBMASK .= "|meta-rdk-video/recipes-extended/ctrlm/ctrlm-xraudio-hal.bb"
BBMASK .= "|meta-rdk-ext/recipes-devtools/brotli/brotli_git.bb"
BBMASK .= "|meta-rdk-voice-sdk/recipes-support/xr-fdc/xr-fdc.bb"
BBMASK .= "|meta-rdk-restricted/recipes-thirdparty/tr69/tr69agent_git.bb"
BBMASK .= "|meta-rdk-video/recipes-extended/sysint/sysint_git.bb"
BBMASK .= "|meta-rdk-voice-sdk/recipes-xraudio"
BBMASK .= "|meta-rdk-voice-sdk/recipes-xraudio/xraudio/xraudio_1.0.bb"
BBMASK .= "|openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.3.bb"

3
meta-rdk/recipes-core/packagegroups/packagegroup-rdk-media-common.bb

RDEPENDS_packagegroup-rdk-media-common = "\
    ${CLOSEDCAPTION} \ ====Remove
    devicesettings \

    virtual/gst-plugins-playersinkbin \ === Remove

4
meta-rdk-bsp-emulator/recipes-extended/closedcaption/closedcaption-hal_git.bbDEPENDS = "closedcaption-hal-headers" ==== Comment the line
5
meta-rdk-restricted/recipes-extended/mediaframework/rmfapp_git.bbCommend the line 
RMFAPP_MEDIACLIENT_DEPENDS += "closedcaption"

6
meta-rdk-bsp-emulator/recipes-extended/mediaframework/rmfapp_git.bbappendComment the line 
RMFAPP_MEDIACLIENT_DEPENDS += "closedcaption"
7
meta-rdk/recipes-core/packagegroups/packagegroup-rdk-media-common.bbComment the below lines
RDEPENDS_packagegroup-rdk-media-common_append_qemuall = " sysint "
RDEPENDS_packagegroup-rdk-media-common_append_qemuall = " sysint-conf "
8
meta-rdk/recipes-core/packagegroups/packagegroup-rdk-mediaclient.bbRDEPENDS_packagegroup-rdk-generic-mediaclient = "\
    dnsmasq \
    ${@bb.utils.contains("WEBBACKENDS", "rdkbrowser", "rdkbrowser rdkbrowser-webserver", "", d)} \
    tr69agent \  === remove this line
9
meta-cmf-video/recipes-xraudio/xraudio/xraudio_1.0.bbappend

Remove ctrlm-xraudio-hal  from the line

DEPENDS_append = " ctrlm-xraudio-hal jansson"

10
conf/bblayers.conf 

Add the following lines at the end
BBLAYERS =+ "${RDKROOT}/meta-rdk-bsp-emulator"
BBLAYERS =+ "${RDKROOT}/meta-cmf-bsp-emulator"
BBLAYERS =+ "${RDKROOT}/meta-openembedded/meta-initramfs"

11

meta-rdk-bsp-emulator/conf/machine/qemux86mc-dunfell.conf


Note: copy the file meta-rdk-bsp-emulator/conf/machine/qemux86mc-morty.conf and name it as above and make these changes

Add the following lines

# Disable Vc4 graphics
DISABLE_VC4GRAPHICS = "1"
DISTRO_FEATURES_append = " rdkshell offline_apps"
DISTRO_FEATURES_append = " cobalt-plugin"
# no more onscreen terminal required for RDK service
DISTRO_FEATURES_append = " systemd-disable-getty"
# for spark
DISTRO_FEATURES_append = " spark"
DISTRO_FEATURES_append = " wifi bluez5 bluetooth"

Update the gstreamer version from 1.14.0 to 1.16.3

PREFERRED_VERSION_gstreamer1.0 = "1.16.3"
PREFERRED_VERSION_gstreamer1.0-libav = "1.16.3"
PREFERRED_VERSION_gstreamer1.0-plugins-bad = "1.16.3"
PREFERRED_VERSION_gstreamer1.0-plugins-base = "1.16.3"
PREFERRED_VERSION_gstreamer1.0-plugins-good = "1.16.3"
PREFERRED_VERSION_gstreamer1.0-omx = "1.16.3"

Update

MACHINEOVERRIDES .= ":dunfell"

Update plymouth version from 0.8.8 to 0.9.%

PREFERRED_VERSION_plymouth ?= "0.9.%"

12

meta-rdk-bsp-emulator/recipes-core/packagegroups/packagegroup-rdk-baserootfs.bbappend

Note: If packages is not present in the above file, search in the following line:

meta-rdk/recipes-core/packagegroups/packagegroup-rdk-baserootfs.bb

Insert "closedcaption-hal \' in the PACKAGES at the top
13
meta-rdk/recipes-core/packagegroups/packagegroup-rdk-media-common.bb

Insert  closedcapton in the PACKAGES

PACKAGES = "\
    closedcaption \
    packagegroup-rdk-media-common \

14
meta-rdk-bsp-emulator/conf/machine/include/qemux86-soc.inc

Update

  1. PREFERRED_PROVIDER_virtual/devicesettings-hal = "devicesettings-hal-noop"

2. PREFERRED_PROVIDER_virtual/iarmmgrs-hal = "iarmmgrs-hal-noop"

3. PREFERRED_PROVIDER_virtual/mfrlib ?= "mfrlib-noop"

If the following line is not present, add it at last:

IMAGE_FEATURES_remove_morty = "read-only-rootfs"

15
meta-rdk-video/recipes-extended/iarmmgrs/iarmmgrs_git.bb

Comment the below line

RDEPENDS_${PN}_dunfell += "${VIRTUAL-RUNTIME_mfrlib} devicesettings"


Add the following line

INSANE_SKIP_${PN} += "file-rdeps" 

16
meta-rdk-video/recipes-multimedia/gstreamer/gst-plugins-rdk_git.bb

Comment the below line

RDEPENDS_${PN}_dunfell += "${VIRTUAL-RUNTIME_dtcpmgr}"

17
meta-cmf/recipes-graphics/directfb/linux-fusion_9.0.3.bbappend

Remove the line below

file://user_msghdr.patch \  

18
meta-rdk-ext/recipes-graphics/directfb/directfb_%.bbappendDEPENDS_remove_dunfell = "linux-fusion"
RDEPENDS_${PN}_remove_dunfell = "kernel-module-fusion"
EXTRA_OECONF_remove_dunfell = "--enable-multi"
19

meta-cmf/recipes-core/packagegroups/packagegroup-rdk-media-common.bbappend

Comment the following lines

RDEPENDS_packagegroup-rdk-media-common_append = " xraudio-utils"

RDEPENDS_packagegroup-rdk-media-common_append = " ctrlm-main"

20
meta-rdk-restricted/recipes-extended/mediaframework/rmfgeneric_git.bb

Comment the following line

RDEPENDS_${PN}_dunfell += "${VIRTUAL-RUNTIME_dtcpmgr}"


Errors and Fixes:


Source File

Error/ Warning

Fix

Code Review 

1

ERROR: sysint-1.99-r0 do_fetch: Fetcher failure for URL: 'file://xi-xconf-hosts_qemux86.list'. Unable to fetch URL from any source.
ERROR: Logfile of failure stored in: /home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/sysint/1.99-r0/temp/log.do_fetch.2603462
ERROR: Task (/home/dsrava434/dunfell/meta-rdk-video/recipes-extended/sysint/sysint_git.bb:do_fetch) failed with exit code '1'

Renamed the file in the path meta-cmf-restricted/recipes-extended/sysint/sysint/qemux86 from xconf-hosts_qemux86.list to xi-xconf-hosts_qemux86.list.
2qtbase-opensource-src-5.1.1/src/gui/opengl/qopengl.h

/qtbase/5.1.1-r0/qtbase-opensource-src-5.1.1/src/plugins/platforms/kms/qkmsintegration.cpp:45:
| ../../../../include/QtGui/../../../qtbase-opensource-src-5.1.1/src/gui/opengl/qopengl.h: At global scope:
| ../../../../include/QtGui/../../../qtbase-opensource-src-5.1.1/src/gui/opengl/qopengl.h:97:17: error: conflicting declaration 'typedef GLfloat GLdouble'

|       |                 ^~~~~~~~
| In file included from /home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/qtbase/5.1.1-r0/qtbase-opensource-src-5.1.1/src/plugins/platforms/kms/qkmsscreen.h:59,
|                  from /home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/qtbase/5.1.1-r0/qtbase-opensource-src-5.1.1/src/plugins/platforms/kms/qkmscontext.cpp:42:
| /home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/qtbase/5.1.1-r0/recipe-sysroot/usr/include/GLES2/gl2ext.h:3092:16: note: previous declaration as 'typedef double GLdouble'
|  3092 | typedef double Gldouble;

open build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/qtbase/5.1.1-r0/recipe-sysroot/usr/include/GLES2/gl2ext.h

edit this data type. in line no. 3092

typedef double GLdouble; =======> change double to GLfloat


3build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/westeros-sink/1.0+gitrAUTOINC+acd6993e55-r0/recipe-sysroot-native/usr/bin/aclocal| autoreconf: configure.ac: not using Gettext
| autoreconf: running: aclocal –system-acdir=/home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/westeros-sink/1.0+gitrAUTOINC+3cfeed5212-r0/recipe-sysroot/usr/share/aclocal/
 --automake-acdir=/home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/westeros-sink/1.0+gitrAUTOINC+3cfeed5212-r0/recipe-sysroot-native/usr/share/aclocal-1.16 -I
 /home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/westeros-sink/1.0+gitrAUTOINC+3cfeed5212-r0/recipe-sysroot-native/usr/share/aclocal/ --force
| aclocal: error: couldn't open directory 'cfg': No such file or directory
| autoreconf: aclocal failed with exit status: 1

Open the source file and update the following

my $message = "couldn't open directory '$m4dir': $!";

          # if ($err_level == SCAN_M4_DIRS_ERROR)
          # {
          #   fatal $message;
          # }
          #elsif ($err_level == SCAN_M4_DIRS_WARN)
          if ($err_level == SCAN_M4_DIRS_WARN)
            {
              msg ('unsupported', $message);
              next;
            }
          elsif ($err_level == SCAN_M4_DIRS_SILENT)
            {
              next; # Silently ignore.
            }
          else
            {
                    #  prog_error "invalid \$err_level value '$err_level'";
            }


4openembedded-core/meta/classes/insane.bbclass

WARNING: qtbase-5.1.1-r0 do_package_qa: QA Issue: qtbase: /usr/share/fonts/helvetica_240_50i.qpf is owned by uid 1002, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]
WARNING: qtbase-5.1.1-r0 do_package_qa: QA Issue: qtbase-qmlplugins-dbg: found library in wrong location: /usr/share/qt5/examples/widgets/tools/echoplugin/plugin/.debug/libechoplugin.so
qtbase-qmlplugins-dbg: found library in wrong location: /usr/share/qt5/examples/widgets/tools/plugandpaint/plugins/.debug/libpnp_extrafilters.so
qtbase-qmlplugins-dbg: found library in wrong location: /usr/share/qt5/examples/widgets/tools/styleplugin/styles/.debug/libsimplestyleplugin.so
qtbase-examples-dev: found library in wrong location: /usr/share/qt5/examples/widgets/tools/echoplugin/plugin/libechoplugin.so
qtbase-examples-dev: found library in wrong location: /usr/share/qt5/examples/widgets/tools/plugandpaint/plugins/libpnp_extrafilters.so
qtbase-examples-dev: found library in wrong location: /usr/share/qt5/examples/widgets/tools/styleplugin/styles/libsimplestyleplugin.so [libdir]
NOTE: recipe qtbase-5.1.1-r0: task do_package_qa: Failed
NOTE: Tasks Summary: Attempted 5678 tasks of which 5675 didn't need to be rerun and 3 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 2 seconds




5
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: Architecture did not match (x86-64, expected x86) on /work/core2-32-rdk-linux/qtbase/5.1.1-r0/packages-split/qtbase/usr/bin/qmake [arch]

6
from DerivedSources/WebCore/unified-sources/UnifiedSource74.cpp:1:
DerivedSources/ForwardingHeaders/wtf/CheckedArithmetic.h:568:20: note: because 'WTF::Checked<unsigned int>' has user-provided 'const WTF::Checked<T, OverflowHandler>& WTF::Checked<T, OverflowHandler>::operator=(WTF::Checked<T, OverflowHandler>) [with T = unsigned int; OverflowHandler = WTF::CrashOnOverflow]'
568 | const Checked& operator=(Checked rhs)
| ^~~~~~~~
DerivedSources/ForwardingHeaders/wtf/CheckedArithmetic.h:831:173: note: initializing argument 1 of 'WTF::Checked<typename WTF::Result<U, V>::ResultType, OverflowHandler> WTF::operator*(WTF::Checked<U, OverflowHandler>, V) [with U = unsigned int; V = unsigned int; OverflowHandler = WTF::CrashOnOverflow; typename WTF::Result<U, V>::ResultType = unsigned int]'
831 | template <typename U, typename V, typename OverflowHandler> static inline Checked<typename Result<U, V>::ResultType, OverflowHandler> operator*(Checked<U, OverflowHandler> lhs, V rhs)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
ninja: build stopped: subcommand failed.


7
In member function 'virtual void WebCore::MediaPlayerPrivateGStreamer::updateStates()':
/home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/wpe-webkit/2.22.2+gitAUTOINC+22d6522031-r0/git/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:2195:28: error: 'm_streamPrivate' was not declared in this scope; did you mean 'GIOStreamPrivate'?
2195 | m_readyState = m_streamPrivate ? MediaPlayer::HaveCurrentData : MediaPlayer::HaveEnoughData;
| ^~~~~~~~~~~~~~~
| GIOStreamPrivate


8Updated the Makefile to unclude proper directoriesFile missing errors for linux/linkage.h, inux/types.h, linux/stddef.h, linux/limits.h , linux/bitops.h 

9build-qemux86mc-dunfell/tmp/work-shared/qemux86mc-dunfell/kernel-source/scripts/Makefile
From HOSTCFLAGS_extract-cert.o = $(CRYPTO_CFLAGS) 
To
HOSTCFLAGS_extract-cert.o = $(CRYPTO_CFLAGS) -I$(srctree)/include/uapi/linux

10
Error : | /home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/hosttools/ld: cannot find -lcrypto
| collect2: error: ld returned 1 exit status
| scripts/Makefile.host:107: recipe for target 'scripts/extract-cert' failed


11
| util-linux/mount.c:253:11: fatal error: rpc/rpc.h: No such file or directory

12
 home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/iarmmgrs/1.99-r0/recipe-sysroot/usr/include/libsafec  | irMgrMain.c:52:10: fatal error: cap.h: No such file or directory
|    52 | #include "cap.h"
|       |          ^~~~~~~
| compilation terminated.
| Makefile:132: recipe for target 'irMgrMain.o' failed
| make: *** [irMgrMain.o] Error 1
| make: Leaving directory '/home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/iarmmgrs/1.99-r0/git/ir'
| ERROR: oe_runmake failed
ERROR: Execution of '/home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/iarmmgrs/1.99-r0/temp/run.do_compile.3085602' failed with exit code 1:
|| WARNING: exit code 1 from a shell command.
|
NOTE: recipe iarmmgrs-1.99-r0: task do_compile: Failed


13
| DerivedSources/ForwardingHeaders/wtf/CheckedArithmetic.h:831:173: note:   initializing argument 1 of 'WTF::Checked<typename WTF::Result<U, V>::ResultType, OverflowHandler> WTF::operator*(WTF::Checked<U, OverflowHandler>, V) [with U = unsigned int; V = unsigned int; OverflowHandler = WTF::CrashOnOverflow; typename WTF::Result<U, V>::ResultType = unsigned int]'
|   831 | template <typename U, typename V, typename OverflowHandler> static inline Checked<typename Result<U, V>::ResultType, OverflowHandler> operator*(Checked<U, OverflowHandler> lhs, V rhs)
|       |                                                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
| ninja: build stopped: subcommand failed.
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of '/home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/wpe-webkit/2.22.2+gitAUTOINC+22d6522031-r0/temp/run.do_compile.3085636' failed with exit code 1:


14
| /home/dsrava434/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/westeros/1.0+gitrAUTOINC+bb0164e23f-r0/recipe-sysroot-native/usr/bin/wayland-scanner code < vpc.xml > vpc-protocol.c
| %3Cstdin%3E:259: element entry: validity error : Element entry content does not follow the DTD, expecting (description)?, got (CDATA)
| %3Cstdin%3E:263: element entry: validity error : Element entry content does not follow the DTD, expecting (description)?, got (CDATA)
| %3Cstdin%3E:267: element entry: validity error : Element entry content does not follow the DTD, expecting (description)?, got (CDATA)
| %3Cstdin%3E:273: element entry: validity error : Element entry content does not follow the DTD, expecting (description)?, got (CDATA)


15
 | util-linux/mount.c:253:11: fatal error: rpc/rpc.h: No such file or directory
|   253 | # include <rpc/rpc.h>
|       |           ^~~~~~~~~~~
| compilation terminERROR: Task (/home/dsrava434/Sowmya/openembedded-core/meta/recipes-core/busybox/busybox_1.31.1.bb:do_compile) failed with exit code '1'
ated.
Copy file build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libwebp/0.5.0-r0/recipe-sysroot-native/usr/include/tirpc/rpc/rpc.h to the path build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/busybox/1.31.1-r0/recipe-sysroot/usr/include/rpc
16
| In file included from util-linux/mount.c:253:
| /home/dsrava434/Sowmya/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/busybox/1.31.1-r0/recipe-sysroot/usr/include/rpc/rpc.h:38:10: fatal error: rpc/types.h: No such file or directory
|    38 | #include <rpc/types.h>  /* some typedefs */
|       |          ^~~~~~~~~~~~~
| compilation terminated.

Copy file build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libwebp/0.5.0-r0/recipe-sysroot-native/usr/include/tirpc/rpc/types.h to the path build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/busybox/1.31.1-r0/recipe-sysroot/usr/include/rpc


similarily add all the header files one by one to the rpc folder when same error comes up with different file missing. Please find the same error below but solution is in different directory if working in laptop.


17
| util-linux/mount.c:253:11: fatal error: rpc/rpc.h: No such file or directory
|   253 | # include <rpc/rpc.h>
|       |           ^~~~~~~~~~~
| compilation terminated.
| scripts/Makefile.build:197: recipe for target 'util-linux/mount.o' failed

copy file rpc.h from build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libwebp/0.5.0-r0/recipe-sysroot-native/usr/include/tirpc/rpc/

and paste it in build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/busybox/1.31.1-r0/recipe-sysroot/usr/include/rpc


similarily add other header files as well (if prompted).

if asked for netconfig.h file, it can be found in build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libwebp/0.5.0-r0/recipe-sysroot-native/usr/include/tirpc/

copy it and paste it in build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/busybox/1.31.1-r0/recipe-sysroot/usr/include


18buildx86qemux-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/devicesettings-hal-noop/1.99+gitrAUTOINC+821b4346bf-r0/git/dsAudio.c| dsAudio.c:36:11: error: conflicting types for 'dsGetAudioCompression'
|    36 | dsError_t dsGetAudioCompression(int handle, dsAudioCompression_t *compression)
|       |           ^~~~~~~~~~~~~~~~~~~~~
| In file included from dsAudio.c:13:
| /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/devicesettings-hal-noop/1.99+gitrAUTOINC+821b4346bf-r0/recipe-sysroot/usr/include/rdk/ds-hal/dsAudio.h:134:12: note: previous declaration of 'dsGetAudioCompression' was here
|   134 | dsError_t  dsGetAudioCompression(int handle, int *compression);
|       |            ^~~~~~~~~~~~~~~~~~~~~
| dsAudio.c:102:11: error: conflicting types for 'dsSetAudioCompression'
|   102 | dsError_t dsSetAudioCompression(int handle, dsAudioCompression_t compression)
|       |           ^~~~~~~~~~~~~~~~~~~~~
| In file included from dsAudio.c:13:
| /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/devicesettings-hal-noop/1.99+gitrAUTOINC+821b4346bf-r0/recipe-sysroot/usr/include/rdk/ds-hal/dsAudio.h:597:12: note: previous declaration of 'dsSetAudioCompression' was here
|   597 | dsError_t  dsSetAudioCompression(int handle, int compression);

Update the following in the source file (change data type from compression to int):


dsError_t dsSetAudioCompression(int handle, int compression)
  {
          dsError_t ret = dsERR_OPERATION_NOT_SUPPORTED;
          /* This is a empty operation in RNG150 */
          return ret;
  }

dsError_t dsGetAudioCompression(int handle, int *compression)
      {
          dsError_t ret = dsERR_NONE;
          return ret;
      }


19
| util-linux/mount.c:1061: error: undefined reference to 'xdr_u_int'
| util-linux/mount.c:1056: error: undefined reference to 'xdr_opaque'
| util-linux/mount.c:1093: error: undefined reference to 'xdr_enum'
| util-linux/mount.c:1075: error: undefined reference to 'xdr_bytes'
| util-linux/mount.c:1084: error: undefined reference to 'xdr_int'
| util-linux/mount.c:1084: error: undefined reference to 'xdr_array'
| util-linux/mount.c:1070: error: undefined reference to 'xdr_string'
| util-linux/mount.c:1149: error: undefined reference to 'pmap_getmaps'
| util-linux/mount.c:1659: error: undefined reference to 'clntudp_create'
| util-linux/mount.c:1669: error: undefined reference to 'clnttcp_create'
| util-linux/mount.c:1679: error: undefined reference to 'clnt_spcreateerror'
| util-linux/mount.c:1684: error: undefined reference to 'authunix_create_default'
| util-linux/mount.c:1709: error: undefined reference to 'clnt_sperror'
| util-linux/mount.c:1714: error: undefined reference to 'clnt_sperror'
| util-linux/mount.c:1795: error: undefined reference to 'pmap_getport'
| collect2: error: ld returned 1 exit status
| Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS.
| Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam"
| Makefile:719: recipe for target 'busybox_unstripped' failed
| make: * [busybox_unstripped] Error 1
| ERROR: oe_runmake failed
| WARNING: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/busybox/1.31.1-r0/temp/run.do_compile.18458:1 exit 1 from 'exit 1'

open this inc file openembedded-core/meta/recipes-core/busybox/busybox.inc and update

-DEPENDS += "kern-tools-native virtual/crypt"
+DEPENDS += "kern-tools-native virtual/crypt libtirpc"

-export EXTRA_CFLAGS = "${CFLAGS}"
-export EXTRA_LDFLAGS = "${LDFLAGS}"
+export EXTRA_CFLAGS = "${CFLAGS} -I${STAGING_INCDIR}/tirpc"
+export EXTRA_LDFLAGS = "${LDFLAGS} -ltirpc"

open this file openembedded-core/meta/recipes-core/busybox/busybox/defconfig and update

-# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_NFS=y


20dunfell/meta-rdk-bsp-emulator/recipes-support/gdisplay/gdisplay_1.0.bbERROR: gdisplay-1.0-r0 do_package_qa: QA Issue: /usr/sbin/gdisplay.sh contained in package gdisplay requires /bin/bash, but no providers found in RDEPENDS_gdisplay? [file-rdeps]
ERROR: gdisplay-1.0-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: Logfile of failure stored in: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/gdisplay/1.0-r0/temp/log.do_package_qa.30740
ERROR: Task (/home/user/dunfell/meta-rdk-bsp-emulator/recipes-support/gdisplay/gdisplay_1.0.bb:do_package_qa) failed with exit code '1'

Add this line in source file

RDEPENDS_${PN} = "bash"


21
ERROR: libcobalt-21.lts.stable-7 do_configure: Execution of '/home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libcobalt/21.lts.stable-7/temp/run.do_configure.22252' failed with exit code 2
ERROR: Logfile of failure stored in: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libcobalt/21.lts.stable-7/temp/log.do_configure.22252
Log data follows:
| DEBUG: Executing shell function do_configure
| usage: gyp_cobalt [-h] [-C CONFIG] [-D DEBUGMODE] [--check] [-v]
|                   platform [build_file]
| gyp_cobalt: error: too few arguments
| WARNING: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libcobalt/21.lts.stable-7/temp/run.do_configure.22252:1 exit 2 from '/home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/libcobalt/21.lts.stable-7/git/src/cobalt/build/gyp_cobalt -C qa -C gold -C devel'

open local.conf and mask these files

BBMASK .= "|meta-rdk-video/recipes-extended/cobalt/libcobalt_21.lts.stable.bb"
BBMASK .= "|meta-rdk-video/recipes-extended/cobalt/cobalt-plugin_git.bb"

if it's also throwing error for libcobalt-22, add this mask too

BBMASK .= "|meta-rdk-video/recipes-extended/cobalt/libcobalt_22.lts.stable.bb"

open meta-rdk-video/recipes-core/packagegroups/packagegroup-rdk-mediaclient.bbappend and update (remove cobalt-plugin)

RDEPENDS_packagegroup-rdk-generic-mediaclient_append = " ${@bb.utils.contains('DISTRO_FEATURES', '', '', '', d)}"


22
| Dependency nettle found: NO found 2.7.1 but need: '>= 3.0'
| Run-time dependency nettle found: NO (tried pkgconfig and cmake)
 ext/hls/meson.build:47:4: ERROR: Problem encountered: HLS plugin enabled with crypto, but crypto library "nettle" not found
 | A full log can be found at /home/user/Dunfel/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/gstreamer1.0-plugins-bad/1.16.3-r0/build/meson-logs/meson-log.txt
 
 ./tmp/work/core2-32-rdk-linux/gstreamer1.0-plugins-bad/1.14.1-r0/gst-plugins-bad-1.14.1/ext/hls/meson.build

open meta-rdk/conf/distro/rdk.conf and change 3.3.% to 3.5.%

PREFERRED_VERSION_gnutls_dunfell ?= "3.5.%"


23
Any do_fetch: Fetcher failure errors

Go to dunfell/

Run these commands in order

repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkv-nosrc.xml 

MACHINE=qemux86mc-dunfell source meta-cmf-bsp-emulator/setup-environment  

bitbake rdk-generic-mediaclient-wpe-image


24
| meson.build:18:0: ERROR: Subproject directory not found and FFmpeg.wrap file not found

| A full log can be found at /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/gstreamer1.0-libav/1.16.3-r0/build/meson-logs/meson-log.txt
| ERROR: meson failed
| WARNING: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/gstreamer1.0-libav/1.16.3-r0/temp/run.do_configure.22683:1 exit 1 from 'exit 1'

open meta-rdk/conf/distro/rdk.conf and add these lines:

PREFERRED_PROVIDER_ffmpeg = "ffmpeg"  ==========> added this line

LICENSE_FLAGS_WHITELIST += "commercial_gst-fluendo-mpegdemux \
                            commercial_gst_ffmpeg \
                            commercial_ffmpeg \   ======> added this line
                            commercial_libav \


25
| In file included from ../git/rmfApp/pipeline.cpp:55:
| ../git/rmfApp/closedcaption.h:22:10: fatal error: vlCCConstants.h: No such file or directory
|    22 | #include "vlCCConstants.h"
|       |          ^~~~~~~~~~~~~~~~~
| In file included from ../git/rmfApp/rmfApp.cpp:54:
| ../git/rmfApp/closedcaption.h:22:10: fatal error: vlCCConstants.h: No such file or directory
|    22 | #include "vlCCConstants.h"
|       |          ^~~~~~~~~~~~~~~~~
| compilation terminated.
| compilation terminated.
| Makefile:589: recipe for target 'pipeline.o' failed
| make[1]: *** [pipeline.o] Error 1
| make[1]: *** Waiting for unfinished jobs....
| Makefile:589: recipe for target 'rmfApp.o' failed
| make[1]: *** [rmfApp.o] Error 1
| ../git/rmfApp/closedcaption.cpp:22:10: fatal error: ccDataReader.h: No such file or directory
|    22 | #include "ccDataReader.h"
|       |          ^~~~~~~~~~~~~~~~
| compilation terminated.
| Makefile:589: recipe for target 'closedcaption.o' failed
| make[1]: *** [closedcaption.o] Error 1
| make[1]: Leaving directory '/home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/rmfapp/1.99+gitAUTOINC+4bf7155ef7-r0/build'
| Makefile:621: recipe for target 'all-recursive' failed
| make: *** [all-recursive] Error 1
| ERROR: oe_runmake failed
| WARNING: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/rmfapp/1.99+gitAUTOINC+4bf7155ef7-r0/temp/run.do_compile.25326:1 exit 1 from 'exit 1'

open meta-rdk-bsp-emulator/recipes-extended/mediaframework/rmfapp_git.bbappend and comment this line:

EXTRA_OECONF += " --enable-ccaption"


26
| ../../neon-0.30.2/src/ne_privssl.h:91:30: error: unknown type name 'gnutls_privkey_sign_func'; did you mean 'gnutls_sign_func'?
  |    91 |                              gnutls_privkey_sign_func sign_func, void *userdata);
  |       |                              ^~~~~~~~~~~~~~~~~~~~~~~~
  |       |                              gnutls_sign_func
  | In file included from ../../neon-0.30.2/src/ne_gnutls.c:61:
  | ../../neon-0.30.2/src/ne_privssl.h:91:30: error: unknown type name 'gnutls_privkey_sign_func'; did you mean 'gnutls_sign_func'?
  |    91 |                              gnutls_privkey_sign_func sign_func, void *userdata);
  |       |                              ^~~~~~~~~~~~~~~~~~~~~~~~
  |       |                              gnutls_sign_func
  | ../../neon-0.30.2/src/ne_gnutls.c: In function 'ne_ssl_context_create':
  | ../../neon-0.30.2/src/ne_gnutls.c:706:9: warning: 'gnutls_certificate_client_set_retrieve_function' is deprecated [-Wdeprecated-declarations]
  |   706 |         gnutls_certificate_client_set_retrieve_function(ctx->cred,
  |       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  | In file included from /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/neon/0.30.2-r0/recipe-sysroot/usr/include/gnutls/gnutls.h:1775,
  |                  from ../../neon-0.30.2/src/ne_gnutls.c:35:
  | /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/neon/0.30.2-r0/recipe-sysroot/usr/include/gnutls/compat.h:158:6: note: declared here
  |   158 | void gnutls_certificate_client_set_retrieve_function
  |       |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  | ../../neon-0.30.2/src/ne_gnutls.c:707:57: warning: passing argument 2 of 'gnutls_certificate_client_set_retrieve_function' from incompatible pointer type [-Wincompatible-pointer-types]
  |   707 |                                                         provide_client_cert);
  |       |                                                         ^~~~~~~~~~~~~~~~~~~
  |       |                                                         |
  |       |                                                         int (*)(struct gnutls_session_int *, const gnutls_datum_t *, int,  const gnutls_pk_algorithm_t *, int,  gnutls_retr2_st *) {aka int (*)(struct gnutls_session_int *, const struct <anonymous> *, int,  const enum <anonymous> *, int,  struct gnutls_retr2_st *)}
  | In file included from /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/neon/0.30.2-r0/recipe-sysroot/usr/include/gnutls/gnutls.h:1775,
  |                  from ../../neon-0.30.2/src/ne_gnutls.c:35:
  | /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/neon/0.30.2-r0/recipe-sysroot/usr/include/gnutls/compat.h:161:4: note: expected 'int (*)(struct gnutls_session_int *, const gnutls_datum_t *, int,  const gnutls_pk_algorithm_t *, int,  gnutls_retr_st *)' {aka 'int (*)(struct gnutls_session_int *, const struct <anonymous> *, int,  const enum <anonymous> *, int,  struct gnutls_retr_st *)'} but argument is of type 'int (*)(struct gnutls_session_int *, const gnutls_datum_t *, int,  const gnutls_pk_algorithm_t *, int,  gnutls_retr2_st *)' {aka 'int (*)(struct gnutls_session_int *, const struct <anonymous> *, int,  const enum <anonymous> *, int,  struct gnutls_retr2_st *)'}
  |   160 |    gnutls_certificate_client_retrieve_function *
  |       |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  |   161 |    func) _GNUTLS_GCC_ATTR_DEPRECATED;
  |       |    ^~~~
  | ../../neon-0.30.2/src/ne_socket.c: In function 'writev_raw':
  | ../../neon-0.30.2/src/ne_socket.c:580:8: warning: implicit declaration of function 'writev'; did you mean 'write'? [-Wimplicit-function-declaration]
  |   580 |  ret = writev(sock->fd, vec, count);
  |       |        ^~~~~~
  |       |        write
  | Makefile:69: recipe for target 'ne_gnutls.lo' failed
  | make[1]: *** [ne_gnutls.lo] Error 1
  | make[1]: *** Waiting for unfinished jobs....
  | Makefile:69: recipe for target 'ne_socket.lo' failed
  | make[1]: *** [ne_socket.lo] Error 1
  | make[1]: Leaving directory '/home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/neon/0.30.2-r0/build/src'
  | Makefile:88: recipe for target 'subdirs' failed
  | make: *** [subdirs] Error 2
  | ERROR: oe_runmake failed
change gnutls_privkey_sign_func to gnutls_sign_func in build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/neon/0.30.2-r0/neon-0.30.2/src/ne_privssl.h
ne__ssl_clicert_exkey_import(const unsigned char *der, size_t der_len,
                             gnutls_privkey_sign_func sign_func, void *userdata)
ne__ssl_clicert_exkey_import(const unsigned char *der, size_t der_len,
                                                          gnutls_sign_func sign_func, void *userdata)

27
| mfrMgr.c:248: error: undefined reference to 'WIFI_SetCredentials'
| mfrMgr.c:259: error: undefined reference to 'WIFI_GetCredentials'
| collect2: error: ld returned 1 exit status
| Makefile:107: recipe for target 'executable' failed
| make: * [executable] Error 1
| make: Leaving directory '/home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/iarmmgrs/1.99-r0/git/mfr'
| ERROR: oe_runmake failed
| WARNING: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/iarmmgrs/1.99-r0/temp/run.do_compile.20084:1 exit 1 from 'exit 1'

open meta-rdk-video/recipes-extended/iarmmgrs/iarmmgrs_git.bb and comment:

CFLAGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', '-DENABLE_MFR_WIFI', '', d)}"



28

ERROR: rdk-generic-mediaclient-wpe-image-1.0-r0 do_rootfs: Unable to install packages. Command '/home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/recipe-sysroot-native/usr/bin/opkg --volatile-cache -f /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/opkg.conf -t /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/ipktemp/ -o /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/rootfs --force_postinstall --prefer-arch-to-version --add-ignore-recommends qtbase-fonts-pfa --add-ignore-recommends qtbase-fonts-qpf --add-ignore-recommends qtbase-fonts-ttf-vera --add-ignore-recommends udev-hwdb install base-passwd gdisplay gstreamer1.0-plugins-bad-ivfparse gstreamer1.0-plugins-base-meta gstreamer1.0-plugins-good-meta keyutil opkg packagegroup-base-extended packagegroup-core-boot packagegroup-gstreamer-plugins packagegroup-rdk-baserootfs packagegroup-rdk-generic-mediaclient packagegroup-rdk-media-common packagegroup-rdk-oss-mediaclient packagegroup-rdk-qt5 plymouth run-postinsts shadow util-linux-uuidgen westeros westeros-init westeros-sink wpe-webkit wpe-webkit-init' returned 3:
Collected errors:
* Solver encountered 3 problem(s):
* Problem 1/3:
* - nothing provides gstreamer1.0-plugins-bad-ceaccoverlay needed by packagegroup-gstreamer-plugins-1.0-r0.all
*
* Solution 1:
* - do not ask to install a package providing packagegroup-gstreamer-plugins



* Problem 2/3:
* - nothing provides gstreamer1.0-plugins-bad-dataurisrc needed by wpe-webkit-2.22.4+git0+ed39c92e59-r0.core2-32
*
* Solution 1:
* - do not ask to install a package providing wpe-webkit



* Problem 3/3:
* - nothing provides gstreamer1.0-plugins-bad-dataurisrc needed by wpe-webkit-2.22.4+git0+ed39c92e59-r0.core2-32
*
* Solution 1:
* - do not ask to install a package providing packagegroup-rdk-media-common



* opkg_finalize_intercepts: Failed to open dir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/ipktemp//opkg-bVuT9y/opkg-intercept-yuBN4w: No such file or directory.
* rm_r: Failed to open dir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/ipktemp//opkg-bVuT9y/opkg-intercept-yuBN4w: No such file or directory.
* rm_r: Failed to open dir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/ipktemp//opkg-bVuT9y: No such file or directory.
Disfavor package: qtbase-fonts-pfa
Disfavor package: qtbase-fonts-ttf-vera
Disfavor package: qtbase-fonts-qpf
Disfavor package: udev-hwdb



ERROR: Logfile of failure stored in: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/log.do_rootfs.26069
ERROR: Task (/home/user/dunfell/meta-rdk/recipes-core/images/rdk-generic-mediaclient-wpe-image.bb:do_rootfs) failed with exit code '1'

removed gstreamer1.0-plugins-bad-ceaccoverlay from RDEPENDS in ./meta-rdk-bsp-emulator/recipes-core/packagegroups/packagegroup-gstreamer-plugins.bb file


removed gstreamer1.0-plugins-bad-dataurisrc from RDEPS_EXTRA in ./meta-rdk-ext/recipes-extended/wpe-webkit/wpe-webkit.inc



29

ERROR: rdk-generic-mediaclient-wpe-image-1.0-r0 do_rootfs: Postinstall scriptlets of ['busybox'] have failed. If the intention is to defer them to first boot,
then please place them into pkg_postinst_ontarget_${PN} ().
Deferring to first boot via 'exit 1' is no longer supported.
Details of the failure are in /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/log.do_rootfs.
ERROR: Logfile of failure stored in: /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/log.do_rootfs.19852
ERROR: Task (/home/user/dunfell/meta-rdk/recipes-core/images/rdk-generic-mediaclient-wpe-image.bb:do_rootfs) failed with exit code '1'


build was using the older version of procps 3.3.12, changed it to newer version 3.3.16 in rdk.conf file
  • No labels