Christian Poessinger 4ec212ad33 Revert "Kernel: T2955: Update Linux Kernel to v4.19.149"
This reverts commit b481a3ee4c947d78cb1488b542c31c23cd473b7f.

Perf utils do not build anymore:

util/evsel.c: In function ‘perf_evsel__exit’:
util/util.h:25:28: error: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
 #define zfree(ptr) ({ free(*ptr); *ptr = NULL; })
util/evsel.c:1293:2: note: in expansion of macro ‘zfree’
  zfree(&evsel->pmu_name);
  ^~~~~
/usr/include/stdlib.h:563:25: note: expected ‘void *’ but argument is of type ‘const char *’
 extern void free (void *__ptr) __THROW;
                   ~~~~~~^~~~~
  ASCIIDOC perf-probe.xml
2020-10-03 10:49:34 +02:00
..

About

VyOS runs on a custom Linux Kernel (which is 4.19) at the time of this writing. This repository holds a Jenkins Pipeline which is used to build the Custom Kernel (x86_64/amd64 at the moment) and all required out-of tree modules.

VyOS does not utilize the build in Intel Kernel drivers for its NICs as those Kernels sometimes lack features e.g. configurable receive-side-scaling queues. On the other hand we ship additional not mainlined features as WireGuard VPN.

Kernel

The Kernel is build from the vanilla repositories hosted at https://git.kernel.org. VyOS requires two additional patches to work which are stored in the patches/kernel folder.

Config

The Kernel configuration used is x86_64_vyos_defconfig which will be copied on demand during the Pipeline run into the arch/x86/configsi direcotry of the Kernel source tree.

Other configurations can be added in the future easily.

Modules

VyOS utilizes several Out-of-Tree modules (e.g. WireGuard, Accel-PPP and Intel network interface card drivers). Module source code is retrieved from the upstream repository and - when needed - patched so it can be build using this pipeline.

In the past VyOS maintainers had a fork of the Linux Kernel, WireGuard and Accel-PPP. This is fine but increases maintenance effort. By utilizing vanilla repositories upgrading to new versions is very easy - only the branch/commit/tag used when cloning the repository via Jenkinsfile needs to be adjusted.