a3b501507c045d1ec15f01c8438a15538def6ea3
[pti/rtp.git] / docs / developer-guide.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. Copyright (C) 2019 Wind River Systems, Inc.
4
5 Developer-Guide
6 ===============
7
8 .. contents::
9    :depth: 3
10    :local:
11
12
13 This project implements a real time platform to deploy the O-CU and O-DU and it's based on Yocto/OpenEmbedded.
14
15 This includes a Yocto/OpenEmbedded compatible layer meta-oran and wrapper scripts
16 to pull all required Yocto/OE layers to build out the reference platform.
17
18 To contribute on this project, basic knowledge of Yocto/OpenEmbedded is needed, please refer to the following docs if you want to learn about how to develop with Yocto/OpenEmbedded:
19
20 - `Yocto dev manual`_
21 - `OpenEmbedded wiki`_
22
23 .. _`Yocto dev manual`: https://www.yoctoproject.org/docs/2.6.3/dev-manual/dev-manual.html
24 .. _`OpenEmbedded wiki`: http://www.openembedded.org/wiki/Main_Page
25
26
27
28 1. Prerequisite for build environment
29 -------------------------------------
30
31 * Your host need to meet the requirements for Yocto, please refer to:
32
33   * `Compatible Linux Distribution`_
34   * `Supported Linux Distributions`_
35   * `Required Packages for the Build Host`_
36
37 * The recommended and tested host is Ubuntu 16.04/18.04 and CentOS 7.
38
39   * To install the required packages for Ubuntu 16.04/18.04:
40
41 .. _`Compatible Linux Distribution`: https://www.yoctoproject.org/docs/2.6.3/brief-yoctoprojectqs/brief-yoctoprojectqs.html#brief-compatible-distro
42 .. _`Supported Linux Distributions`: https://www.yoctoproject.org/docs/2.6.3/ref-manual/ref-manual.html#detailed-supported-distros
43 .. _`Required Packages for the Build Host`: https://www.yoctoproject.org/docs/2.6.3/ref-manual/ref-manual.html#required-packages-for-the-build-host
44
45 ::
46
47   $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
48     build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
49     xz-utils debianutils iputils-ping make xsltproc docbook-utils fop dblatex xmlto \
50     python-git
51
52     * To install the required packages for CentOS 7:
53
54 ::
55
56   $ sudo yum install -y epel-release
57   $ sudo yum makecache
58   $ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
59     diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \
60     perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-Digest-SHA \
61     python34-pip xz which SDL-devel xterm
62
63
64 2. Use wrapper script build_inf.sh to setup build env and build the INF AIO x86 image
65 -------------------------------------------------------------------------------------
66
67 ::
68
69   # Get the wrapper script with either curl or wget
70   $ curl -o build_inf.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_inf.sh;hb=HEAD'
71   $ wget -O build_inf.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_inf.sh;hb=HEAD'
72
73   $ chmod +x build_inf.sh
74   $ WORKSPACE=/path/to/workspace
75   $ ./build_inf.sh -w ${WORKSPACE}
76
77 If all go well, you will get the ISO image in:
78 ${WORKSPACE}/prj_oran_inf_anaconda/tmp-glibc/deploy/images/intel-corei7-64/inf-image-aio-installer-intel-corei7-64.iso
79
80 3. (Optional) Use wrapper script build_oran.sh to setup build env and build the lagecy x86 image
81 ------------------------------------------------------------------------------------------------
82
83 Note: The lagecy image is the Kubernetes Cluster image as the same one in Amber (1.0) release.
84
85 ::
86
87   # Get the wrapper script with either curl or wget
88   $ curl -o build_oran.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_oran.sh;hb=HEAD'
89   $ wget -O build_oran.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_oran.sh;hb=HEAD'
90
91   $ chmod +x build_oran.sh
92   $ WORKSPACE=/path/to/workspace_lagecy
93   $ ./build_oran.sh -w ${WORKSPACE}
94
95 If all go well, you will get the ISO image in:
96 ${WORKSPACE}/prj_oran_inf/tmp-glibc/deploy/images/intel-x86-64/oran-image-inf-host-intel-x86-64.iso
97
98 4. (Optional) Use wrapper script build_oran.sh to setup build env and build the ARM Kubernetes Cluster image
99 ------------------------------------------------------------------------------------------------------------
100
101 Note:
102   * the ARM Kubernetes Cluster image only supports the BSP nxp-lx2xxx and is verified with the board NXP LX2160ARDB
103   * The ISO image is supported yet.
104
105 ::
106
107   # Get the wrapper script with either curl or wget
108   $ curl -o build_oran.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_oran.sh;hb=HEAD'
109   $ wget -O build_oran.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_oran.sh;hb=HEAD'
110
111   $ chmod +x build_oran.sh
112   $ WORKSPACE=/path/to/workspace_arm
113   $ ./build_oran.sh -w ${WORKSPACE} -b nxp-lx2xxx
114
115 If all go well, you will get the rootfs image in:
116 ${WORKSPACE}/prj_oran_inf/tmp-glibc/deploy/images/nxp-lx2xxx/oran-image-inf-host-nxp-lx2xxx.tar.bz2