|
|
# Kernel Requirements for RAN
|
|
|
|
|
|
A simple OAI system doesn't require any special kernels and generally
|
|
|
we use exclusively Ubuntu distributions with OAI (mainly because this
|
|
|
is what we install at EURECOM). We currently support 14.04 LTS with a
|
|
|
recent low-latency kernel (e.g. 3.17-low-latency), but some parts of
|
|
|
OAI can be made to work with newer distributions. With ExpressMIMO2,
|
|
|
you should consider installing Ubuntu 14.04 low-latency with a kernel
|
|
|
version above 3.14.10 which provides preemptive scheduling. Below are
|
|
|
precise instructions for the primary installations that we use at EURECOM.
|
|
|
Last update: 3.4.2017.
|
|
|
|
|
|
```Note: Please do not try any other Linux distributions not recommended by us as OAI needs lot of packages and is very sensitive to version numbers, linux kernel, etc without knowing what you are doing. We test only very few Linux distros and do not support anything other than what is mentioned in wiki```
|
|
|
|
|
|
## Ubuntu 14.04.3 LTS/Linux Kernel version 3.19 (Recommended) <- ```Use Ubuntu 14.04 for a first time user```
|
|
|
|
|
|
Install a standard 64-bit 14.04.3 system. Note: the latest version from Feb. 2016, 14.04.04 comes with kernel 4.2 by default which will not work with OAI.
|
|
|
|
|
|
Remove all power management features in the BIOS (sleep states, in particular
|
|
|
C-states) and CPU frequency scaling (Intel SpeedStep). In some cases, you can
|
|
|
also do this with cpufreqtool. Also, disable hyperthreading in BIOS and make sure its turned off in Linux
|
|
|
|
|
|
* check this using this command: `watch grep \"cpu MHz\" /proc/cpuinfo`
|
|
|
* have a look at [this link](http://askubuntu.com/questions/523640/how-i-can-disable-cpu-frequency-scaling-and-set-the-system-to-performance)
|
|
|
for further information.
|
|
|
* you must disable p-state and c-state in linux so you need to add `intel_pstate=disable` to the Linux boot options,
|
|
|
i.e `GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable" ` in `/etc/default/grub`, then perform `update-grub`. You may optionally add the following as well `"processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll"`
|
|
|
* Append "blacklist intel_powerclamp" to the end of /etc/modprobe.d/blacklist.conf, to blacklist the intel_powerclamp" module. If the file does not exist, create one, and add the line into it.
|
|
|
* You also need to disable hyperthreading, CPU frequency control, C-States, P-States and any other power management from BIOS as well.
|
|
|
* Install i7z utility to check the cpu
|
|
|
|
|
|
```shell
|
|
|
sudo apt-get install i7z
|
|
|
sudo i7z
|
|
|
```
|
|
|
Here is the sample output of i7z. The CPU should not change its frequency by more than 1-2 hertz and should not be any C-state other than C0
|
|
|
![i7z_log](/uploads/d7c8c4b9fa4fc10c2c3f45fdfcef8b2a/i7z_log.png)
|
|
|
|
|
|
`Note: If your CPU Frequency is changing or CPU is in C-states, then You need to fix the CPU issue above before proceeding further. You will have real-time issues with eNB/UE/RRH if you do not fix them now!!!`
|
|
|
We recommend that you use Ubuntu Linux for OpenAirInterface. OAI should run also on other distributions, but the build scripts might need to be adopted.
|
|
|
|
|
|
Note: when using the new kernel dead line scheduler, you need to have
|
|
|
root access. Otherwise you get the following errors:
|
|
|
For the master branch of openairinterface5g (Commit d0e2938b) we recommend Ubuntu 14.04 LTS with low-latency kernel 3.19. For the develop branch, you can also use Ubuntu 16.04 with low-latency kernel 3.8.
|
|
|
|
|
|
`[SCHED] eNB tx thread: sched_setattr failed: Invalid argument`
|
|
|
Below are precise instructions for the primary installations that we use at EURECOM.
|
|
|
|
|
|
Dead line scheduler has been added in Linux kernel since version 3.14.10
|
|
|
|
|
|
If you update ubuntu 14.04 with latest Ubuntu 14.04 packages update:
|
|
|
```Note: Please do not try any other Linux distributions not recommended by us as OAI needs lot of packages and is very sensitive to version numbers, linux kernel, etc without knowing what you are doing. We test only very few Linux distros and do not support anything other than what is mentioned in wiki```
|
|
|
|
|
|
```shell
|
|
|
apt-get update
|
|
|
```
|
|
|
## Ubuntu 14.04.3 LTS/Linux Kernel version 3.19 (Recommended) <- ```Use Ubuntu 14.04 for master branch```
|
|
|
|
|
|
you must have a suitable Kernel.
|
|
|
Install a standard 64-bit 14.04.3 system. Note: the latest version from Feb. 2016, 14.04.04 comes with kernel 4.2 by default which will not work with OAI (master branch).
|
|
|
|
|
|
Nevertheless, you may want a specific kernel, such as high preemption
|
|
|
frequency. For example, to install Ubuntu 14.10 kernel 3.17 on top of
|
|
|
Ubuntu 14.04, 64-bit architecture and lowlatency (preemption at 1ms).
|
|
|
### Low-latency kernel installation
|
|
|
To install the low-latency kernel 3.19 on top of Ubuntu 14.04, 64-bit architecture type
|
|
|
|
|
|
**Example kernel tested on our side for openairinterface5g installation is linux-image-3.19.0-61-lowlatency**
|
|
|
```shell
|
... | ... | @@ -63,12 +24,8 @@ sudo apt-get install linux-image-3.19.0-61-lowlatency linux-headers-3.19.0-61-lo |
|
|
|
|
|
**IF you wish to install from linux mainline (not recommended as some versions are unstable)**
|
|
|
```shell
|
|
|
version=3.17
|
|
|
wget -r -e robots=off --accept-regex "(.*lowlatency.*amd64)|(all).deb" http://kernel.ubuntu.com/~kernel-ppa/mainline/v${version}-utopic/
|
|
|
OR
|
|
|
version=3.19
|
|
|
wget -r -e robots=off --accept-regex "(.*lowlatency.*amd64)|(all).deb" http://kernel.ubuntu.com/~kernel-ppa/mainline/v${version}-vivid/
|
|
|
Then
|
|
|
dpkg -i kernel.ubuntu.com/*/*/*/*deb
|
|
|
```
|
|
|
|
... | ... | @@ -85,6 +42,35 @@ export version=<your_kernel_version> |
|
|
ln -s /usr/src/linux-headers-${version}*lowlatency/include/generated/autoconf.h /lib/modules/${version}*lowlatency/build/include/linux
|
|
|
```
|
|
|
|
|
|
## Ubuntu 16.04.2 LTS/Linux Kernel version 4.8 <- ```Use Ubuntu 16.04 for develop branch```
|
|
|
Support for this kernel has been added rather recently. Please report any issues on the mailing list and file bugfixes. The support is only valid for latest develop branch (tag >= v0.5), see https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/README.txt for Release notes.
|
|
|
|
|
|
To install the low-latency kernel on this system, follow the instructions above but replace the kernel version accordingly.
|
|
|
|
|
|
## Power management
|
|
|
Remove all power management features in the BIOS (sleep states, in particular
|
|
|
C-states) and CPU frequency scaling (Intel SpeedStep). In some cases, you can
|
|
|
also do this with cpufreqtool. Also, disable hyperthreading in BIOS and make sure its turned off in Linux
|
|
|
|
|
|
* check this using this command: `watch grep \"cpu MHz\" /proc/cpuinfo`
|
|
|
* have a look at [this link](http://askubuntu.com/questions/523640/how-i-can-disable-cpu-frequency-scaling-and-set-the-system-to-performance)
|
|
|
for further information.
|
|
|
* you must disable p-state and c-state in linux so you need to add `intel_pstate=disable` to the Linux boot options,
|
|
|
i.e `GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable" ` in `/etc/default/grub`, then perform `update-grub`. You may optionally add the following as well `"processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll"`
|
|
|
* Append "blacklist intel_powerclamp" to the end of /etc/modprobe.d/blacklist.conf, to blacklist the intel_powerclamp" module. If the file does not exist, create one, and add the line into it.
|
|
|
* You also need to disable hyperthreading, CPU frequency control, C-States, P-States and any other power management from BIOS as well.
|
|
|
* Install i7z utility to check the cpu
|
|
|
|
|
|
```shell
|
|
|
sudo apt-get install i7z
|
|
|
sudo i7z
|
|
|
```
|
|
|
Here is the sample output of i7z. The CPU should not change its frequency by more than 1-2 hertz and should not be any C-state other than C0
|
|
|
![i7z_log](/uploads/d7c8c4b9fa4fc10c2c3f45fdfcef8b2a/i7z_log.png)
|
|
|
|
|
|
`Note: If your CPU Frequency is changing or CPU is in C-states, then You need to fix the CPU issue above before proceeding further. You will have real-time issues with eNB/UE/RRH if you do not fix them now!!!`
|
|
|
|
|
|
|
|
|
## Disable CPU Frequency scaling
|
|
|
|
|
|
Install cpufrequtils:
|
... | ... | @@ -138,23 +124,15 @@ issue and possible solution is discussed here |
|
|
(https://lists.eurecom.fr/sympa/arc/openair5g-user/2015-10/msg00041.html,
|
|
|
https://gitlab.eurecom.fr/oai/openairinterface5g/issues/32).
|
|
|
|
|
|
## Ubuntu 16.04 LTS/Linux Kernel version 3.19 /4.2.x (Experimental)
|
|
|
We have added support for Ubuntu 16.04 but only for the RAN part of the repository (openairinterface5g). You can try but only if you know OAI and know what you are doing. Please report any issues on the mailing list and file bugfixes. The support is only valid for latest develop branch (tag >= v0.5), see https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/README.txt for Release notes.
|
|
|
|
|
|
You might not be able to use kernel versions > 4.2.x-lowlatency kernel as it UHD might have issues with higher kernel versions. We have tested 4.2.x-lowlatency kernel but not extensively. Please try it only if you know OAI very well. We do not recommend using Ubuntu 16.04 for first time users.
|
|
|
|
|
|
You must carry out all the steps above related to disabling CPU power save mechanisms as mentioned above.
|
|
|
|
|
|
## Kernel Requirements for Cent OS 7 ```EXPERIMENTAL```
|
|
|
1. TBD: Instructions for compiling or installing rpm package for 3.10.RT kernel and associated packages for Real-time Cent OS deployments
|
|
|
|
|
|
# Kernel Requirements for Core Network <- ```Use Ubuntu 14.04 for a first time user```
|
|
|
# Kernel Requirements for Core Network <- ```Use Ubuntu 16.04 for a first time user```
|
|
|
|
|
|
We currently support UBUNTU 14.04 LTS and UBUNTU 15.04 64 bits with a
|
|
|
UBUNTU generic 3.19 kernel (more recent kernels above 3.19 may be tested
|
|
|
too). Low latency kernels may be tested also.
|
|
|
We currently support UBUNTU 16.04 LTS with kernel 4.7, but kernel 4.8 should work as well. Please also see https://gitlab.eurecom.fr/oai/openair-cn/wikis/home for more up-to-date information.
|
|
|
|
|
|
Note: Please do not run OAI eNB and OAI EPC on same machine due to different kernel/package conflicting requirements.
|
|
|
Note: As a first time user, please do not run OAI eNB and OAI EPC on same machine due to different kernel/package conflicting requirements.
|
|
|
|
|
|
**Example kernel for openair-cn for latest develop branch(tag v0.4.0) is 4.7.x. You will need GTP kernel module from Osmocom which is loaded as module inside kernel**
|
|
|
|
... | ... | |