RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
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=raspberrypi4-64-rdk-broadband source meta-cmf-raspberrypi/setup-environment $ bitbake rdk-generic-broadband-image
Flashing Procedure
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-raspberrypi4-64-rdk-broadband.wic.bz2 $ sudo -E bmaptool copy --nobmap rdk-generic-broadband-image-raspberrypi4-64-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 | |
42 | Telemetry 2 | |
43 | RdkWanManager | |
44 | RdkFwUpgradeManager |
Global CFLAGS
NOTE: This can be added in ccsp_common inc files. So, will be available for all ccsp components.
CFLAGS_append_aarch64 = " -D_64BIT_ARCH_SUPPORT_ " |
---|
By default, rbus is enabled in rpi4 64b build. For dbus enabling in rpi4 64b build, please follow the below steps,
Delete the below lines from below file's, |
---|
System Test Plan and Report - Broadband - 2021 - M10
System Test Plan and Report - RDK Broadband - 2022 - M1
8 Comments
Vic Lin
I followed the build instructions to build
raspberrypi4-64-rdk-broadband
modelBut got failed with bitbake rdk-generic-broadband-image
### Error log
With error 'xhBackupRestoreServiceAPI', I also referred below link:
Zilker-SDK Yocto integration for RDKB RPI
It said 'Need to export the gradle and java bin path via recipe or ipcGenerator script'.
My java path is in /usr/bin/
and gradle path is in /opt/gradle/gradle-6.5.1/bin/gradle
(check cmd: whereis gradle)
And I added path with meta-cmf-broadband/recipes-iot/zilker-sdk/zilker-sdk_git.bb:
But got same error with 'No SOURCES given to target: xhBackupRestoreServiceAPI'.
Is there any other PATH setting needed?
John Pomeroy
Tried to build the 64 bit image, got a error with ccsp-wifi-agent. Below is a subset of the error message.
/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/recipe-sysroot/usr/include/ccsp/linux/user_string.h: In function 'UserEqualString2':
/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/recipe-sysroot/usr/include/ccsp/linux/user_string.h:119:34: error: 'strncasecmp' argument 3 type is 'unsigned int' where 'long unsigned int' is expected in a call to built-in function declared without prototype [-Werror=builtin-declaration-mismatch]
119 | return (strncasecmp (s1, s2, (unsigned int)len) == 0) ? TRUE : FALSE;
| ^~~~~~~~~~~~~~~~~
<built-in>: note: built-in 'strncasecmp' declared here
../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c: In function 'upload_client_debug_stats_sta_fa_info':
../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c:1977:14: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
1977 | fp = (FILE *)v_secure_popen("r", "dmesg | grep FA_INFO_%s | tail -1", to_sta_key(sta->sta_mac, sta_key));
| ^
../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c: In function 'upload_client_debug_stats_sta_fa_lmac_data_stats':
../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c:2052:14: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
2052 | fp = (FILE *)v_secure_popen("r", "dmesg | grep FA_LMAC_DATA_STATS_%s | tail -1", to_sta_key(sta->sta_mac, sta_key));
| ^
../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c: In function 'upload_client_debug_stats_sta_fa_lmac_mgmt_stats':
and the tail end of the file:
cc1: all warnings being treated as errors
make[4]: *** [Makefile:555: libCcspWifiAgent_sbapi_la-wifi_monitor.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
cc1: all warnings being treated as errors
make[4]: *** [Makefile:534: libCcspWifiAgent_sbapi_la-cosa_wifi_apis.lo] Error 1
make[4]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999/source/TR-181/sbapi'
make[3]: *** [Makefile:371: all-recursive] Error 1
make[3]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999/source/TR-181'
make[2]: *** [Makefile:372: all-recursive] Error 1
make[2]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999/source'
make[1]: *** [Makefile:549: all-recursive] Error 1
make[1]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999'
make: *** [Makefile:437: all] Error 2
ERROR: oe_runmake failed
WARNING: exit code 1 from a shell command.
ERROR: Execution of '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/temp/run.do_compile.3919344' failed with exit code 1
sipra samantray
Hi Unknown User (john.pomeroy) ,
Could you please try a build from CMF latest release branch - rdkb-2022q2-dunfell.
We will check the dunfell build issue once from our end.
Thank you.
Unknown User (ashish_spanidea)
Are these Host Specific depedencies command which is descripted :
$
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
is worked on specific OS like Ubuntu 20.04.5 LTS version or lower than it but higher than Ubuntu 18.04 because we are running these commands in Ubuntu 22.04.1 with already updated python , git ,tar and coreutils but displaying error in this Ubuntu 22.04 version but no issues in Ubuntu 20.04.5 version
Error Description :
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
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'git' instead of 'git-core'
Package python is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
2to3 python2-minimal:i386 python2:i386 python2-minimal python2 dh-python python-is-python3
E: Package 'python' has no installation candidate
E: Unable to locate package pylint3
Deepika Ganapathi Bhat
Hi Unknown User (ashish_spanidea)
python-is-python2 and some older python
package no longer exists in ubuntu latest version , Could you share the python version and python3 version from your Host system.( command : python --version)If you need
python2
to be the default for the python command you can do something like:sudo ln -s /bin/python2.7 /usr/bin/python
Z-Alejandro Gonzalez Garleano
Hello, I have followed your instructions to build images, I have tried from 2022q1 to 2023q1, as licensed and unlicensed, the result has always been the same even for all versions of raspberry (3b+, 4b 32bit, 4b 64bit) I'm mainly interested in rpi4 64bit but I'm open to getting 3b+ working as well
I get the following:
bitbake rdk-generic-broadband-image
Loading cache: 100% |############################################ ################################################## ################################################## ################################| Time: 0:00:00
Loaded 35 entries from dependency cache.
ERROR: ExpansionError during parsing /home/netman2/2022q4/meta-cmf-raspberrypi/meta-rdk-broadband/recipes-ccsp/hal/hal-fwupgrade_git.bb | ETA: --:--:--
Traceback (most recent call last):
File "Var <do_compile[file-checksums]>", line 1, in <module>
File "/home/netman2/2022q4/openembedded-core/meta/classes/externalsrc.bbclass", line 219, in srctree_hash_files(d=<bb.data_smart.DataSmart object at 0x7f4fd7891860>, srcdir=None):
git_sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8")
> submodule_helper = subprocess.check_output(['git', 'submodule--helper', 'list'], cwd=s_dir, env=env).decode("utf-8")
for line in submodule_helper.splitlines():
File "/usr/lib/python3.6/subprocess.py", line 356, in check_output(timeout=None, *popenargs=(['git', 'submodule--helper', 'list'],), * *kwargs={'cwd': '/home/netman2/2022q4/meta-cmf/../rdkb/devices/raspberrypi/hal/source/fwupgrade', 'env': {'USER': 'netman2', ' PWD': '/home/netman2/2022q4/build-raspberrypi4-64-rdk-broadband', 'HOME': '/home/netman2', 'BBPATH': '/home/netman2/2022q4/build-raspberrypi4-64 -rdk-broadband', 'BB_ENV_EXTRAWHITE': 'ALL_PROXY BBPATH_EXTRA BB_LOGCONFIG BB_NO_NETWORK BB_NUMBER_THREADS BB_SETSCENE_ENFORCE BB_SRCREV_POLICY DISTRO FTPS_PROXY FTP_PROXY GIT_PROXY_COMMAND HTTPS_PROXY HTTP_PROXY MA CHINE NO_PROXY PARALLEL_MAKE SCREENDIR SDKMACHINE SOCKS5_PASSWD SOCKS5_USER SSH_AGENT_PID SSH_AUTH_SOCK STAMPS_DIR TCLIBC TCMODE all_proxy ftp_proxy ftps_proxy http_proxy https_proxy no_proxy ', 'TERM': 'xterm -256color', 'SHELL': '/bin/bash', 'LOGNAME': 'netman2', 'PATH': '/home/netman2/2022q4/openembedded-core/scripts:/home/netman2/2022q4/openembedded- core/bitbake/bin:/home/netman2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr /local/games:/snap/bin', 'LC_ALL': 'en_US.UTF-8', 'GIT_INDEX_FILE': '/tmp/oe-devtool-indexa_rb0kke'}}):
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> **kwargs).stdout
File "/usr/lib/python3.6/subprocess.py", line 438, in run(input=None, timeout=None, check=True, *popenargs=(['git', 'submodule--helper', 'list'],), **kwargs={'stdout': -1, 'cwd': '/home/netman2/2022q4/meta-cmf/../rdkb/devices/raspberrypi/hal/source/fwupgrade' , 'env': {'USER': 'netman2', 'PWD': '/home/netman2/2022q4/build-raspberrypi4-64-rdk-broadband', 'HOME': '/home/netman2', 'BBPATH ': '/home/netman2/2022q4/build-raspberrypi4-64-rdk-broadband', 'BB_ENV_EXTRAWHITE': 'ALL_PROXY BBPATH_EXTRA BB_LOGCONFIG BB_NO_NETWORK BB_NUMBER_THREADS BB_SETSCENE_ENFORCE BB_SRCREV_POLICY DISTRO FTPS_PRO XY FTP_PROXY GIT_PROXY_COMMAND HTTPS_PROXY HTTP_PROXY MACHINE NO_PROXY PARALLEL_MAKE SCREENDIR SDKMACHINE SOCKS5_PASSWD SOCKS5_USER SSH_AGENT_PID SSH_AUTH_SOCK STAMPS_DIR TCLIBC TCMODE all_proxy ftp_proxy ftps_proxy http_proxy https_proxy no_proxy ', 'TERM': 'xterm-256color', 'SHELL': '/bin/bash', 'LOGNAME': 'netman2', 'PATH': '/home/netman2/2022q4/ openembedded-core/scripts:/home/netman2/2022q4/openembedded-core/bitbake/bin:/home/netman2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/ bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'LC_ALL': 'en_US.UTF-8', 'GIT_INDEX_FILE': '/tmp/oe-devtool- indexa_rb0kke'}}):
raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
return CompletedProcess(process.args, retcode, stdout, stderr)
bb.data_smart.ExpansionError: Failure expanding variable do_compile[file-checksums], expression was ${@srctree_hash_files(d)} which triggered exception CalledProcessError: Command '['git', 'submodule--helper', 'list']' returned non-zero exit status 129.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
Any help is very welcome, thanks in advance
Elvira Sichevaia
This appears to be resulting from git not supporting submodule--helper command in latest versions.
I've addressed this by the below patch in openembedded-core (also refer https://git.yoctoproject.org/poky/commit/?id=0533edac277080e1bd130c14df0cbac61ba01a0c):
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
index 277e3826e6bb..f4afc1ba7f7b 100644
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -218,14 +218,16 @@ def srctree_hash_files(d, srcdir=None):
env['GIT_INDEX_FILE'] = tmp_index.name
subprocess.check_output(['git', 'add', '-A', '.'], cwd=s_dir, env=env)
git_sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8")
- submodule_helper = subprocess.check_output(['git', 'submodule--helper', 'list'], cwd=s_dir, env=env).decode("utf-8")
- for line in submodule_helper.splitlines():
- module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1])
- proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
- proc.communicate()
- proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
- stdout, _ = proc.communicate()
- git_sha1 += stdout.decode("utf-8")
+ if os.path.exists(".gitmodules"):
+ submodule_helper = subprocess.check_output(["git", "config", "--file", ".gitmodules", "--get-regexp", "path"], cwd=s_dir, env=env).decode("utf-8")
+ for line in submodule_helper.splitlines():
+ module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1])
+ if os.path.isdir(module_dir):
+ proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+ proc.communicate()
+ proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
+ stdout, _ = proc.communicate()
+ git_sha1 += stdout.decode("utf-8")
sha1 = hashlib.sha1(git_sha1.encode("utf-8")).hexdigest()
with open(oe_hash_file, 'w') as fobj:
fobj.write(sha1)
Unknown User (mkrishna)
Tried following below procedure
Able to build the raspberry pi rdkb code, flash image to the sd card successfully but unable to see any logs on the console output. I confirm the baudrate and serial cable are intact.
Unable to access any content in the sdcard on windows machine.
How to know if the sdcard has the rootfs is flashed and do we need to configure to boot it up ? Any led indication/pattern that can help to know if the stack is up and running?