Introduction

Upgrading Turris-Omnia Reference Platform for Yocto 3.1 ie., from morty to dunfell

Considerations for broadband & extender build:

Environment Setup

  1. In Ubuntu 18.04 version, consider the versions of git(1.8.3.1 or greater), tar(1.27 or greater), Python(3.4.0 or greater), Coreutils.
  2. Take a look on the following packages,

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

3. Configure repo

4. Ensure the .netrc and .gitconfig files

The following commands fetches the source code of turris using repo tool and create the image using bitbake

repo init -u https://code.rdkcentral.com/r/manifests -m rdkb-turris-extsrc.xml  -b  yocto-dunfell-upgrade

repo sync -j4 --no-clone-bundle

MACHINE=turris source meta-turris/setup-environment

bitbake core-image-minimal



        Currently we are in the process of building rdk-generic-broadband-image. The main source for errors can be classified into 4 categories.

           --> Incompatible license with RDK.
           --> Trying to apply older patches into newer version of recipes.
           --> Recipe version changes due to dependency.
           --> If there is a license upgrade to a new recipe which is not compatiable with RDK terms then we need to stick to the older version.

Error Handling

For core-minimal image,


Error/ WarningLayer and RecipeFixReference
1

Unable to start bitbake server (None)

ERROR: Server log for this session
meta-java

In layer.conf

Added

LAYERSERIES_COMPAT_meta-java = " dunfell"
NA
2

Unable to parse Var <AVAILABLE_LICENSES[:=]>


bb.data_smart.ExpansionError: Failure expanding variable AVAILABLE_LICENSES[:=], expression was ${@' '.join(available_licenses(d))} which triggered exception FileNotFoundError: [Errno 2] No such file or directory
meta-cmfNeed to create a licenses directory under the meta-layer and add RDK license file to itNA
3

Deprecated variable(s) found: "IMAGE_DEPENDS_wic". Use do_image_<type>[depends] += "<recipe>:<task>" instead


Failed to parse recipe: /meta-java/recipes-images/images/java-test-image.bb
meta-marvell

In armada38x-base.inc ,

Removed IMAGE_DEPENDS_wic_append_armada38x = " virtual/bootloader"

added WKS_FILE_DEPENDS ?= ""

https://patchwork.openembedded.org/patch

/143213/

4ParseError at /meta-marvell/recipes-kernel/linux/linux-marvell.inc:16: Could not include required file recipes-kernel/linux/linux-dtb.incmeta-turris

In recipes-kernel/linux,

added linux-dtb.inc

https://code.rdkcentral.com/r/plugins/gitiles/rdk

/components/opensource/oe/openembeddedco

re/+/849b67b2e4820564b5e5c9bd4bb293c443

51c5f3/meta/recipes-kernel/linux/linux-dtb.inc

5

ExpansionError during parsing / meta-cmf-mesh/recipes-common/mesh-agent/mesh-agent.bb


ExpansionError during parsing  /meta-rdk-broadband/recipes-rdkb/sysint-broadband/sysint-broadband.bb

meta-cmf-mesh

mesh-agent.bb


meta-rdk-broadband

sysinit-broadband.bb


In mesh-agent.bb

replace base_contains by bb.utils.contains
NA
6ParseError at  /meta-browser/recipes-mozilla/mozilla-devscripts/mozilla-devscripts_git.bb:15: Could not inherit file classes/distutils.bbclassmeta-cmf-broadband

In rdk-bbmasks-broadband.inc,

add BBMASK .= "|meta-browser/*"

NA
7ParseError at /Migration-3.1/meta-rdk-broadband/recipes-ccsp/ccsp/ccsp-webui.bb:32: Could not inherit file classes/lxc.bbclassmeta-virtualization

Under classes,

remove inherit lxc from ccsp-webui.bb

NA
8

ExpansionError during parsing /meta-rdk-broadband/recipes-ccsp/ccsp/ccsp-wifi-agent.bb


ExpansionError during parsing /meta-rdk-broadband/recipes-ccsp/ccsp/parodus2ccsp.bb

meta-rdk-broadband

ccsp-wifi-agent.bb


parodus2ccsp.bb

replace base_containes by bb.utils.containsNA
9

ExpansionError during parsing /meta-rdk-opensync/recipes/opensync/opensync_1.4.0.bb


ExpansionError during parsing /meta-rdk-ext/recipes-support/base64/base64_git.bb

meta-turris

opensync_1.4.0.bbappend


meta-rdk-ext

base64_git.bb

change branch to masterNA
10Nothing RPROVIDES '${ROOTFS_PKGMANAGE_BOOTSTRAP}' (but /openembedded-core/meta/recipes-core/images/core-image-minimal.bb RDEPENDS on or otherwise requires it)

ERROR: Required build target 'core-image-minimal' has no buildable providers.
openembedded-core

add  ROOTFS_PKGMANAGE_BOOTSTRAP = "postinsts"

 NA
11

Nothing RPROVIDES 'wireless-tools' (but /meta-turris/recipes-core/packagegroups/packagegroup-turris-core.bb RDEPENDS on or otherwise requires it)


Nothing RPROVIDES 'trace-cmd' (but /meta-turris/recipes-core/packagegroups/packagegroup-turris-core.bb RDEPENDS on or otherwise requires it)


Nothing RPROVIDES 'iperf' (but /meta-turris/recipes-core/packagegroups/packagegroup-turris-core.bb RDEPENDS on or otherwise requires it)

openembedded-core




openembedded-core



meta-openembedded

remove wireless-tools ,trace-cmd , iperf  from packagegroup-turris-core.bb

