RDK Resources
RDK Preferred
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
This manual describes the rdk-generic-broadband-image build procedure for Yocto 3.1 builds. This will upgrade the default build system used in RDKB, from morty(2.2) to dunfell(3.1). In addition to upgrades to opensource packages, Yocto 3.1 also contain Long term Support release feature. The current version lacks the variety of features available in the dunfell. The upgraded build tools will be used to generate rdk-generic-broadband-image for Raspberrypi reference platform.
Yocto 3.1 Upgradation support the following:
Each component in RDK is a standalone repository with its own individual build tools producing a library or set of binaries. When we upgrade the OE layers to the newer versions, we need to make necessary changes in the RDK layers which use these components, to avoid build failures.
The OpenEmbedded build system should be able to run on Ubuntu 18.04 distribution/other compatible linux distribution with the following versions for Git, tar, and Python.
Note: You should also have about 50 Gbytes of free disk space for building images.
The essential packages you need for a supported Ubuntu or Debian distribution are shown in the following command:
$ 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 bmap-tools $ sudo apt-get install git cmake autoconf texinfo openjdk-8-jdk openjdk-8-jre \ m4 libtool libtool-bin curl pkg-config lib32z1 doxygen
In order to use Yocto build system, the repo tool must be properly installed on the machine.
To install Repo make sure you have a /bin directory in your home directory and that it is included in your path
$ mkdir ~/bin $ 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
Note: it is also recommended to put credentials in ~/.netrc when interacting with repo.
A sample ~/.netrc file is illustrated below
machine code.rdkcentral.com login YOUR_USERNAME password YOUR_PASSWORD
To build, follow below instructions
$ mkdir <workspace dir> $ cd <workspace dir> $ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml $ repo sync -j`nproc` --no-clone-bundle $ MACHINE=raspberrypi-rdk-broadband source meta-cmf-raspberrypi/setup-environment $ bitbake rdk-generic-broadband-image
Following command can be used to flash the RPI image to sd card using linux machine . bmap tool should be available in linux
bzip2 -d <path to ImageName.wic.bz2> sudo -E bmaptool copy --nobmap <path to ImageName.wic> <path to SD card space> Example: $ bzip2 -d rdk-generic-broadband-image-raspberrypi-rdk-broadband.wic.bz2 $ sudo -E bmaptool copy --nobmap rdk-generic-broadband-image-raspberrypi-rdk-broadband.wic /dev/sdb
No | Feature | Supported |
---|---|---|
1 | LAN Connected Devices-Ethernet | |
2 | WAN Connected Devices-Wi-Fi | |
3 | Parental Control | |
4 | Firewall settings | |
5 | Advanced Config: Port Triggering | |
6 | Advanced Config: Port Forwarding | |
7 | Advanced Config: Remote Management | |
8 | Advanced Config: DMZ | |
9 | Xfinity Wi-Fi 2.4/5 GHz – Public Hotspot | |
10 | Test and Diagnostics | |
11 | Local WebUI Configuration | |
12 | Factory Reset | |
13 | DHCP /Reserved IP | |
14 | EthWan | |
15 | Eth Agent | |
16 | 2.4 GHz Band Support | |
17 | 5 GHz Band Support | |
18 | Bridge Mode Support | |
19 | Persistent Storage Management | |
20 | WebPA for Comcast,community | |
21 | Lost and Found | |
22 | Bluetooth | |
22 | Harvester Support | |
23 | TR-69 | |
24 | SNMP | |
27 | Boot time data measurement | |
28 | Wireless Protection Setup(WPS) | |
29 | Captive Portal | |
30 | Wi-Fi MAC Filtering | |
31 | Log Rotation Support | |
32 | Firmware Upgrade Support | |
33 | Multiboot Support | |
34 | Telemetry Support | |
35 | IPV6 | |
36 | Log level control through CcspLogAgent | |
37 | Band Steering using RSSI | |
38 | Backup and Restore | |
39 | SelfHeal | |
40 | Password-Reset | |
41 | WebUI JST |
9 Comments
Z-Florent Le Saout
Hello, I try to build for Raspberry I get following error :
I'm running this on Ubuntu 20.04.3 LTS.
Narayanaswamy Ramaiyer
Hello Z-Florent Le Saout
The builds are officially tested on Ubuntu 18.04 for Dunfell. Could you please check the builds in a Ubuntu 18.04 machine?
Z-Florent Le Saout
Hello Narayanaswamy Ramaiyer
I will give a try with 18.04 LXC container and keep you posted. Maybe this should be added in the limitations.
As It seems to be layer configuration, I don't think it will help, but let see.
Narayanaswamy Ramaiyer
Hello Z-Florent Le Saout
It is mentioned in the documentation that this is tried out in Ubuntu 18.04 . We will see if we can explicitely mention this is not officially tested in Ubuntu 20.04 (as there are chances it is assumed the Dunfell based RDK-B builds will work fine in all later versions of UBuntu ) until we will start official support in 20.04 too. Thanks
Z-Florent Le Saout
I did try on an LXC container with Ubuntu 18.04 and it doesn't stop the compilation anymore at this stage (full compilation ongoing, and it takes quite some time
)
But when I read about dunfell, it does support Ubuntu 20.04 by default, so where does come this restriction ? RDK layers themselves ? Narayanaswamy Ramaiyer
https://lists.yoctoproject.org/g/poky/topic/meta_yocto_master_dunfell/74526284?p=,,,20,0,0,0::recentpostdate%2Fsticky,,,20,2,40,74526284
---
meta-poky/conf/distro/poky.conf | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf
index 91779e4..2696eb6 100644
--- a/meta-poky/conf/distro/poky.conf
+++ b/meta-poky/conf/distro/poky.conf
@@ -56,6 +56,7 @@ SANITY_TESTED_DISTROS ?= " \
ubuntu-16.04 \n \
ubuntu-18.04 \n \
ubuntu-19.04 \n \
+ ubuntu-20.04 \n \
fedora-30 \n \
fedora-31 \n \
centos-7 \n \
Narayanaswamy Ramaiyer
Hello Z-Florent Le Saout It is just that the builds are not officially tested and verified in 20.04 Ubuntu as the priorities are more on the feature/enhancement on the platform rather than the host machine( plus 18.04 support is still available as it is an LTS version )
Z-Florent Le Saout
I found an issue with heaptrack package, but as I've switched to Raspi4, I will post on raspi4 thread Narayanaswamy Ramaiyer
Alex Lin
The source code cannot download.....
And my netrc is correct.
alex@vm:~/rdkb$ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml
Downloading Repo source from https://gerrit.googlesource.com/git-repo
Downloading manifest from https://code.rdkcentral.com/r/manifests
fatal: remote error: access at least one ref not permitted
manifests: sleeping 4.0 seconds before retrying
fatal: remote error: access at least one ref not permitted
fatal: cannot obtain manifest https://code.rdkcentral.com/r/manifests
Avron Olshewsky
Also having the issue reported above - Do I need to raise a support ticket ?