Improve cross-compile documentation
- Give introductory line - Reformulate headers to clarify steps - Reference dockerfiles for further information
This commit is contained in:
+26
-21
@@ -1,15 +1,23 @@
|
||||
OpenAirInterface Cross-Compiler User Guide: explains how to build OAI for ARM64
|
||||
(using the instruction set aarch64).
|
||||
|
||||
[[_TOC_]]
|
||||
|
||||
# Environment
|
||||
|
||||
# OpenAirInterface Cross-Compiler User Guide
|
||||
Tested on Ubuntu 22. Newer version of Ubuntu should work as well, please file a
|
||||
bug report if not (Gitlab Issues page).
|
||||
|
||||
## Environment
|
||||
You should be able to compile OAI on the host (i.e., for x86). To do so,
|
||||
install the dependencies, if not done already:
|
||||
|
||||
- OS: ubuntu 22.04
|
||||
```shell
|
||||
cmake_targets/build_oai -I
|
||||
```
|
||||
|
||||
### Set up the environment
|
||||
# Install ARM64 dependencies
|
||||
|
||||
Set up for install the package for aarch64.
|
||||
Set up for install the package for ARM64.
|
||||
|
||||
```shell
|
||||
sudo dpkg --add-architecture arm64
|
||||
@@ -46,21 +54,12 @@ sudo apt-get install -y \
|
||||
```
|
||||
|
||||
The above enables apt to download packages for arm64. It also installs
|
||||
gcc cross-compilers for aarch64 in version 11. This version needs to match the
|
||||
gcc cross-compilers for ARM64 in version 11. This version needs to match the
|
||||
versions of gcc defined in the cmake cross-compilation file (`cross-arm.cmake`).
|
||||
|
||||
## Install and Build
|
||||
# Build for ARM64
|
||||
|
||||
### Install required packages
|
||||
|
||||
Use the host compiler to install its dependencies.
|
||||
|
||||
```shell
|
||||
cd cmake_targets
|
||||
./build_oai -I
|
||||
```
|
||||
|
||||
### Build the LDPC generators
|
||||
## Build code generation tools for host
|
||||
|
||||
Use the x86 compiler to build the `ldpc_generators` and generate the header
|
||||
file in the `ran_build/build` folder. They are necessary during a build for
|
||||
@@ -77,7 +76,7 @@ cmake ../../..
|
||||
make -j`nproc` ldpc_generators generate_T
|
||||
```
|
||||
|
||||
### Build the Other Executables for aarch64
|
||||
## Build executables for ARM64
|
||||
|
||||
Switch to the `ran_build/build-cross` folder to build the target executables
|
||||
for ARM. The `cross-arm.cmake` file defines some ARM-specific build tools
|
||||
@@ -90,7 +89,13 @@ be defined in order to tell cmake where the host tools have been built.
|
||||
cd ../build-cross
|
||||
cmake ../../.. -GNinja -DCMAKE_TOOLCHAIN_FILE=../../../cmake_targets/cross-arm.cmake -DNATIVE_DIR=../build
|
||||
|
||||
ninja -j`nproc` dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim
|
||||
ninja -j`nproc` lte-softmodem nr-softmodem nr-cuup oairu lte-uesoftmodem nr-uesoftmodem
|
||||
ninja -j`nproc` params_libconfig coding rfsimulator
|
||||
ninja dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim
|
||||
ninja lte-softmodem nr-softmodem nr-cuup oairu lte-uesoftmodem nr-uesoftmodem
|
||||
ninja params_libconfig coding rfsimulator
|
||||
```
|
||||
|
||||
# Further information
|
||||
|
||||
You can do the above steps using docker, see dockerfiles
|
||||
`docker/Dockerfile.base.ubuntu22.cross-arm64` and
|
||||
`docker/Dockerfile.build.ubuntu22.cross-arm64` for more information.
|
||||
|
||||
Reference in New Issue
Block a user