0. Introduction - RDK Extender

  • RDK Extender profile is a Yocto based RDK miniature build with opensource OpenSync agent
  • OpenSync agent is cloud agnostic and it forms mesh orchestrated by Plume cloud
  • RPI4 target is chosen for extender profile since this target is chip and widely available
  • Two external Wi-Fi dongles are used for 2.4GHz and 5GHz radio support
  • OpenSync's minimum requirement on the WiFi radio is the support for 2AP and 1 Station interface
  • Conceptually, RPI4 extender can be used with different Gateway devices(which has OpenSync agent). But currently validated with TurrisOmnia RDKB GW
  • Prerequisite: Need to contact Plume to acquiring TLS certificate and backhaul credential

1. Host Setup

NOTE: Observing fetch errors in VMs with Ubuntu14.x. Thus, suggesting to use VMs with Ubuntu16.x or higher.

2. Building

Note: Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access. Please login to code.rdkcentral.com before attempting to clone.

To build, follow below instructions

Create workspace directory

mkdir <workspace dir>
cd <workspace dir>

OpenSync backhaul credential

Please get patch(service.patch) for meta-turris layer from Plume to apply backhaul credential(SSID:PSK). Please check Cloud Access Guide for more details.


RPI4 Extender Kirkstone build(32-bit) instructions:

repo init -u https://code.rdkcentral.com/r/manifests -b rdkb-2024q2-kirkstone -m rdkb-pod-nosrc.xml
repo sync -j4 --no-clone-bundle
<UPDATE 0001-Update-bhaul-credential.patch in meta-cmf-broadband layer>
MACHINE=raspberrypi4-rdk-extender source meta-cmf-raspberrypi/setup-environment
bitbake rdk-generic-extender-image

3. OpenSync version details:

Ported OpenSync version is 4.4.0.

OpenSync components

Branch

OpenSync Core component

osync_4.4.0

Platform-RDK

osync_4.4.0

RPI Vendor component

main


4. Sanity Test cases :

S.No

Sanity tested on

Status


S.No

Sanity tested on

Status


1

Image should be stable

Pass


2

OpenSync service and its manager should be running

Pass


3

RPI Extender onboarding over Wi-Fi

Pass


4

Able to Ping www.google.com from RPI Extender

Pass


5

Wifi Extension of Internet to mobile from GW

Pass

Currently through 2.4GHz Radio, While 5GHz radio is used for backhaul connectivity


4.1. kirkstone build issues :

1