NA
12

ERROR: 265 unbuildable tasks were found.
These are usually caused by circular dependencies and any circular dependency chains found will be printed below. Increase the debug level to see a list of unbuildable tasks.

openembedded-core

python3_3.8.2.bb

 BBMASK openssl unused version NA
13ERROR: kern-tools-native-0.2+gitAUTOINC+7604d2d1a4-r12 do_patch: Command Error: 'quilt --quiltrc /build-turris/tmp/work/x86_64-linux/kern-tools-native/0.2+gitAUTOINC+7604d2d1a4-r12/recipe-sysroot-native/etc/quiltrc push' exited with 0 Outputmeta-rdk-opensyncRecreate the patch file ./meta-rdk-opensync/recipes/kern-tools/files/dont_install_kconfiglib.patchNA
14dbus-1.12.16-r0 do_fetch: Fetcher failure: Unable to find file file://01-dbus-ccsp-apis-1.12.16.patch anywhere.meta-rdk-ext

rename the existing patch for dbus version 1.12.16 and recreate the patch with the following name

01-dbus-ccsp-apis-1.12.16.patch

NA
15u-boot-marvell-2013.01+gitAUTOINC+25998da8b6-r0 do_configure: Execution of /build-turris/tmp/work/turris-rdk-linux-musleabi/u-boot-marvell/2013.01+gitAUTOINC+25998da8b6-r0/temp/run.do_configure.12492' failed with exit code 1

meta-turris

u-boot-marvell_2013.01.bbappend

Add,

do_configure_prepend() {
touch ${S}/.config
cp ${WORKDIR}/recipe-sysroot-native/usr/bin/oldconfig ${WORKDIR}/uboot/oldconfig
}

NA
16ERROR: /build-turris/tmp/work/turris-rdk-linux-musleabi/u-boot-marvell/2013.01+gitAUTOINC+25998da8b6-r0/uboot/fs/jffs2/mini_inflate.c:222: undefined reference to `cramfs_memset'

meta-turris

u-boot-marvell_2013.01.bbappend

Create a patch and apply

u-boot-inline-error.patch

NA
17dnsmasq-2.80-r0 do_patch: Command Error: 'quilt --quiltrc /home/krishna/RAJ/Migration-3.1/build-turris/tmp/work/armv7ahf-neon-rdk-linux-musleabi/dnsmasq/2.80-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0 meta-rdk-ext

recreate the patch

130-fingerprint-dhcp-lease-file.patch

NA
18kern-tools-native-0.2+gitAUTOINC+7604d2d1a4-r12 do_populate_lic: QA Issue: kern-tools-native: LIC_FILES_CHKSUM points to an invalid file: /build-turris/tmp/work/x86_64-linux/kern-tools-native/0.2+gitAUTOINC+7604d2d1a4-r12/git/git/Kconfiglib/LICENSE.txt [license-checksum]

meta-rdk-opensync

kern-tools-native_%.bbappend

comment 

LIC_FILES_CHKSUM = "file://git/Kconfiglib/LICENSE.txt;md5=448ee4da206e9be8f4a79c48e0741295"

NA
19

core-image-minimal-1.0-r0 do_rootfs: Unable to install packages. 

- nothing provides fftw needed by packagegroup-turris-core-1.0-r0.all

- do not ask to install a package providing packagegroup-turris-core


add

fftw.bbappend

NA
20

When reparsing /openembedded-core/meta/recipes-core/images/core-image-minimal.bb:do_rootfs, the basehash value changed from 1c76594fd609e77323d32b96b490551409f1dd7494e75119b74115805687e530 to 435cd9fd2595cbf5d3420df8cdcf1366179c1c68f804f4ab735b6cff5f84d03f. The metadata is not deterministic and this needs to be fixed.

ERROR: $ bitbake core-image-minimal -cdo_rootfs -Snone
ERROR: $ bitbake core-image-minimal -cdo_rootfs -Sprintdiff

meta-turris

minimal.bbappend 

add BB_HASH_IGNORE_MISMATCH = "1"
21ERROR: core-image-minimal-1.0-r0 do_rootfs: Postinstall scriptlets of ['systemd'] have failed. If the intention is to defer them to first boot,
then please place them into pkg_postinst_ontarget_${PN} ()

Removed installing resolv.conf for dunfell branchNA
22ERROR: core-image-minimal-1.0-r0 do_rootfs: Taskhash mismatch 8f27e0dbdfe3ca200423ce2c2b7235163592522452134eeb952f0ed25647769d versus 7db8ecb95cf063d5b230c2eefa967d5e6888f6c0455f20a701f8c2113198ce9b for /openembedded-core/meta/recipes-core/images/core-image-minimal.bb:do_rootfs
ERROR: Taskhash mismatch 

meta-turris

core-image-minimal.bbappend

 add IMAGE_NAME[vardepsexclude] = "DATETIME"NA
23

ERROR: core-image-minimal-1.0-r0 do_image_wic: Execution of /build-turris/tmp/work/turris-rdk-linux-musleabi/core-image-minimal/1.0-r0/temp/run.do_image_wic.29811' failed with exit code 1:

ERROR: _exec_cmd: install -m 0644 -D /build-turris/tmp/deploy/images/turris/zImage-armada-385-turris-omnia.dtb 
/images/turris/zImage-armada-385-turris-omnia.dtb': No such file or directory

meta-turris

turris.conf

 remove zImage-armada-385-turris-omnia.dtb from IMAGE_BOOT_FILESNA

Flashing procedure

            Turris Omnia Reference Platform: Flashing Instruction