OpenSync activities with RDKB

OpenSync supported platforms

List of supported platforms that has already added OpenSync package in default builds,

Device nameCurrent OpenSync versionPlanned OS releaseBuild instructions
Turris Omnia Residential GWOpenSync 3.2.7 4.x with OneWifiTurris Omnia RDK-B Gateway - Yocto 3.1(Dunfell)
Turris Omnia ExtenderOpenSync 2.0.5OpenSync 3.2.7 RDKB Extender Yocto 3.1 - Dunfell
Raspberrypi 4 extenderOpenSync 2.0.5OpenSync 3.2.7RPI 4B Model Reference Platform: Extender build instructions

OpenSync cloud Requirements

To establish connection with Plume cloud server using the OpenSync, follow the cloud Access Guide

WiFi Extender with Turris Omnia Reference Platform - Cloud Access Guide

OpenSync connection establishment with cloud

OpenSync Backhaul Support

The OpenSync Backhaul Support will enable extender connectivity requires two wireless interfaces as well as bridge and subnet

Wifi dongles connected to device(Raspberry pi 4 example) 

  • Netgear wifi dongle1 (2GHz)
  • Netgear wifi dongle2 (5GHz)

OpenSync service should be up and running. List of OpenSync process running,

root@raspberrypi4-rdk-extender:~# ps -Af | grep "open"
root       296     1  1 03:54 ?        00:00:03 /usr/sbin/ovsdb-server --remote=punix:/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Opb
root       299     1  0 03:54 ?        00:00:02 /usr/sbin/ovs-vswitchd --pidfile=/var/run/openvswitch/
root       372     1  0 03:54 ?        00:00:00 /usr/opensync/bin/pl2rld
root       375     1  0 03:54 ?        00:00:00 /usr/opensync/bin/dm
root       377   375  0 03:54 ?        00:00:00 /usr/opensync/bin/dm
root       384   377  0 03:54 ?        00:00:00 /usr/opensync/bin/om
root       385   377  0 03:54 ?        00:00:00 /usr/opensync/bin/nm
root       386   377  0 03:54 ?        00:00:00 /usr/opensync/bin/qm
root       387   377  0 03:54 ?        00:00:00 /usr/opensync/bin/xm
root       392   377  0 03:54 ?        00:00:01 /usr/opensync/bin/cm
root       394   377  0 03:54 ?        00:00:00 /usr/opensync/bin/wm
root       398   377  0 03:54 ?        00:00:00 /usr/opensync/bin/sm
root       400   377  0 03:54 ?        00:00:00 /usr/opensync/bin/lm
root       831   385  0 03:54 ?        00:00:00 /sbin/udhcpc -i br-wan -f -p /var/run/ -s /usr/opensync/bin/ -t 60 -X
root      1272   308  0 03:59 ttyS0    00:00:00 grep open

OpenSync Manager should be active

root@raspberrypi4-rdk-extender:/usr/opensync/tools# ./ovsh s Manager
_uuid            | 5fc9~61e8                                                |
_version         | ef39~9332                                                |
connection_mode  | ["set",[]]                                               |
external_ids     | ["map",[]]                                               |
inactivity_probe | 30000                                                    |
is_connected     | true                                                     |
max_backoff      | ["set",[]]                                               |
other_config     | ["map",[]]                                               |
status           | ["map",[["sec_since_connect","137"],["state","ACTIVE"]]] |
target           | ssl:                                   |

Plume NOC

Connected client with Turris-Extender,

Current plans

  • Stabilising OpenSync_3.2.7 version is being performed by the Plume Team

For more information on OpenSync, visit 

  • No labels

