Line 1: | Line 1: | ||
= Linux kernel vanilla repositories for Fedora Linux = | = Linux kernel vanilla repositories for Fedora Linux = | ||
The [https://copr.fedorainfracloud.org/groups/g/kernel-vanilla/coprs/ kernel vanilla copr repositories] allow you to quickly, comfortably, and cleanly install the latest upstream Linux kernels on Fedora Linux. | The [https://copr.fedorainfracloud.org/groups/g/kernel-vanilla/coprs/ kernel vanilla copr repositories] allow you to quickly, comfortably, and cleanly install the latest upstream Linux kernels on Fedora Linux. They provide ready-to-use kernels from upstream kernel series like ‘mainline’ and ‘stable’ in a way that is ideal for both quick tests and regular day-to-day use. | ||
To install a newly released mainline kernel version from these repositories, follow the instructions in the first section below. For all other cases, head over to the second section to choose which | To install a newly released mainline kernel version from these repositories, follow the instructions in the first section below. For all other cases, head over to the second section to choose which of the six coprs you want to use; then enable it and update your system as explained in the third section. The fourth section below explains how to remove the kernel vanilla repositories and everything installed from them. | ||
== Install a recently released mainline version == | == Install a recently released mainline version == |
Revision as of 04:15, 13 November 2023
Linux kernel vanilla repositories for Fedora Linux
The kernel vanilla copr repositories allow you to quickly, comfortably, and cleanly install the latest upstream Linux kernels on Fedora Linux. They provide ready-to-use kernels from upstream kernel series like ‘mainline’ and ‘stable’ in a way that is ideal for both quick tests and regular day-to-day use.
To install a newly released mainline kernel version from these repositories, follow the instructions in the first section below. For all other cases, head over to the second section to choose which of the six coprs you want to use; then enable it and update your system as explained in the third section. The fourth section below explains how to remove the kernel vanilla repositories and everything installed from them.
Install a recently released mainline version
You can install a new mainline release (e.g. 6.6, 6.7, …) within two weeks of its publication using the following commands:
sudo dnf -y copr enable @kernel-vanilla/mainline-wo-mergew sudo dnf upgrade 'kernel*' dnf copr list | grep 'group_kernel-vanilla' | xargs -r sudo dnf -y copr remove sudo dnf -y copr enable @kernel-vanilla/stable mokutil --sb-state
The first two commands enable the ‘mainline-wo-mergew’ copr and use it to install the latest mainline release (say 6.6) or stable version (e.g. 6.6.1) derived from it. The copr is then removed and the ‘stable’ copr enabled; this ensures your system will receive newer stable kernels, as those when available are the better choice. The last command executed will tell you if UEFI Secure Boot is active on your system; if that's the case you have to either disable it in your system's BIOS Setup or through a process initiated with mokutil --disable-validation
, as your firmware will otherwise reject booting kernels installed from these repositories.
The following two sections explain all of that in more detail.
Note, these commands will only install a new mainline release within two weeks of its publication, as the 'mainline-wo-mergew' copr afterwards will start shipping pre-releases or snapshots of the next mainline version. Users at that point want to directly enable the 'stable' copr, which by then usually ships versions derived from the latest mainline release: those stable kernel versions contain additional fixes and thus are the better choice.
Linux kernels offered in the six kernel vanilla coprs
@kernel-vanilla copr | description | target users | example version sequence |
---|---|---|---|
fedora | Vanilla kernels from the stable series the latest Fedora Linux currently uses. | Anyone wanting to use the latest release from the kernel series Fedora Linux currently uses – for example to check if a bug that happens with Fedora's kernel occurs with the latest upstream version from the same kernel series. | …, 6.0.18, 6.0.19, 6.1.5, 6.1.6, … |
stable | The latest stable kernel according to the frontpage of kernel.org; this repo thus won't ship mainline releases like 6.1 and only jumps to a newer series once its first stable release (e.g. 6.1.1) is published. | Anyone who wants the latest Linux stable kernel. | …, 6.0.14, 6.0.15, 6.1.1, 6.1.2, 6.1.3, … |
stable-rc | Pre-releases of the next stable release. | Anyone who wants to help testing future Linux stable kernels. | …, 6.0.14, 6.0.15-rc1, 6.0.15, 6.1.1-rc1, 6.1.1, … |
mainline-wo-mergew | The latest mainline kernel, either built from a proper release, a pre-release (aka "rc kernel"), or a git snapshot – albeit the latter only after -rc1 was released. | Anyone who normally wants the latest mainline kernel, but wants to play it a bit safer by avoiding mainline during its 'merge windows' – that's the phase at the beginning of each development cycle where the bulk of changes (~85 percent) including all riskier ones are merged for the next mainline release, before its first pre-release (e.g. "6.x-rc1") is published. | …, 6.1-rc8-20221211, 6.1, 6.1.1-rc1, 6.1.1, 6.2-rc1, 6.2-rc1-20221226, 6.2-rc1-20221227, … |
mainline | Mainline kernels, either built from a proper release, a pre-release (aka "rc kernel"), or a git snapshot. | Anyone who wants to run a kernel built from the latest Linux codebase. | …, 6.1-rc8-20221211, 6.1, 6.2-rc0-20221213, 6.2-rc0-20221214, 6.2-rc0-20221215, … |
next | Linux-next kernels. | Anyone who wants to run linux-next or test if the changes slated for inclusion in the next mainline cycle fix a problem. | …, 6.1-0.0.next.20221210, 6.1-0.0.next.20221211,6.1-0.0.next.20221213, … |
Note: only the next copr is stand-alone; all the others include coprs mentioned higher in the list as a runtime dependency. Users of the ‘stable-rc’ copr thus will receive packages from the ‘stable’ or ‘fedora’ coprs when the latter contain kernel packages which dnf considers newer. That way users of stable-rc copr won't be stuck on a -rc release with known problems that were fixed in the final release derived from the particular -rc release.
|
How to install a kernel from the vanilla repositories
First enable the kernel vanilla copr you want to use – for example the one shipping a kernel built from the latest mainline code:
sudo dnf -y copr enable @kernel-vanilla/mainline
Now update your system to install the latest package from the copr:
sudo dnf upgrade 'kernel*'
If you’re on a x86-64 (aka AMD64) system execute the following command as well:
mokutil --sb-state
It it tells you ‘SecureBoot enabled’ you will have to turn it off either in your BIOS Setup or through a process initiated with sudo mokutil --disable-validation
. That sadly is needed, as your system otherwise will not boot any kernels from these repositories: it's technically impossible for copr to sign the kernels with a key typical x86-64 systems trust.
Once you booted your vanilla kernel you have two options:
- In case you want to use the chosen copr regularly, consider advising dnf to check the packages repositories more often than usual to retrieve new kernels faster. You can do this by running the following commands:
sudo sed -i 's!baseurl=https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/\(mainline\|stable-rc\|next\).*!&\nmetadata_expire=1h!g; s!baseurl=https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/\(stable\|fedora\)/.*!&\nmetadata_expire=4h!g;' /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:group_kernel-vanilla:*.repo
- In case you installed the vanilla kernel just for a quick test, consider removing the just configured copr immediately as explained in the next section; once you finish your tests you furthermore want to uninstall the vanilla kernel to retrieve newly released kernel packages from Fedora again.
How to remove the kernel vanilla repositories and uninstall kernels installed from them
Disable any kernel vanilla copr you enabled:
dnf copr list | grep 'group_kernel-vanilla' | xargs -r sudo dnf copr remove
Now ensure you have the latest official kernel installed Fedora offers
sudo dnf --refresh distrosync kernel
At this step it is highly recommended to boot into the latest official Fedora kernel; to do so, reboot and choose the top-most one from the boot menu that does not have 'vanilla' in the name.
Now remove all kernels installed from the kernel vanilla coprs:
rpm -qa 'kernel*' | grep '.vanilla' | xargs -r sudo dnf remove
If you disabled UEFI Secure Boot, you might want to turn it on again using the path you took to disable it, e.g. either through your BIOS Setup or a a process initiated with sudo mokutil --enable-validation
.
From now on your system will behave like one that never had these repositories enabled or kernels installed from it.
How vanilla kernels compare to Fedora’s
Most of the time these kernels will work roundabout as well and secure as Fedora’s. Sometimes though the kernels from these repositories will work better, as they contain drivers or security fixes that haven’t reached the kernel used by Fedora Linux yet; other times it's the other way around, as Fedora sometimes includes fixes that upstream hasn't picked up yet. But those differences rarely matter much.
Apparently coprs are normal
Please be aware that at least one and up to three out of the six kernel vanilla coprs will always look empty or outdated when you check copr’s web interface or look straight at the package repositories. That is totally normal, as it will look like that when the most recent build suitable for users of that copr is found in one of the other copr included as a runtime dependency. The footnote in above table explains this in more detail.
Linux kernel versions currently offered
A repostatus file shows what the repositories currently provide. Alternatively, execute the following script to query the latest packages locally:
dists=(37 38 39 rawhide) dnf clean all > /dev/null for repo in fedora stable{,-rc} mainline{-wo-mergew,} next; do [[ ${repo} =~ (fedora|next) ]] && unset repostring repostring="${repostring} --repofrompath=kvr-${repo},https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/${repo}/fedora-\${distro}-x86_64/" for distro in ${dists[*]} ; do queryresult="$(eval dnf repoquery ${repostring} --disablerepo=* --enablerepo=kvr-* --latest-limit=1 -q kernel --arch x86_64 --qf '%{version}-%{release}')" printf '%-20s %-10s %s\n' "${repo}" "${distro}" "${queryresult:-lookup failed}" done done
Developers behind the effort and point of contact
The Linux kernel vanilla copr repositories for Fedora are maintained by Thorsten Leemhuis (aka "knurd"); they are build using a RPM spec file that is nearly identical to the one used to build Fedora’s kernel. Note though, maintainers of the latter are not involved in the maintenance of these repositories.
For any feedback or questions regarding the kernel vanilla repositories contact Thorsten Leemhuis (aka "knurd").
What’s the goal of these repositories? And are these kernels as good as Fedora’s?
These and many other questions are answered in the FAQ about the Linux kernel vanilla repositories for Fedora Linux.