DAC is based of 3 stages in BPIR4


Dac functionality in BPIR4.

dobby , crun and dsm functionality play a major role from device side, which are used for running of any dac application in the BPIR4 device. All mentioned functionality has been brought to BPIR4 platform by including "dac" distro feature into the build, for reference you follow mentioned jira.

OCI image generation.

OCI image generation is specifically for broadband application developers, in which they can create their application irrespective of platform. That image will be compatible with all the platforms but only difference is they need to define the arch of the platform like 32 bit and 64 bit.
As mentioned we will be using generic code for the generation of OCI image, so that will be using meta-dac-sdk-broadband meta layer.(https://github.com/rdkcentral/meta-dac-sdk-broadband)
As this is platform independent, but you can follow mentioned Jira for any query with respect to oci image generation for BPIR4 platform.
Build instructions are mentioned below for oci image generation, as of now we are offering "iperf3 application" in meta-dac-sdk-broadband.

#Following repo commands will required meta-layers see manifest of https://code.rdkcentral.com/r/plugins/gitiles/manifests/+/refs/heads/rdk-next/rdkb-extsrc.xml 1)repo init -u https://code.rdkcentral.com/r/rdkcmf/manifests -m rdkb-extsrc.xml -b kirkstone   


#execute the below command to clone the meta-dac-sdk-broadband and bitbake 
2)sed -i '/oe-layers.xml/a  \ \ \ \ <project name="rdkcentral/meta-dac-sdk-broadband" remote="github" path="meta-dac-sdk-broadband" revision="main" /> \n\ \ \ \ <project name="yoctoproject/poky" remote="github" path="." revision="1e0d58c53b7d9c3feb631e46666ae7a3e3614253" upstream="kirkstone"/>' .repo/manifests/rdkb-extsrc.xml 

#Below command to sync all the code to the folder.  
3)repo sync -j `nproc` --no-clone-bundle --no-tags   


# cherrypick the below link to overcome the old syntax override issue with bitbake 
4)cd bitbake && git fetch https://code.rdkcentral.com/r/rdk/components/opensource/oe/bitbake refs/changes/35/85335/3 && git cherry-pick FETCH_HEAD && cd ..   

5). ./oe-init-build-env  #Command used for setting up build folder. 
6)cp ../meta-dac-sdk-broadband/manifests/bblayers.conf conf/ 
7)echo 'MACHINE = "raspberrypi4-64"' >> conf/local.conf # This step is used to differentiate the arch where BPIR4 supports 64 bit arch by default.        


# Building Iperf DAC app 
8)bitbake dac-image-iperf3

Bundle Creation

After OCI image gets generated we need to generate bundlegen for that generated oci image to make that application platform compatible. (https://github.com/rdkcentral/BundleGen.git)
For BPIR4 we are having below mentioned templates.
            1)bpir4_reference.json
            2)bpir4_reference_libs.json
Before generating bundlegen get confirm that you are having supported packages in your local machine(linux machine) for bundlegen support, follow bellow mentioned wiki for installing bundlegen supported packages .
Containerization using META DAC SDK in RDK-B RPI#,Install%20Bundlegen%20in%20a%20VM%20or%20any%20host%20machine,-Reference%20%3A%20Containerization 

git clone https://github.com/rdkcentral/BundleGen.git  (clone Bundlegen code.) 
cd BundleGen 
python3 setup.py build 
python3 setup.py install 
export PYTHONPATH=/usr/lib/python3.8/site:$PYTHONPATH
# Copy generated oci image to this folder.
chmod 777 dac-image-iperf3-raspberrypi4-20240930100642.rootfs-oci.tar
tar -xvf dac-image-iperf3-raspberrypi4-20240930100642.rootfs-oci.tar 
chmod 777 dac-image-iperf3-raspberrypi4-20240930100642.rootfs 
bundlegen generate --platform bpir4_reference oci:dac-image-iperf3-raspberrypi4-20240930100642.rootfs-oci.tar ~/iperf332 (creates the iperf332.tar.gz bundle file)


REFPLTB-2924 - Required meta-dac-sdk-broadband kirkstone support for DAC In Progress