This change updates the build script to use the annotations script from
Ubuntu to generate the kernel configuration. Previously, we used the
pre-generated configuration files available in the mainline crack
builds. However, the team has stopped generating these in favor of the
annotations script.
This change updates the build script to use olddefconfig to use the old
.config file in the directory and use default values for unspecified
configuration options.
Fixes#335
This change reduces the length of the kernel version that is set by the
build process. We find that the most recent version is too long for the
kernel and causes certain kernel detection processes to fail.
We also remove the concept of build flavor or build profile. These
concepts should be reflected in the Debian package name and version
instead of separately in the kernel version.
This change updates the build script to include objtool in the header
package, which is necessary when building some out-of-tree modules (such as
the NVIDIA driver)
This change removes the kernel release from the full kernel version.
This is used by Proxmox to identify differences in the kernel ABI.
However, since this project does not track these changes, we remove the
kernel release number altogether.
This change updates the Debian build rules to build the Linux perf tools
using Python 3 as opposed to Python 2.7 that is currently specified in
the rules. Python 2.7 was already dropped from the build requirements,
but this line was not updated in the process.
This change adds the documentation scripts located in Documentation of
the Linux source root to the header package, as they are necessary for
some modules to build.
This change updates the build code to support in-tree builds. This is
easier to manage for CI builds and reduces the amount of IO operations
necessary for the build process.
This change simplifies the process for packaging the Linux headers.
Instead of copying the Linux tree and building the headers separately,
this change just installs the headers during the install process only.
This change updates the build process to directly build the kernel from
upstream sources, as opposed to requiring the Proxmox zfsonlinux
repository to build the patched sources.
This change renames the package again to pve-kernel. Instead, we now
differentiate the package based on the extra version (which is suffixed
with -edge).
we do not use module signing currently.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 77470417dbd11602d288f7fc473f59d9118a4e61)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This change ignores errors that occur during copying of the kernel
sources. These may appear when another process is working in that
directory concurrently.
since it prevents boot with our current way of building ZFS modules in
case a system is booted with secureboot enabled.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This was long overdue, allows to access the full feature set of our
kernel for some tools using the Linux API directly.
Packaging mostly taken from Debian[0]
[0]: https://salsa.debian.org/kernel-team/linux/-/blob/debian/4.19.118-2/debian/rules.real#L367
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-By: Fabian Grünbichler <f.gruenbichler@proxmox.com>
The PC speaker (beeper) can only be managed by one module, and there
are two which could do so. The very basic INPUT_PCSPKR, and the more
advanced SND_PCSP which allows it to be used as primitive ALSA
soundcard, which for Proxmox Server projects, and all modern
workstations is not much of use.
As they both were aliased to the "pcspkr" module name, and used the
same internal driver name (being a replacment of the other), one
would get the following error message when both are loaded:
"Error: Driver 'pcspkr' is already registered, aborting..."
in the kernel log. This happens as by default both are tried to get
loaded. We do not want the more complex ALSA one, so disable that.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Allows to mount VFAT devices even if the currently running kernel was
removed before any VFAT, or other FS using the default Native
Language Support module was mounted during the current uptime.
This then could break updating the ESP partitions, which are mounted
with VFAT in a postrm triggered step - so at a time where the current
/lib/modules/... was already removed, and so the NLS could not get
loaded.
While there are a lot of different NLS, our kernel config has:
> CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
So compile that module as built-in.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
the current OOT are not compatible with 5.0 and we want to obsolete
them anyway sooner or later
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
no problems had been reported with it, in contrary to igb and e1000e
so use the newer and better supported in tree driver.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
There where just to much issues with the 4.15 in tree drivers for our
users [1]. The updated igb and ixgbe drivers are compatible with
4.15, the e1000e driver needed to be ported to the new internal
kernel timer API, which is pretty straight forward.
[1]: https://forum.proxmox.com/threads/4-15-based-test-kernel-for-pve-5-x-available.42097/page-5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
to also include tools and scripts like objtool, which are now needed for
external module building
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
with libraries that are not GPL-2-only compatible, fix previously typoed
variable, and add build-dep on libiberty-dev for CPLUS demangling.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>