Add documentation to package creation and installation
This commit is contained in:
@@ -57,6 +57,7 @@ There is some general information in the [OpenAirInterface Gitlab Wiki](https://
|
|||||||
- [How to do a handover](./handover-tutorial.md)
|
- [How to do a handover](./handover-tutorial.md)
|
||||||
- [How to setup gNB frequency](./gNB_frequency_setup.md)
|
- [How to setup gNB frequency](./gNB_frequency_setup.md)
|
||||||
- [How to use the RT data recording app](./data_recording.md)
|
- [How to use the RT data recording app](./data_recording.md)
|
||||||
|
- [How to use packages](./packages.md)
|
||||||
|
|
||||||
Legacy unmaintained files:
|
Legacy unmaintained files:
|
||||||
- [`L2NFAPI_NOS1.md`](./L2NFAPI_NOS1.md), [`L2NFAPI_S1.md`](./L2NFAPI_S1.md):
|
- [`L2NFAPI_NOS1.md`](./L2NFAPI_NOS1.md), [`L2NFAPI_S1.md`](./L2NFAPI_S1.md):
|
||||||
|
|||||||
+139
@@ -0,0 +1,139 @@
|
|||||||
|
# OpenAirInterface Packages
|
||||||
|
|
||||||
|
This document describes how to build Deb/RPM packages with OAI's build system, cmake.
|
||||||
|
|
||||||
|
[[_TOC_]]
|
||||||
|
|
||||||
|
## Create packages
|
||||||
|
|
||||||
|
Packages are created by running `cpack` after configuring OAI with the appropriate options and building the executables.
|
||||||
|
|
||||||
|
First, configure the project with `cmake` and select which type of package you want to build. Then, compile, and finally run `cpack`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/openairinterface5g
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -GNinja <options>
|
||||||
|
ninja
|
||||||
|
cpack
|
||||||
|
```
|
||||||
|
|
||||||
|
where `<options>` is for:
|
||||||
|
|
||||||
|
- packaging **USRP**: `-DOAI_USRP=ON -DPACKAGING_USRP=ON`
|
||||||
|
- packaging **LTE**: `-DPACKAGING_LTE=ON`
|
||||||
|
- packaging **NR**: `-DPACKAGING_NR=ON`
|
||||||
|
- packaging **COMMON**: `-DPACKAGING_COMMON=ON -DENABLE_TELNETSRV=ON`
|
||||||
|
- packaging **PHYSIM**: `-DPACKAGING_PHYSIM=ON`
|
||||||
|
|
||||||
|
By default, deb packages are built. If you want to build for RPM, also provide `-DPACKAGING_RPM=ON`
|
||||||
|
|
||||||
|
For example, to package all available packages, run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cmake .. -GNinja -DOAI_USRP=ON -DPACKAGING_USRP=ON -DPACKAGING_LTE=ON -DPACKAGING_NR=ON -DPACKAGING_COMMON=ON -DENABLE_TELNETSRV=ON -DPACKAGING_PHYSIM=ON
|
||||||
|
ninja
|
||||||
|
cpack
|
||||||
|
```
|
||||||
|
|
||||||
|
## Package installation
|
||||||
|
|
||||||
|
In order to install the packages, run:
|
||||||
|
|
||||||
|
### Ubuntu/Debian
|
||||||
|
|
||||||
|
dpkg -i liboai-common.deb liboai-usrp.deb oai-lte.deb oai-nr.deb oai-physim.deb
|
||||||
|
|
||||||
|
### Rhel/Fedora
|
||||||
|
|
||||||
|
rpm -i liboai-common.rpm liboai-usrp.rpm oai-lte.rpm oai-nr.rpm oai-physim.rpm
|
||||||
|
|
||||||
|
|
||||||
|
**NOTE**: After oai-nr and oai-lte installation, you'll have services running in systemd, for more information check Systemd paragraph.
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Use debug symbols
|
||||||
|
|
||||||
|
- Install gdb with `apt` or `dnf`
|
||||||
|
- Install both stripped package and the corresponding debug symbol one
|
||||||
|
- Use gbd on you executable, example: ```gdb --args /usr/bin/nr-softmodem -O
|
||||||
|
/etc/openairinterface/nr/gnb.sa.band78.fr1.106PRB.usrpb210.conf -E
|
||||||
|
--continuous-tx -A -2 --device.name oai_usrpdevif```
|
||||||
|
- Then use ```run```
|
||||||
|
|
||||||
|
### Systemd
|
||||||
|
|
||||||
|
Once installed, oai-nr and oai-lte have **services** which run in systemd
|
||||||
|
(`nr-softmodem` and `nr-cuup` for oai-nr and `lte-softmodem` for oai-lte),
|
||||||
|
here is a list of useful **commands**:
|
||||||
|
|
||||||
|
- start
|
||||||
|
- stop
|
||||||
|
- restart
|
||||||
|
- reload
|
||||||
|
- status
|
||||||
|
- enable (enable service at boot)
|
||||||
|
- disable (disable service at boot)
|
||||||
|
- is-enabled
|
||||||
|
|
||||||
|
To use them:
|
||||||
|
|
||||||
|
sudo systemctl [command] [service]
|
||||||
|
|
||||||
|
By default, following configuration files are selected:
|
||||||
|
- **nr-softmodem**: `gnb.sa.band78.fr1.106PRB.usrpb210.conf`
|
||||||
|
- **nr-cuup**: `gnb-cuup.sa.f1.conf`
|
||||||
|
- **lte-softmodem**: `enb.band7.tm1.50PRB.usrpb210.conf`
|
||||||
|
|
||||||
|
To modify the configuration:
|
||||||
|
- Select the configuration file you wish from the following locations:
|
||||||
|
- `/etc/openairinterface/nr`
|
||||||
|
- `/etc/openairinterface/lte`
|
||||||
|
- Or any custom configuration file you have created.
|
||||||
|
- Edit the service configuration under `/lib/systemd/system`.
|
||||||
|
|
||||||
|
Main lines to be modified are
|
||||||
|
|
||||||
|
ExecStart=/usr/bin/nr-softmodem -O /etc/openairinterface/nr/gnb.sa.band78.fr1.106PRB.usrpb210.conf -E --continuous-tx -A -2 --device.name oai_usrpdevif
|
||||||
|
|
||||||
|
This line specifies the command and its parameters that the service will execute.
|
||||||
|
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5s
|
||||||
|
|
||||||
|
These directives define the service’s behavior in case of failure, including whether it should restart and the delay before restarting.
|
||||||
|
|
||||||
|
**NOTE**: Additional configuration options are available for further customization.
|
||||||
|
For full customization please check [systemd services documentation](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html)
|
||||||
|
|
||||||
|
After making your changes, apply them by running:
|
||||||
|
|
||||||
|
sudo systemctl daemon-reload && sudo systemctl restart nr-softmodem.service
|
||||||
|
|
||||||
|
For instructions on using a custom configuration file, see the [setup documentation](./gNB_frequency_setup.md).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
To access service logs:
|
||||||
|
|
||||||
|
sudo journalctl -u [service] --since "today"
|
||||||
|
|
||||||
|
|
||||||
|
To follow service logs:
|
||||||
|
|
||||||
|
sudo journalctl -u [service] --follow
|
||||||
|
|
||||||
|
|
||||||
|
## Purge
|
||||||
|
|
||||||
|
To uninstall packages and automatically stop and remove services in systemd, run:
|
||||||
|
|
||||||
|
### Ubuntu/Debian
|
||||||
|
|
||||||
|
dpkg -r liboai-common liboai-usrp oai-lte oai-nr oai-physim
|
||||||
|
|
||||||
|
### Rhel/Fedora
|
||||||
|
|
||||||
|
rpm -e liboai-common liboai-usrp oai-lte oai-nr oai-physim
|
||||||
Reference in New Issue
Block a user