89c19ff550
This change prepares the master branch for Linux 5.11, which includes watching for new stable releases.
104 lines
4.4 KiB
Markdown
104 lines
4.4 KiB
Markdown
# Proxmox Edge kernels
|
|
Custom Linux kernels for Promox VE 6.
|
|
|
|
#### Versions
|
|
1. Linux 5.6 (EOL)
|
|
2. Linux 5.7 (EOL)
|
|
3. Linux 5.8 (EOL)
|
|
4. Linux 5.9 (EOL)
|
|
5. Linux 5.10
|
|
6. Linux 5.11
|
|
|
|
#### Flavors
|
|
1. Proxmox
|
|
2. [Navi Reset](https://github.com/fabianishere/pve-edge-kernel/issues/5)
|
|
|
|
#### Microarchitectures
|
|
1. Generic
|
|
2. Zen 2
|
|
3. Cascade Lake
|
|
|
|
## Installation
|
|
Select from the [Releases](https://github.com/fabianishere/pve-edge-kernel/releases) page the kernel version
|
|
you want to install and download the appropriate deb package. Then, you can install the package as follows:
|
|
|
|
```sh
|
|
apt install ./pve-edge-kernel-VERSION-MARCH_VERSION_amd64.deb
|
|
```
|
|
|
|
## AppArmor issues
|
|
When using these kernels, Proxmox's AppArmor profiles may fail to load since it uses an older AppArmor feature set
|
|
which is not supported by these kernels anymore. This issue also appears when launching LXC containers.
|
|
To fix this, tell AppArmor to use the stock features file as opposed to Proxmox's features file, which is done
|
|
by updating `/etc/apparmor/parser.conf` as follows:
|
|
|
|
```
|
|
## Pin feature set (avoid regressions when policy is lagging behind
|
|
## the kernel)
|
|
# lxc-pve diverts to old feature file that is incompatible with kernel
|
|
# features-file=/usr/share/apparmor-features/features
|
|
features-file=/usr/share/apparmor-features/features.stock
|
|
```
|
|
|
|
## Building manually
|
|
You may also choose to manually build one of these kernels yourself.
|
|
|
|
#### Prerequisites
|
|
Make sure you have at least 30GB of free space available and have the following
|
|
packages installed:
|
|
|
|
```bash
|
|
apt install devscripts asciidoc-base automake bc bison cpio dh-python flex git kmod libdw-dev libelf-dev libiberty-dev libnuma-dev libpve-common-perl libslang2-dev libssl-dev libtool lintian lz4 perl-modules python2-minimal rsync sed sphinx-common tar xmlto zlib1g-dev dwarves
|
|
```
|
|
In case you are building a kernel version >= 5.8, make sure you have installed at least [dwarves >= 1.16.0](https://packages.debian.org/bullseye/dwarves).
|
|
Unfortunately, this version is currently only available in the Debian Testing and Debian Unstable repositories. To work around this issue, we describe two options:
|
|
|
|
1. You may add the Debian Testing repository to your APT sources as described [here](https://serverfault.com/a/382101) and install the newer `dwarves` package as follows:
|
|
```shell
|
|
apt install -t testing dwarves
|
|
```
|
|
2. Alternatively, you may [download](https://packages.debian.org/bullseye/dwarves) the newer `dwarves` (>= 1.16) package from the Debian website and install the package manually, for example:
|
|
```shell
|
|
wget http://ftp.us.debian.org/debian/pool/main/d/dwarves-dfsg/dwarves_1.17-1_amd64.deb
|
|
apt install ./dwarves_1.17-1_amd64.deb
|
|
```
|
|
|
|
#### Obtaining the source
|
|
```bash
|
|
git clone https://github.com/fabianishere/pve-edge-kernel
|
|
cd pve-ede-kernel
|
|
git submodule update --init --depth=1 --recursive submodules/ubuntu-mainline
|
|
git submodule update --init --recursive
|
|
```
|
|
Afterwards, select the branch of your likings (e.g. `v5.8.x`).
|
|
|
|
#### Building
|
|
Invoking the following command will build the kernel and its associated packages:
|
|
```bash
|
|
make
|
|
```
|
|
The Makefile provides several environmental variables to control:
|
|
|
|
1. `PVE_BUILD_FLAVOR`
|
|
The name of the kernel flavor which represents a selection of kernel
|
|
functionality (e.g. [hardened](https://github.com/anthraxx/linux-hardened) or [zen](https://github.com/zen-kernel/zen-kernel)).
|
|
This name is part of the kernel version and package name, which means that you
|
|
can have multiple flavors of the same kernel installed alongside each other.
|
|
Note that the name itself does not control the selection of kernel functionality.
|
|
2. `PVE_BUILD_TYPE` (default `generic`)
|
|
The name of the kernel build type which represents the compilation options of
|
|
the kernel (e.g. optimization level or micro architecture).
|
|
This name is appended as suffix to the Debian package version in case it is not
|
|
the default value.
|
|
3. `PVE_BUILD_CC`
|
|
The compiler to use for the kernel build.
|
|
4. `PVE_BUILD_CFLAGS`
|
|
The compilation options to use for the kernel build. Use this variable to specify
|
|
the optimization level or micro architecture to build for.
|
|
|
|
Kernel options may be controlled from the [debian/rules](debian/rules) file. To build with
|
|
additional patches, you may add them to the [patches/pve](patches/pve) directory.
|
|
|
|
## Questions
|
|
If you have any questions or want to see additional versions, flavors or micro architectures being built, feel
|
|
free to open an issue on Github.
|