Try Out RDK

Created on June 21, 2022


Raspberry Pi


RDK port for Raspberry Pi makes the RDK software stack available on a popular hardware device.


Build Setup Instructions


Setting up the Host Environment

RequirementYocto 3.1 LTS (Dunfell)

Linux PC

64 bit Ubuntu 18.04 LTS

Precise supported distributions and versions are here

Free HDD Space

Minimum 100GB Free memory space

Host Tools version

Git 1.8.3.1 or greater

tar 1.24 or greater

Python 2.7.3

Raspberry Pi development kit
IPSTB Reference boardAccess to repositories hosting code and binaries for reference board
PeripheralsTV, Keyboard

Environment


Host Setup

Install the following packages for setting up your host VM

The instructions provided below are meant to be executed via the command line on an Ubuntu machine


for yocto 3.1 (dunfell)
# essential packages installation
# super user mode is required

# major essential packages
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib g++-multilib build-essential chrpath socat bison curl cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm

Configure bash as default command interpreter for shell scripts


sudo dpkg-reconfigure dash

Select “No”
To choose bash, when the prompt asks if you want to use dash as the default system shell – select “No”

Configure Git

Upgrade your Git version to 1.8.x or higher

Once git is installed, configure your name and email using the below commands

# review your existing configuration
git config --list --show-origin

# configure user name and email address
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

# configure git cookies. Needed for Gerrit to only contact the LDAP backend once.
git config --global http.cookieFile /tmp/gitcookie.txt
git config --global http.saveCookies true

Configure repo

In order to use Yocto build system, first you need to make sure that repo is properly installed on the machine:

# create a bin directory
mkdir ~/bin
export PATH=~/bin:$PATH

# Download the repo tool and ensure that it is executable
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

 Credential configuration (Only for Amlogic reference board)

*Note: it is also recommended to put credentials in .netrc when interacting with the repo.

A sample .netrc file is illustrated below

machine code.rdkcentral.com

    login <YOUR_USERNAME>

    password <YOUR_PASSWORD>

Build

# initialize the manifest with repo tool
repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkv-nosrc.xml
repo sync -j `nproc` --no-clone-bundle --no-tags
MACHINE=raspberrypi-rdk-mc source meta-cmf-raspberrypi/setup-environment
bitbake rdk-generic-mediaclient-wpe-image

The generated image resides under the directory build-<MACHINE>/tmp/deploy/images/<MACHINE> of the Yocto workspace

Flash image and bring up


Flash image

1. Insert an SD card in the SD card port of the USB SD card reader (or Laptop).

     Prefer to use 32gb sd card and there should be minimum 12gb free space available in the device .

2. Verify that the SD card has been detected by executing either of the commands listed below

$lsblk
$sudo fdisk –l 
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk
├─sda1   8:1    0   350M  0 part
├─sda2   8:2    0     3G  0 part
├─sda3   8:3    0 896.4G  0 part /
├─sda4   8:4    0     1K  0 part
└─sda5   8:5    0  31.8G  0 part [SWAP]
sdb      8:16   1  14.9G  0 disk
├─sdb1   8:17   1    40M  0 part /media/raspberrypi
└─sdb2   8:18   1   552M  0 part /media/dd5efb34-1d40-4e50-bbc2-a75d3e02af97
sr0     11:0    1  1024M  0 rom
 3. Type the following command to ensure that the partitions, if present, on the SD card are not mounted


