Install from Sources

Alexander K edited this page Apr 5, 2018 · 3 revisions

Instructions below are describes compilation from sources on Debian Stretch (Debian 9), which is the only officially supported GNU/Linux distribution for the moment. But with a bit of changes the instructions can be applied to other distributions.

Build requirements

  • GNU Make 3.82 or higher;
  • GCC and G++ compilers of versions 4.8 or higher;
  • Boost library of version 1.53 or higher.

Compiling the patched Kernel

Install build dependencies

The easiest way to install all the build dependencies for the Linux kernel is to use information from sources repository. Add the next line to /etc/apt/sources.list:

deb-src http://ftp.debian.org/debian stretch main

Then all the build dependencies can be simply installed with single command:

apt-get update
apt-get build-dep linux

Obtain kernel sources

To build release-0.5 (stable), get Linux kernel 4.9.35 with Tempesta-Tech patches:

git clone https://github.com/tempesta-tech/linux-4.9.35-tfw

Or apply the patch set to 4.9.35 kernel sources.

For the build of 0.6 (current), get Linux kernel 4.14.32 with Tempesta-Tech patches:

git clone https://github.com/tempesta-tech/linux-4.14.32-tfw

Or apply the patch set to 4.14.32 kernel sources.

Configure Kernel

Before build Linux Kernel must be configured. Recommended way is to reuse current kernel's configuration with TempestaFw-specific changes. The next options must be switched on:

  • CONFIG_SLUB
  • CONFIG_SECURITY
  • CONFIG_SECURITY_NETWORK
  • CONFIG_SECURITY_TEMPESTA
  • CONFIG_DEFAULT_SECURITY_TEMPESTA
  • CONFIG_DEFAULT_SECURITY="tempesta"

Ensure that the kernel tree is absolutely clean:

cd <path-to-tempesta-patched-kernel>
make clean && make mrproper

Copy current kernel's configuration:

cp /boot/config-$(uname -r) .config

Update the configuration to suit the sources, this will interactively ask about the differences:

make oldconfig

Use ncurses or gui tool to configure the kernel and switch on options required for TempestaFW. Run any of the next commands:

make menuconfig
make nconfig
make xconfig
make gconfig

Compile and install Kernel

The recommended way is to compile the kernel and prepare packages to be installed via package manager:

make deb-pkg -j$(nproc)
dpkg -i ../linux-headers-* ../linux-image-*

Traditional way is to compile the kernel and manually install modules and kernel image:

make -j$(nproc)
make modules_install
make install

Compiling TempestaFW

Install build dependencies

Install build dependencies by calling the next command:

apt-get install build-essential libboost-dev libboost-program-options-dev

Obtain sources

Get TempestaFW from Github repository:

git clone https://github.com/tempesta-tech/tempesta
cd tempesta

Compile TempestaFW

TempestaFW is out-of-tree kernel module. It is recommended to reboot into Tempesta's patched kernel and install kernel headers before building the module. Simply run make to prepare the module:

make

It is also possible to build the module against target kernel sources directory:

make -C <path-to-kernel> M=<path to module>
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.