/home/apv547/extenter_dunfell_to_kirk/meta-cmf-raspberrypi/recipes-xravs/xr-speech-avs/xr-speech-avs_%.bbappend
NOTE: Resolving any missing task queue dependencies 
ERROR: Nothing RPROVIDES 'python-core' (but /home/apv547/extenter_dunfell_to_kirk/meta-cmf-raspberrypi/recipes-core/images/rdk-generic-extender-image.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'python-core' is unbuildable, removing... Missing or unbuildable dependency chain was: ['python-core']
ERROR: Required build target 'rdk-generic-extender-image' has no buildable providers. Missing or unbuildable dependency chain was: ['rdk-generic-extender-image', 'python-core']
Summary: There were 93 WARNING messages

Proposed Soln: 
python-core related to meta-python2 in dunfell
Python3 recipes will continue to be supported via the original meta-python layer.
Python 2 is going EOL (end of life) - NOT applicable for kirkstone and so removing for kirkstone in meta-cmf-raspberrypi/recipes-core
/images/rdk-generic-extender-image.bb ${@bb.utils.contains("DISTRO_FEATURES", "kirkstone", "", "python-core",  d)} \

2

NOTE: Resolving any missing task queue dependencies
ERROR: Nothing RPROVIDES 'dhcp-server' (but /home/apv547/extender_dunfell_to_kirk/meta-cmf-raspberrypi/recipes-core/images
/rdk-generic-extender-image.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'dhcp-server' is unbuildable, removing... Missing or unbuildable dependency chain was: ['dhcp-server']
ERROR: Required build target 'rdk-generic-extender-image' has no buildable providers. Missing or unbuildable dependency chain was: ['rdk-generic-extender-image', 'dhcp-server']

Proposed Soln:
For kirkstone, its NOT applicable and so removing it from meta-cmf-raspberrypi/recipes-core/images/rdk-generic-extender-image.bb
${@bb.utils.contains("DISTRO_FEATURES", "kirkstone", "", "dhcp-server",  d)} \

3

ERROR: Nothing PROVIDES 'python' (but /home/apv547/extender_dunfell_to_kirk/meta-rdk-ext/recipes-common/nmap/nmap_7.60.bb DEPENDS on or otherwise requires it).
Close matches:  
python3  
python3-py  
python3-sh
NOTE: Runtime target 'nmap' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['nmap', 'python']
ERROR: Required build target 'rdk-generic-extender-image' has no buildable providers.
Missing or unbuildable dependency chain was: ['rdk-generic-extender-image', 'nmap', 'python']

Proposed Soln:
For kirkstone GW broadband build, its NOT available and so removing it in kirkstone extender build as well meta-cmf-raspberrypi/recipes-core
/images/rdk-generic-extender-image.bb  ${@bb.utils.contains("DISTRO_FEATURES", "kirkstone", "", "nmap",  d)} \{noformat}

4ERROR: hostapd-2.10-r0 do_patch: Applying patch 'nl80211-relax-bridge-setup.patch' on target directory '/home/apv547
/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/hostapd/2.10-r0/hostapd-2.10'
CmdError('quilt --quiltrc /home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi
/hostapd/2.10-r0/recipe-sysroot-native/etc/quiltrc push', 0, 'stdout: Applying patch nl80211-relax-bridge-setup.patch
patching file src/drivers/driver_nl80211.c Hunk #1 FAILED at 6923. 1 out of 1
hunk FAILED – rejects in file src/drivers/driver_nl80211.c Patch nl80211-relax-bridge-setup.patch does not apply (enforce with -f)stderr: ') 
ERROR: Logfile of failure stored in: /home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi
/hostapd/2.10-r0/temp/log.do_patch.2538029
ERROR: Task (/home/apv547/extender_dunfell_to_kirk/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb:do_patch) failed with exit code '1'
Waiting for 6 running tasks to finish:
WARNING: libevent-2.1.12-r0 do_patch: Fuzz detected:Applying patch header_installation.patch patching file Makefile.am
Hunk #1 succeeded at 331 with fuzz 1 (offset 105 lines).
The context lines in the patches can be updated with devtool:    devtool modify libevent    
devtool finish --force-patch-refresh libevent <layer_path>Don't forget to review changes done by devtool !WARNING: libevent-2.1.12-r0
do_patch: QA Issue: Patch log indicates that patches do not apply cleanly. [patch-fuzz]
NOTE: Tasks Summary: Attempted 1146 tasks of which 1126 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory NOTE: Writing buildhistory took: 8 secondsSummary: 1 task failed:  
/home/apv547/extender_dunfell_to_kirk/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb:do_patch
Summary: There were 94 WARNING messages.
Summary: There was 1 ERROR message, returning a non-zero exit code.
apv547@dvm-yocto4-docker-apv547:~/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender$

Proposed Soln:
removed nl80211-relax-bridge-setup.patch from meta-cmf-raspberrypi/recipes-connectivity/hostapd
/hostapd_%.bbappend as patch got upstreamed in hostapd-2.10 version [dunfell uses hostapd-2.9] and hostapd needed for extender profile,
however,kirkstone GW does not need hostapd for oneWiFi build

5

make[3]: *** [/home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work-shared/raspberrypi4-rdk-extender

/kernel-source/scripts/Makefile.build:552: /home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp
/work/raspberrypi4_rdk_extender-rdk-linux-gnueabi/lttng-modules/2.13.4-r0/lttng-modules-2.13.4/src/probes] Error 2

make[3]: *** Waiting for unfinished jobs....

make[2]: *** [/home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work-shared/raspberrypi4-rdk-extender/kernel-source/Makefile:1903: 
/home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work
/raspberrypi4_rdk_extender-rdk-linux-gnueabi/lttng-modules/2.13.4-r0/lttng-modules-2.13.4/src] Error 2

make[2]: Leaving directory '/home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work-shared/raspberrypi4-rdk-extender/kernel-build-artifacts'

make[1]: *** [Makefile:219: __sub-make] Error 2

make[1]: Leaving directory '/home/apv547/extender_dunfell_to_kirk/build-raspberrypi4-rdk-extender/tmp/work-shared/raspberrypi4-rdk-extender/kernel-source'

make: *** [Makefile:31: modules] Error 2

ERROR: oe_runmake failed 

WARNING: exit code 1 from a shell command.
ERROR: Task (/home/apv547/extender_dunfell_to_kirk/openembedded-core/meta/recipes-kernel/lttng/lttng-modules_2.13.4.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3743 tasks of which 1282 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 15 seconds
Summary: 1 task failed:   /home/apv547/extender_dunfell_to_kirk/openembedded-core/meta/recipes-kernel/lttng/lttng-modules_2.13.4.bb:do_compile
Summary: There were 190 WARNING messages.
Summary: There were 2 ERROR messages, returning a non-zero exit code.

Proposed Soln: 
kirk[lttng_2.13.4.bb] - lttng NOT available in build*/tmp/work/ dunfell[lttng_2.11.2.bb] - lttng available in build*/tmp
/work/removed "lttng-tools" for kirkstone extender in  meta-cmf-raspberrypi/recipes-core
/images/rdk-generic-extender-image.bb  ${@bb.utils.contains("DISTRO_FEATURES", "kirkstone", "", "lttng-tools",  d)} {noformat}













4.2. Hardwares

Purchase link: RPi4 – 1No

Purchase link: Netgear Wi-Fi Dongle – 2Nos

  • No labels