$mount
$ mount
/dev/sda3 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
none on /tmp/guest-zdrO76 type tmpfs (rw,mode=700)
gvfs-fuse-daemon on /var/lib/lightdm/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=lightdm)
/dev/sdb1 on /media/raspberrypi type vfat (rw,nosuid,nodev,uid=136,gid=148,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
/dev/sdb2 on /media/dd5efb34-1d40-4e50-bbc2-a75d3e02af97 type ext3 (rw,nosuid,nodev,uhelper=udisks)
4. Repeat the below command to unmount all the mounted partition present on the SD card.


$umount <partition-mountpoint>
$ sudo umount /dev/sdb1
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk
├─sda1   8:1    0   350M  0 part
├─sda2   8:2    0     3G  0 part
├─sda3   8:3    0 896.4G  0 part /
├─sda4   8:4    0     1K  0 part
└─sda5   8:5    0  31.8G  0 part [SWAP]
sdb      8:16   1  14.9G  0 disk
├─sdb1   8:17   1    40M  0 part
└─sdb2   8:18   1   552M  0 part /media/dd5efb34-1d40-4e50-bbc2-a75d3e02af97
sr0     11:0    1  1024M  0 rom
$ sudo umount /dev/sdb2
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk
├─sda1   8:1    0   350M  0 part
├─sda2   8:2    0     3G  0 part
├─sda3   8:3    0 896.4G  0 part /
├─sda4   8:4    0     1K  0 part
└─sda5   8:5    0  31.8G  0 part [SWAP]
sdb      8:16   1  14.9G  0 disk
├─sdb1   8:17   1    40M  0 part
└─sdb2   8:18   1   552M  0 part
sr0     11:0    1  1024M  0 rom
5. Execute the following command to flash the image on the SD card


Flash Command
$sudo dd if=<path to ImageName.Rpi-sdimg> of=<path to SD card space> bs=4M
Example:
$sudo dd if=rdk-generic-mediaclient-wpe-image.Rpi-sdimg of=/dev/sdb bs=4M
149+0 records in
149+0 records out
624951296 bytes (625 MB) copied, 39.7752 s, 15.7 MB/s

6. Remove the SD card and insert it to the Raspberry Pi SD card slot 

7. Power on the Rpi and Bring up the device



  • TV screen will display the Raspberry Pi’s IP address(referred as machineIP from now) with default RDK UI as shown below.


Accessing Raspberry Pi

  •  For connecting Controller UI, use URL: http://<machineIP>:9998

  • Plugins can be enabled or disabled from controller UI. 

  • Wifi related services can be triggered from Wi-Fi tab in controller UI. We can scan and select from available networks.

  • For ssh, we can use ssh root@machineip
  • For verifying the image details, we can use cat /version.txt command. 



Emulator


The RDK emulator is an x86 based implementation of the RDK software stack. It is primarily targeted towards the RDK development community (integrators, component developers and application developers) that attempts to simplify the process of working with the RDK software stack without the need for a reference hardware platform. As RDK emulator runs on desktop computers, applications can be tested and debugged before trying to deploy them to real devices.


Build Setup Instructions


Setting up the Host Environment

Pre-Requisites

Requirement

Yocto 2.2 (Morty)

Yocto 3.1 LTS (Dunfell)

Linux

32/64 bit Ubuntu 16.04 LTS

Precise supported distributions and versions are here

64 bit Ubuntu 18.04 LTS

Precise supported distributions and versions are here

Free HDD Space

Minimum 100GB Free Memory

Minimum 100GB Free memory space

Oracle Virtual Box

5.0.40 or higher

Wireless Adapter

Brand Name: Tenda ralink & Model Number:W311MI

TP-Link Archer T4U AC 1200

USB to Ethernet Switch

To connect with Ethernet Switch & Multiple Clients


Host Tools version
  • Git 1.8.3.1 or greater

  • tar 1.24 or greater

  • Python 2.7.3

  • Git 1.8.3.1 or greater

  • tar 1.28 or greater

  • Python 3.5.0 or greater

Environment


Install the following packages for setting up your host VM

The instructions provided below are meant to be executed via the command line on an Ubuntu machine

for yocto 3.1 (dunfell)
# essential packages installation
# super user mode is required

# major essential packages
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib g++-multilib build-essential chrpath socat bison curl cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm

Configure bash as default command interpreter for shell scripts


sudo dpkg-reconfigure dash

Select “No”
To choose bash, when the prompt asks if you want to use dash as the default system shell – select “No”

Configure Git

Upgrade your Git version to 1.8.x or higher

On Ubuntu 16.04 LTS, if you are unable to upgrade your git version using apt-get, then follow the below steps in order to upgrade 

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

Once git is installed, configure your name and email using the below commands

# review your existing configuration
git config --list --show-origin

# configure user name and email address
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

# configure git cookies. Needed for Gerrit to only contact the LDAP backend once.
git config --global http.cookieFile /tmp/gitcookie.txt
git config --global http.saveCookies true

Configure repo

In order to use Yocto build system, first you need to make sure that repo is properly installed on the machine:

# create a bin directory
mkdir ~/bin
export PATH=~/bin:$PATH

# Download the repo tool and ensure that it is executable
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

 Credential configuration

*Note: it is also recommended to put credentials in .netrc when interacting with the repo.

A sample .netrc file is illustrated below

machine code.rdkcentral.com

    login <YOUR_USERNAME>

    password <YOUR_PASSWORD>

Build


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
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

Flash image and bring up:


Host Requirements:

RequirementRemarks
Linux                           32/64 bit Ubuntu 16.04 operating system
Free HDD SpaceMinimum 100GB Free Memory
Oracle Virtual Box4.3.18 or higher

Install Virtual Box and follow the following steps to bring up RDK Emulator on Virtual Box:

In the following steps, it is recommended to review the description and screenshot completely before proceeding with steps.

STEP 1: Create your new VM Instance:

  • Open Virtualbox → Select New [A popup will come up]→ Select Type as ‘Linux’→ Select Version as ‘Other Linux (32 Bit)’→ Click on “Next”

  • Choose a Memory Size of 512 MB

  • Use an existing virtual hard drive file which would be your dowloaded image in *.vmdk format and create your VM:

STEP 2: Configure your new VM Instance:

  • Click on “Settings” tab to configure your new VM instance

  • Configure your VMs network settings

  • Choose “Bridged Adapter” mode as shown in the screenshot below

STEP 3: Create an external hard drive:

Your VM has been built with very limited hard drive space. In order to run emulator and play video files, you need to copy your video files into the file system for playback. For this, you will need to setup a virtual external hard drive.

  • Select the vm instance on the main menu of Virtual Box→ Click Settings -> Storage -> Add Hard disk [icon] → Click ‘Create new disk
    • (Note: In the screenshot 1 below, “Choose existing disk” may seem highlighted. Please select “Create new disk”)
  • Select VDI (VirtualBox Disk Image) as your Hard Drive file type


  • Select “Dynamically allocated” storage: 

STEP 4: Formatting and partitioning your new external hard drive:

  • Boot up your VM. Your emulator VM boots up to show the RDK Browser HTML application which can be used to select and launch multiple other applications using the Tab key & Enter key

  • Use BACKSPACE to come out of Readme, WatchTV, iHeartRadio and Sample Video

  • To come out of the X2 guide, use Ctrl+Backspace

  • In order to learn your VM IP, use the RDK Browser application “tab” key to chose the various applications. Choose Device Info which will provide you the IP address as shown in the screenshot below:

  • Once you have the IP address you may SSH into your VM from your linux shell console. Use root as the ssh user.

$ ssh root@x.x.x.x
  • Use the “mount” command to see the current status of connected hard disks
$ mount

  • Use fdisk command to list out connected hard drives. You may note that in the screenshot below, there are two hard drives listed. hda and hdb. hdb is the external hard drive that we have created in the previous step.
$ fdisk -l

  • Use fdisk to create your new hard disk partition
$ fdisk /dev/hdb

Review the description of the steps during fdisk operation below and the following screenshot for reference before proceeding.

  • Use fdisk to create your new hard disk partition
    • Use the command “n” to add a new partition
$ Command (m for help): n
    • Select partition type as the suggested default “p” for primary partition

$ Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

    • Set your partition number as the suggested default. In the example case: 1
$ Partition number (1-4, default 1): 1
    • Press “Enter” key for First sector & Last sector prompts
    • Select the command “p” to print the partition table on screen for review
$ Command (m for help): p
    • Select the command “w” to write the partition table to disk and exit fdisk
$ Command (m for help): w


  • Format your newly created partition with ext3 file system
$ mkfs.ext3 /dev/hdb1

  • Create a folder for mounting your new partition at /ext_hdd
  • Mount your newly created hard disk partition to /ext_hdd

$ mkdir /ext_hdd

$ mount /dev/hdb1 /ext_hdd

STEP 5: Copy a Single Program Transport stream to your file system to be used for emulator video playback.

  • Pre-requisite to the step is assumed that /ext_hdd is already mounted with the external hard disk partition on your emulator VM

  • Copy your SPTS video file from your host machine to /ext_hdd folder on the emulator VM 

  • Note: The following command is performed from your Host Machine

$ scp <your_spts_file_name>.ts root@<your_emulator_vm_ip>:/ext_hdd
  • Back on your emulator VM, create a link in /opt/www/ to point to the external hard drive at its mount point /ext_hdd

$ ln -sf /ext_hdd/<your_spts_file_name> <your_spts_file_name>
  • In the screenshot below, <your_spts_file_name> is assumed to be “received_spts1.ts” as an example.

 

Usage Instructions

Logging into your VM


As described in the previous section, you can log in to your emulator VM from your Host Machine using the ssh command.

$ ssh root@x.x.x.x

*Note: In order to learn the IP address of your VM, use the RDK Browser application “tab” key to navigate to “Device Info” which will provide you the IP address. Press “Enter” key to enter Device Info

Using rmfApp


Introduction


The rmfApp application is supported for all build types. Once you SSH into your emulator VM, you can play a video stream located at a url using a source and a sink.

Where is rmfApp?

rmfApp is located in the folder: /usr/bin on your emulator VM

How to run rmfApp?

Navigate to the folder /usr/bin and run rmf App using command ./rmfApp. After the initial log statements when the rmfApp starts up, press “Enter” key to get the rmfApp prompt – “rmfApp>”

rmfApp Command Line Options

root@qemux86:~# rmfApp [-source SOURCE] [-sink SINK] [other options] url

SOURCE can be: hnsource,qamsource

SINK can be:   mediaplayersink 

Other options include:
•        -recordingId <id>: id of recording to create where <id> is a decimal number
•        -recordingTitle <title>: title of recording

Example Sequence of rmfApp usage

Before using rmfApp, it will be better to terminate rdkbrowser as it may impact the performance of playback. You may use the systemctl command to terminate rdkbrowser as shown below.

$ systemctl stop rdkbrowser.service

rmfApp is located in the directory /usr/bin. Navigate to the directory containing the rmfApp:

$ cd /usr/bin

Launch RMF App using the command below:

$ ./rmfApp

Once the app is launched, press enter again to get the prompt “rmfApp->”:

$ rmfApp->
NOTE:

Note 1: There is an additional step required prior to using the emulator because it is built without the gsttee module in gst-plugins-rdk:

Before invoking rmfapp, it is necessary to set the environment variable ‘USE_GENERIC_GSTREAMER_TEE’ to ‘TRUE’, so that mediaframework uses the generic gsttee that is built from Open Source gstreamer: 

example : 

root@qemux86hyb-morty:/usr/bin# export USE_GENERIC_GSTREAMER_TEE=TRUE root@qemux86hyb-morty:/usr/bin# ./rmfApp 

Note 2: In the streaming scenario it is necessary to kill the rmfStreamer process on the hybrid image, which is started automatically, and invoke it manually as illustrated below : 

Streaming Scenario : 

Hybrid : 

barracuda:~> ssh root@193.120.91.104

root@qemux86hyb-morty:/#

root@qemux86hyb-morty:/# export USE_GENERIC_GSTREAMER_TEE=TRUE root@qemux86hyb-morty:/# cd /usr/bin root@qemux86hyb-morty:/usr/bin# ps -aef  | grep rmf root@qemux86hyb-morty:/usr/bin#kill -9 <pid> root@qemux86hyb-morty:/usr/bin# ./rmfStreamer 

IP Client : 

barracuda:~> ssh root@193.120.91.132

root@qemux86mc-morty:/#

root@qemux86mc-morty:/# export USE_GENERIC_GSTREAMER_TEE=TRUE root@qemux86mc-morty:/# cd /usr/bin root@qemux86mc-morty:/usr/bin# ./rmfApp

rmfApp->launch -source hnsource -sink mediaplayersink

http://193.120.91.104:8080/vldms/tuner?ocap_locator=ocap://0x125d


Simulated Live Playback on a Hybrid Emulator

In a simulated live playback, the following rmfApp command maybe used to playback the local SPTS video file:

launch -source qamsource -sink mediaplayersink ocap://0x125d

Where 

$ rmfApp-> launch –source qamsource –sink mediaplayersink ocap://0x125d
Simulated Playback on a Hybrid Emulator

launch –source hnsource –sink mediaplayersink http://127.0.0.1:50050/received_spts1.ts

Where

$ rmfApp-> launch –source hnsource –sink mediaplayersink http://127.0.0.1:50050/received_spts1.ts
Simulated Live Playback on a Media Client Emulator

 In a simulated live playback, the following rmfApp command maybe used to playback the local SPTS video file:

 launch –source hnsource –sink mediaplayersink http://<HYBRID IP>:8080/vldms/tuner?ocap_locator=ocap://0x125d

 Where  

  • source : hnsource
  • sink; mediaplayersink
  • url: http://<HYBRID IP>:8080/vldms/tuner?ocap_locator=ocap://0x125d
$ launch –source hnsource –sink mediaplayersink http://<HYBRID IP>:8080/vldms/tuner?ocap_locator=ocap://0x125d
Scheduling & Playing Back Recordings from the Media Client using Recording ID

RDK recordings on the Hybrid device are created from a cloud-based scheduler using json messages. Once the recordings are created, the rmfApp on the media client device can be used to playback the newly recorded media content. 

This section outlines the use case:

Step 1: Preconditions / Prerequisites: 

  • As the hybrid VM has very limited memory and as recordings are by default stored in /opt/data/, you should create a new directory /ext_hdd/data within the external hard drive that we had set up earlier and also create a soft link to /opt/data

mkdir -p /ext_hdd/data

ln -sf /ext_hdd/data /opt/data

*NoteThe above directory and the soft link needs to be in place each time before scheduling recordings. 

 Your recordings will get created in the following path on the Hybrid VM:

/opt/data/OCAP_MSV/0/0/DEFAULT_RECORDING_VOLUME/test

/opt/data/OCAP_MSV/0/0/DEFAULT_RECORDING_VOLUME/test/chunks

If there is a media file created in the /chunks folder above, then the recordings have been successfully created.

Step 2: Launching rmfStreamer on Hybrid VM

There are multiple scripts in the folder /usr/bin. There are two scripts for launching rmfStreamer:

  • rmfstreamer
  • rmfStreamer

Note that the name of each file is similar apart from the usage of upper case and lowercase “s” in each file name.

Launch rmfStreamer using the script: rmfstreamer

cd /usr/bin/

sh rmfstreamer

if you run in into issues accessing rmfstreamer, then change the access permissions of file appropriately:

chmod 777 rmfstreamer

Once rmfStreamer starts, you will see log print statements on the console.

Step 3: Start playback of recorded content on Hybrid emulator from your Media Client emulator

Now you can playback from the media client using the rmfApp on the media client VM using the following sample commands:

cd /usr/bin

./rmfApp

rmfApp> launch -source hnsource -sink mediaplayersink http://<hybird_vm_ip>:8080/vldms/test?rec_id=6

Note: Where the recording id is “6” as set in the schedule.json message from the server. Users may write a small application to simulate the scheduler server json messages.

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-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 this line

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-mediaclient.bbRDEPENDS_packagegroup-rdk-generic-mediaclient = “
    dnsmasq
    ${@bb.utils.contains(“WEBBACKENDS”, “rdkbrowser”, “rdkbrowser rdkbrowser-webserver”, “”, d)}
    tr69agent  === remove this line
8
meta-cmf-video/recipes-xraudio/xraudio/xraudio_1.0.bbappend

Remove ctrlm-xraudio-hal  from the line

DEPENDS_append = ” ctrlm-xraudio-hal jansson”

9
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”

10

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.%”

11

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
12
meta-rdk/recipes-core/packagegroups/packagegroup-rdk-media-common.bb

Insert  closedcapton in the PACKAGES

PACKAGES = “
    closedcaption
    packagegroup-rdk-media-common

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

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

IMAGE_FEATURES_remove_morty = “read-only-rootfs”

Add the following line as well:

IMAGE_FEATURES_remove_dunfell = “read-only-rootfs”

14
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” 

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

Comment the below line

RDEPENDS_${PN}_dunfell += “${VIRTUAL-RUNTIME_dtcpmgr}”

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

Remove the line below

file://user_msghdr.patch  

17
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”
18

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”

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

Comment the following line

RDEPENDS_${PN}_dunfell += “${VIRTUAL-RUNTIME_dtcpmgr}”

20
meta-rdk-video/recipes-extended/sysint/sysint_git.bbRename line 306: do_install_append_hybrid as do_install_append
21
meta-cmf-bsp-emulator/conf/include/rdk-bbmasks-rdkb-platform.inc

Comment the following lines:

BBMASK .= “|meta-rdk-bsp-emulator/recipes-extended/devicesettings/devicesettings-hal-emulator_git.bb

BBMASK .= “|meta-rdk-bsp-emulator/recipes-extended/iarmmgrs/iarmmgrs-hal-emulator_git.bb

BBMASK .= “|meta-rdk-bsp-emulator/recipes-extended/gst-plugins-playersinkbin/gst-plugins-playersinkbin-emulator_git.bb

BBMASK .= “|meta-rdk-bsp-emulator/recipes-oem/mfrlib/mfrlib-emulator_1.0.bb


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]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libgcc_s.so.1(GCC_3.0)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libm.so.6(GLIBC_2.2.5)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libstdc++.so.6(CXXABI_1.3.8)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libstdc++.so.6(CXXABI_1.3.9)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libstdc++.so.6(CXXABI_1.3)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libstdc++.so.6(GLIBCXX_3.4)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libc.so.6(GLIBC_2.4)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libc.so.6(GLIBC_2.14)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libc.so.6(GLIBC_2.3)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libc.so.6(GLIBC_2.2.5)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libc.so.6(GLIBC_2.3.4)(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libstdc++.so.6()(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libm.so.6()(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libgcc_s.so.1()(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]
ERROR: qtbase-5.1.1-r0 do_package_qa: QA Issue: /usr/bin/qmake contained in package qtbase requires libc.so.6()(64bit), but no providers found in RDEPENDS_qtbase? [file-rdeps]

open this recipe meta-rdk-bsp-emulator/recipes-qt/qt5/qtbase_5.1.1.bbappend

do_install_append_morty() { =====> change morty to dunfell
    rm ${D}/${bindir}/qmake
}


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

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
  1. 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’
  2. ERROR: rdk-generic-mediaclient-wpe-image-1.0-r0 do_rootfs: The postinstall intercept hook ‘update_gio_module_cache’ failed, details in /home/svenko766/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/svenko766/dunfell/build-qemux86mc-dunfell/tmp/work/qemux86mc_dunfell-rdk-linux/rdk-generic-mediaclient-wpe-image/1.0-r0/temp/log.do_rootfs.2126752
    ERROR: Task (/home/svenko766/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
30meta-rdk-bsp-emulator/recipes-core/packagegroups/packagegroup-rdk-gstreamer1.bbappend

Collected errors:

 * Solver encountered 1 problem(s):

 * Problem 1/1:

 *   – nothing provides gstreamer1.0-plugins-bad-hls needed by packagegroup-rdk-gstreamer1-1.0-r0.all

 *  * Solution 1:

 *   – do not ask to install a package providing packagegroup-gstreamer-plugins

Remove gstreamer1.0-plugins-bad-hls from RDEPENDS_packagegroup-rdk-gstreamer1_append

RDEPENDS_packagegroup-rdk-gstreamer1_append = “
                                gstreamer1.0-plugins-bad-dashdemux
                                gstreamer1.0-plugins-bad-hls


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

Collected errors:
 * Solver encountered 1 problem(s):
 * Problem 1/1:
 *   – nothing provides gstreamer1.0-plugins-bad-curl needed by packagegroup-rdk-gstreamer1-1.0-r0.all
 * 
 * Solution 1:
 *   – do not ask to install a package providing packagegroup-gstreamer-plugins

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

Remove gstreamer1.0-plugins-bad-curl from RDEPENDS_packagegroup-rdk-gstreamer1_append

RDEPENDS_packagegroup-rdk-gstreamer1_append = “
                                gstreamer1.0-plugins-bad-dashdemux
                                gstreamer1.0-plugins-bad-hls
                 gstreamer1.0-plugins-bad-curl
                 


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

 * Solver encountered 1 problem(s):
 * Problem 1/1:
 *   – nothing provides gstreamer1.0-plugins-bad-bz2 needed by packagegroup-rdk-gstreamer1-1.0-r0.all
 * 
 * Solution 1:
 *   – do not ask to install a package providing packagegroup-gstreamer-plugins

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

Remove gstreamer1.0-plugins-bad-bz2 from RDEPENDS_packagegroup-rdk-gstreamer1_append

RDEPENDS_packagegroup-rdk-gstreamer1_append = “
                                gstreamer1.0-plugins-bad-dashdemux
                                gstreamer1.0-plugins-bad-hls
                 gstreamer1.0-plugins-bad-bz2


33core2-32-rdk-linux/glib-networking/2.48.2-r0/recipe-sysroot/usr/include/gnutls/gnutls.hconfigure: error: in `/home/svenko766/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/glib-networking/2.48.2-r0/build’:
| configure: error: “Requested ‘gnutls >= 3.0’ but version of GnuTLS is 2.12.23
| You may find new versions of GnuTLS at http://www.gnu.org/software/gnutls/
| See `config.log’ for more details
| NOTE: The following config.log files may provide further information.
| NOTE: /home/svenko766/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/glib-networking/2.48.2-r0/build/config.log
| ERROR: configure failed
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of ‘/home/svenko766/dunfell/build-qemux86mc-dunfell/tmp/work/core2-32-rdk-linux/glib-networking/2.48.2-r0/temp/run.do_configure.2045166’ failed with exit code 1
ERROR: Task 
ERROR: Task (/home/svenko766/dunfell/meta-rdk-ext/recipes-core/glib-networking/glib-networking_2.48.2.bb:do_configure) failed with exit code ‘1’

Update ther version numbers as below –
#define GNUTLS_VERSION “3.4.7”

#define GNUTLS_VERSION_MAJOR 3
#define GNUTLS_VERSION_MINOR 4
#define GNUTLS_VERSION_PATCH 7


34gstreamer1.0-plugins-bad-hlsERROR: qtbase-native-5.1.1-r0 do_configure: Configuring qt failed. EXTRA_OECONF was -dont-process -prefix /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr -sysroot /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native -no-gcc-sysroot -system-zlib -no-libjpeg -no-libpng -no-gif -no-accessibility -no-cups -no-nis -no-gui -no-qml-debug -no-sql-mysql -no-sql-sqlite -no-opengl -no-openssl -no-xcb -no-icu -verbose -release -prefix /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr -bindir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr/bin/qt5 -libdir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr/lib -headerdir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr/include/qt5 -archdatadir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr/lib/qt5 -datadir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr/share/qt5 -docdir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/usr/share/doc/qt5 -sysconfdir /home/user/dunfell/build-qemux86mc-dunfell/tmp/work/x86_64-linux/qtbase-native/5.1.1-r0/recipe-sysroot-native/etc/qt5 -no-glib -no-iconv -silent -nomake examples -nomake tests -no-rpath -platform linux-oe-g++Changed gcc & g++ version to 7.5.0 on Host device







Go To Top