Linux Platform (RPi4)

Build steps for compilation on RPi4 with Raspbian OS:

Prerequisites

  1. Install the Raspian Pi OS from the “Raspberry Pi Imager” software. Select the RPi4 Os (64-bit) image. 
  2. After installation below are additional packages to be installed for build, db and execution.


sudo apt-get update;
sudo apt-get upgrade;
sudo apt-get install vim;
sudo apt-get install libev-dev;
sudo apt-get install libjansson-dev;
sudo apt-get install zlib1g-dev;
sudo apt-get install libnl-3-dev;
sudo apt-get install libnl-genl-3-dev;
sudo apt-get install libnl-route-3-dev;
sudo apt-get install libavro-dev;
sudo apt-get install libcjson1 libcjson-dev;
sudo apt-get install libssl-dev;
sudo apt-get install uuid-dev;
sudo apt-get install libmysqlcppconn-dev; 
sudo apt-get install libreadline-dev;
sudo apt-get install iptables;
sudo apt install mariadb-server;

Build Instructions

  1.  In a working directory git clone the OneWifi in generic folder and unified-wifi-mesh repository
    ashraf@raspberrypi:~ $ mkdir easymesh_project
    ashraf@raspberrypi:~ $ cd easymesh_project/
    ashraf@raspberrypi:~/easymesh_project $ git clone https://github.com/rdkcentral/OneWifi.git
    ashraf@raspberrypi:~/easymesh_project $ ls
    OneWifi  unified-wifi-mesh


  2. Run the makefile of OneWifi with setup option to pull in other dependent repository. This is a one time operation
    ashraf@raspberrypi:~/easymesh_project $ cd OneWifi/
    ashraf@raspberrypi:~/easymesh_project/OneWifi $ ls
    AUTHORS     build      cmpnt_build_custom_pre_arm.mk   CODE_STYLE.md  configure.ac     COPYING  genautotools.ini  lib      Makefile.am  NOTICE  README.md  source
    autogen.sh  ChangeLog  cmpnt_build_custom_pre_atom.mk  config         CONTRIBUTING.md  custom   include           LICENSE  NEWS         README  scripts
    ashraf@raspberrypi:~/easymesh_project/OneWifi $ make -f build/linux/makefile setup


  3. Build the OneWifi with make command
    ashraf@raspberrypi:~/easymesh_project/OneWifi $ make -f build/linux/makefile all


  4. Build easymesh components in the unified-wifi-mesh folder
    a. Controller
    ashraf@raspberrypi:~/easymesh_project $ ls
    halinterface  OneWifi  rdk-wifi-hal  rdk-wifi-libhostap  unified-wifi-mesh
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/build/ctrl $ ls
    makefile
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/build/ctrl $ make all

    b. CLI
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/build/ctrl $ cd ../../../
    ashraf@raspberrypi:~/easymesh_project $ cd unified-wifi-mesh/build/cli/
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/build/cli $ ls
    makefile
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/build/cli $ make all#If any issues in building cli, please follow below steps: 
    1.cd /etc/ld.so.conf.d
    2.sudo vi libemcli.conf
    3.In this file specify the path where libemcli.so is built. (install/lib - do pwd). If no libemcli.so present, install golang and build cli again with "sudo apt install golang" and "/unified-wifi-mesh/build/cli $ make all" . With this "libemcli.so" listed under "unified-wifi-mesh/install/lib". Now in "libemcli.conf" specify the path where libemcli.so is built. (install/lib - do pwd).
    4.install/bin/sudo ldconfig
    #Now "onewifi_em_cli" is listed under "/unified-wifi-mesh/install/bin"
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/install/bin $ ls
    agent.json cli ctrl.json DevTest.json LinkMetric.json onewifi_em_agent Radiocap.json Sample.json Template.json
    CfgRenew.json Clientcap.json DeviceList.json DPPURI.json Network.json onewifi_em_cli RadioConfig.json STAList.json Template.sav
    Channel.json ClientSteer.json DevInit.json interface NetworkSSID.json onewifi_em_ctrl Reset.json STASteer.json

    c. Agent
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/build/agent $ ls
    makefile
    ashraf@raspberrypi:~/easymesh_project/unified-wifi-mesh/build/agent $ make all


RDK Platform

Prerequisites

  1. Setup a RDK build machine capable of doing RDK builds as mentioned here
  2. It is recommended to get access to RDK licensee account as mentioned here

mkdir <workspace dir>
cd <workspace dir>
repo init -u https://code.rdkcentral.com/r/manifests -b kirkstone -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




  • No labels