Do not build custom build profiles anymore

This change removes the custom build profiles from the CI pipeline.
Previously, this repository offered kernels that were specifically
compiled for a certain microarchitecture.

However, since the effect of such optimizations for the kernel is rather
neglible and due to the increased cost of maintaining several build profiles,
I have decided to stop offering these as pre-builts.
This commit is contained in:
Fabian Mastenbroek 2021-04-19 10:12:03 +02:00
parent 3650d4343a
commit e2cd388c2b
No known key found for this signature in database
GPG key ID: 405FC6F81F0A7B85
2 changed files with 46 additions and 42 deletions

View file

@ -16,12 +16,6 @@ jobs:
- build_profile: 'generic'
build_cc: gcc-10
build_cflags: ''
- build_profile: zen2
build_cc: gcc-10
build_cflags: '-march=znver2'
- build_profile: cascadelake
build_cc: gcc-10
build_cflags: '-march=cascadelake'
steps:
- name: Clean Workspace
run: rm -rf *.deb *.ddeb *.build *.buildinfo *.changes

View file

@ -2,35 +2,28 @@
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
1. Linux 5.11 (Stable)
2. Linux 5.10 (Long-term)
#### 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:
Select from the [Releases](https://github.com/fabianishere/pve-edge-kernel/releases)
page the kernel version you want to install and download the appropriate Debian package.
Then, you can install the package as follows:
```sh
apt install ./pve-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:
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
@ -44,20 +37,25 @@ features-file=/usr/share/apparmor-features/features.stock
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
Make sure you have at least 10GB 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
apt install devscripts debuild equivs
```
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:
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:
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:
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
@ -67,7 +65,7 @@ apt install ./dwarves_1.17-1_amd64.deb
Obtain the source code as follows:
```bash
git clone https://github.com/fabianishere/pve-edge-kernel
cd pve-ede-kernel
cd pve-edge-kernel
```
Then, select the branch of your likings (e.g. `v5.10.x`) and update the submodules:
```bash
@ -77,9 +75,16 @@ git submodule update --init --recursive
```
#### Building
Invoking the following command will build the kernel and its associated packages:
First, create the control file for your kernel:
```bash
debian/rules debian/control
```
Before we build, make sure you have installed the build dependencies:
```bash
sudo mk-build-deps --install debian/control
```
Invoking the following command will build the kernel and its associated packages:
```bash
debuild --jobs=auto -ePVE* -b -uc -us
```
The Makefile provides several environmental variables to control:
@ -90,7 +95,7 @@ The Makefile provides several environmental variables to control:
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`)
2. `PVE_BUILD_PROFILE` (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
@ -105,6 +110,11 @@ Kernel options may be controlled from [debian/config/config.pve](debian/config/c
additional patches, you may add them to the [debian/patches/pve](debian/patches/pve) directory
and update the [series](debian/patches/series.linux) file accordingly.
## 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.
## Contributing
Questions, suggestions and contributions are welcome and appreciated!
You can contribute in various meaningful ways:
* Report a bug through [Github issues](https://github.com/fabianishere/pve-edge-kernel/issues).
* Propose new patches and flavors for the project.
* Contribute improvements to the documentation.
* Provide feedback about how we can improve the project.