1 Comment

  1. Z-Kaviya Priyankaa K V B Narayanaswamy Ramaiyer Rajesh B Prathipati 

    Hello ,

    we are integrating gw image with rdkb 22.2 and opensync 3.2.7 for broadcom chipset, we are able to build by following some changes and following these process.

    1. take a source code from the drive -

     2. before start building the FW image, please execute the below dependencies(prerequisite ubuntu:20.04):
       1.sudo apt-get update
       2.sudo apt-get -y install libtiff5-dev libtiff5 liblzo2-dev uuid-dev bison flex libc6:i386 libstdc++6:i386 libc6-dev-i386 bzip2 make vim-common automake build-essential pkg-config dos2unix bc gawk libtool python python-six git python3 openvswitch-switch dropbear-bin ncurses-dev ccache hexec python3-pip quilt wget unzip libssl-dev libncurses5-dev lzma-dev liblzma-dev lzma binutils-dev autoconf autotools-dev bsh g++ gettext bisonc++ zlib1g-dev
       3.sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm

       4. mkdir ~/bin 
          export PATH=~/bin:$PATH 
          sudo apt install curl
          curl > ~/bin/repo 
          chmod a+x ~/bin/repo

       5. sudo rm /bin/sh
       6. sudo ln -s /bin/bash /bin/sh

       7. create .netrc file in home directory by " vi .netrc " command and save the following data in it 

        login YOUR_USERNAME
        password YOUR_PASSWORD 

    3. untar the source code   
       tar -xvf CBV390S5-AX5700_Broadcom_Source-20220303T074455Z-001.tar.gz
       cd CBV390S5-AX5700_Broadcom_Source 

    4. we should untared the OpenBFC RDKM tarball package file to our workspace and then try to copy the OpenBFC lattice tarball package file to downloads/ directory without untarring it like below (please execute the below).

             tar xfz OpenBFC_22.2_RDKM_3390_Opensource.tgz
             tar xzf OpenBFC_22.2_RDKM_CM3390_wifi_22.1-ea4.tgz
             tar xfz openbfc_rdkm_wifi.tgz    
             tar xfz OpenBFC_22.2_RDKM_3390_SLA.tgz 
             patch -p0 < openbfc_rdkm_diff.txt
             cp OpenBFC_22.2_lattice.tar.gz downloads/.
             cp OpenBFC_22.2_common.tar.gz downloads/.
             cp wifi_src-22.1-ea4- downloads/wifi_src.tgz
             cp wifi_airiq- downloads/wifi_airiq.tgz

    5. we need to setup our build environment by exectuing below command , so that will get RDKM base code from server.

           1.source meta-rdk-broadcom-broadband/setup-environment-broadcom-broadband 
        ==> {select option 3}  
           to choose our target platform(meta-rdk-broadcom-generic-rdk/meta-brcm93390smwvg2/conf/machine/brcm93390smwvg2.conf). 
    6. please fallow the below modifications:

    ===>1.replace the meta-rdk-opensync ( u can get new meta-rdk-opensync layer with --> and change the OPENSYNC_VENDOR_URI in a file file, along with this disable #DEPENDS += "hal-wifi-cfg80211" with a same file (this will resolve file errr)

    7.start the bitbake server by using below :
         bitbake-layers add-layer ../meta-rdk-opensync/
    8.  ==> please try to  Build the OpenSync package by executing below command

        bitbake opensync
       ==> You may get some errors like below :
       1. Nothing PROVIDES 'bridge-utils-native'
       2. Nothing RPROVIDES 'cpp' 
       above errors get reslove by reffering below web link :     
       3.error -
        EERROR:unsupported machine error (brcm93390smwvg2)
        add machine name (brcm93390smwvg2) in a file like below
               # To customize: This vendor layer supports Turris Omnia as a residential / business gateway
               # and Turris Omnia as Extender/GW. Put your machine name here.
                 ifeq ($(RDK_MACHINE),brcm93390smwvg2)
        4. ERROR-
                | work/RDKB/lib/ error: undefined reference to 'wifi_isZeroDFSSupported'
                | work/RDKB/lib/ error: undefined reference to 'wifi_setZeroDFSState'
                | work/RDKB/lib/ error: undefined reference to 'wifi_getZeroDFSState'
                | work/RDKB/lib/ error: undefined reference to 'wifi_getRadioOperatingParameters'
                | work/RDKB/lib/ error: undefined reference to 'wifi_getRadioVapInfoMap'
                | work/RDKB/lib/ error: undefined reference to 'wifi_createVAP'
           Try to define above APIs in vif.c file (defination part you can get in wifi_hal.c file)
           | install: cannot stat '/home/spanidea72/Documents/CBV390S5-AX5700_Broadcom_Source_22.2/build-brcm93390smwvg2/tmp/work/cortexa15hf-neon-vfpv4-rdk-linux-gnueabi/opensync/3.2.7-r0/': No such file or directory

            try to add file inside -->CBV390S5-AX5700_Broadcom_Source_22.2/build-brcm93390smwvg2/tmp/work/cortexa15hf-neon-vfpv4-rdk-linux-gnueabi/opensync/3.2.7-r0/
        6. ERROR:
           | install: cannot stat '/home/spanidea72/Documents/CBV390S5-AX5700_Broadcom_Source_22.2/build-brcm93390smwvg2/tmp/work/cortexa15hf-neon-vfpv4-rdk-linux-gnueabi/opensync/3.2.7-r0/': No such file or directory

             please try to add file inside-->CBV390S5-AX5700_Broadcom_Source_22.2/build-brcm93390smwvg2/tmp/work/cortexa15hf-neon-vfpv4-rdk-linux-gnueabi/opensync/3.2.7-r0/

    8. please do below modification :

    ==>1.Add IMAGE_INSTALL += "opensync" to meta-cmf/recipes-core/images/rdk-generic-broadband-image.bbappend

    ==>2.Please modify the following file due to our board is 4GB Nand Flash and rebuild the image.

    #page_size = "2048"
    #pebk_size = "128"
    #peb_size = "131072"
    #leb_size = "126976"
    page_size = "4096"
    pebk_size = "256"
    peb_size = "262144"
    leb_size = "253952"

    ==>3.Please enable ssl in a file meta-virtualization/recipes-networking/openvswitch/ +46
            PACKAGECONFIG[ssl] = ",--enable-ssl,openssl,"

    ==>4. please enable mqtt protocol in a file vi meta-rdk-broadband/recipes-rdkb/usp-pa/ +27

            # Configure options for OBUSPA
            EXTRA_OECONF += "--enable-mqtt"
    9. bitbake rdk-generic-broadband-image

       Collected errors:
     * check_data_file_clashes: Package procps wants to install file /home/spanidea72/Documents/CBV390S5-AX5700_Broadcom_Source_22.2/build-brcm93390smwvg2/tmp/work/brcm93390smwvg2-rdk-linux-gnueabi/rdk-generic-broadband-image/1.0-r0/rootfs/usr/bin/vmstat
        But that file is already provided by package  * broadcom-wifi
    g libss2.

    Please comment out 'procps' on these files.  
     meta-rdk/recipes-core/packagegroups/ +43
     meta-virtualization/recipes-networking/openvswitch/ +20
     10. PLEASE try to rebuild the image.-->bitbake rdk-generic-broadband-image

    after building sucessfully managers is not running and we are also missing openvswitch and mesh- agent.

    so please help me to debug this issue.