From Fedora Project Wiki

m (add internal links in the into)
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Linux kernel vanilla repositories for Fedora Linux =
= Linux kernel vanilla repositories for Fedora Linux =


The kernel vanilla repositories allow you to quickly, comfortably, and cleanly install the latest upstream Linux kernel versions on Fedora Linux. [https://copr.fedorainfracloud.org/groups/g/kernel-vanilla/coprs/ Six 'coprs' offer various ready-to-use kernel packages] built from upstream Linux series like ‘mainline’ and ‘stable’. The provided RPMs are ideal for both quick tests and regular day-to-day use.
The kernel vanilla repositories allow you to quickly, comfortably, and cleanly install the latest upstream Linux kernel versions on Fedora Linux. [https://copr.fedorainfracloud.org/groups/g/kernel-vanilla/coprs/ Seven 'coprs' offer various ready-to-use kernel packages] built from upstream Linux series like ‘mainline’ and ‘stable’. The provided RPMs are ideal for both quick tests and regular day-to-day use.


To simply install the latest kernel version deemed for end users, follow the instructions in the next section '[[#Install the newest Linux version|Install the newest Linux version]]', which provides a quick start; for development kernels and other usages, scroll down a bit more to the '[[#Detailed instructions for installing and uninstalling Linux vanilla kernel packages|detailed instructions for installing and uninstalling Linux vanilla kernel packages]]'. Note, both sections are meant for users of Fedora variants like Workstation, Server, or KDE Plasma Desktop; in case you are using a Fedora Atomic Desktop like Silverblue or Kinoite, head over to the section '[[#Instructions for Fedora Atomic variants|Instructions for Fedora Atomic variants]]', which is dedicated to them.
To simply install the latest kernel version deemed for end users, follow the instructions in the [[#Install the newest Linux version|next section]], which provides a quick start; for development kernels and other usages, scroll down a bit more to '[[#Detailed instructions for installing and uninstalling vanilla kernel packages|Detailed instructions for installing and uninstalling vanilla kernel packages]]'. Note, both sections are meant for users of Fedora variants like Workstation, Server, or KDE Plasma Desktop; in case you are using a Fedora Atomic Desktop like Silverblue or Kinoite, head over to '[[#Instructions for Fedora Atomic variants|Instructions for Fedora Atomic variants]]'.


== Install the newest Linux version ==
== Install the newest Linux version ==
Line 11: Line 11:
<pre>
<pre>
sudo dnf -y copr enable @kernel-vanilla/stable
sudo dnf -y copr enable @kernel-vanilla/stable
sudo dnf upgrade kernel
sudo dnf upgrade 'kernel*'
mokutil --sb-state
mokutil --sb-state
</pre>
</pre>
Line 17: Line 17:
The first two commands enable the ‘stable’ copr, from which DNF then will install the newest proper mainline kernel release (say 6.1) or the latest version from a stable series derived from it (e.g. 6.1.1, 6.1.2, …). The third command 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 through <code>mokutil --disable-validation</code>; that's required, as your firmware will otherwise reject booting kernels installed from these repositories.
The first two commands enable the ‘stable’ copr, from which DNF then will install the newest proper mainline kernel release (say 6.1) or the latest version from a stable series derived from it (e.g. 6.1.1, 6.1.2, …). The third command 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 through <code>mokutil --disable-validation</code>; that's required, as your firmware will otherwise reject booting kernels installed from these repositories.


== Detailed instructions for installing and uninstalling Linux vanilla kernel packages ==
== Detailed instructions for installing and uninstalling vanilla kernel packages ==
 
https://fedoraproject.org/w/index.php?title=Kernel_Vanilla_Repositories&action=edit&section=3
The following two sub-section describe how to chose an kernel vanilla copr for your use case and install a kernel from it; a third sub-section explains how to later remove the copr and kernels installed from.
The following two sub-section describe how to chose an kernel vanilla copr for your use case and install a kernel from it; a third sub-section explains how to later remove the copr and kernels installed from.


=== Choosing the kernel vanilla coprs appropriate for your needs ===
=== Choosing a kernel vanilla copr appropriate for your needs ===


Use the following table to decide which of the six @kernel-vanilla coprs ('fedora', 'stable', 'stable-rc', 'mainline-wo-mergew', 'mainline', or 'next') provides the kernels you want to use. To query the versions currently shipped by each of these coprs, [https://www.leemhuis.info/files/kernel-vanilla/repostatus.txt check out the repostatus file].
Use the following table to decide which of the seven @kernel-vanilla coprs ('fedora', 'fedora-rc', 'stable', 'stable-rc', 'mainline-wo-mergew', 'mainline', or 'next') provides the kernels you want to use. To query the versions currently shipped by each of these coprs, [https://www.leemhuis.info/files/kernel-vanilla/repostatus.txt check out the repostatus file].


{| class="wikitable"
{| class="wikitable"
!style="width: 17%;"|@kernel-vanilla copr
!style="width: 27%;"|copr
!style="width: 30%;"|provides
!style="width: 30%;"|provided kernels
!style="width: 13%;"|example version sequence
!style="width: 13%;"|example version sequence
!style="width: 40%;"|target users
!style="width: 30%;"|target users
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/fedora/ fedora]'''
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/fedora/ @kernel-vanilla/fedora]'''
| The latest kernel version from the stable series the latest Fedora Linux release currently uses or will likely receive within a few days.
| The latest kernel version from the series the relevant Fedora Linux release currently uses or will likely receive within a few days; for stable releases of Fedora Linux this is the latest stable series or its predecessor.
| …, 6.0.18,<br>6.0.19,<br>6.1.5,<br>6.1.6, …
| …, 6.0.18,<br>6.0.19,<br>6.1.5,<br>6.1.6, …
| This is mainly meant for users that want to check if a bug that happens with Fedora's kernel also occurs with the latest upstream version from the same kernel series.
| This allows checking if a bug that happens with Fedora's kernel also occurs with the latest upstream version from the same kernel series – or the one that Fedora Linux release will retrieve within days.
|- style="vertical-align:top;"
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/fedora-rc/ @kernel-vanilla/fedora-rc]'''
| Pre-releases of the next release from the stable series the relevant Fedora Linux release currently uses or will likely receive within a few days; for stable releases of Fedora Linux this is the latest stable series or its predecessor.
| …, 6.0.18,<br>6.0.19-rc1,<br>6.0.19,<br>6.1.5-rc1,<br>6.1.5, …
| Anyone who wants to help testing Linux kernel version from the latest stable series or its predecessor about to be released.
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/stable/ stable]'''
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/stable/ @kernel-vanilla/stable]'''
| The latest kernel version meant for regular end users; usually this is the newest version from the latest stable series, occasionally the latest mainline release.
| The latest kernel version meant for regular end users; usually this is the newest version from the latest stable series, occasionally the latest mainline release.
| …, 6.0.15,<br>6.1,<br>6.1.1,<br>6.1.2, …
| …, 6.0.15,<br>6.1,<br>6.1.1,<br>6.1.2, …
| Anyone who wants the latest and greatest kernel.
| Anyone who wants the latest and greatest kernel deemed for regular users.
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/stable-rc/ stable-rc]'''
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/stable-rc/ @kernel-vanilla/stable-rc]'''
| Pre-releases of the next release from the latest stable series.
| Pre-releases of the next release from the latest stable series.
| …, 6.0.15-rc1,<br>6.0.15,<br>6.1,<br>6.1.1-rc1,<br>6.1.1, …
| …, 6.0.15-rc1,<br>6.0.15,<br>6.1,<br>6.1.1-rc1,<br>6.1.1, …
| Anyone who wants to help testing Linux kernels from the latest stable series about to be released.
| Anyone who wants to help testing Linux kernel version from the latest stable series about to be released.
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/mainline-wo-mergew/ mainline-wo-mergew]'''
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/mainline-wo-mergew/ @kernel-vanilla/mainline-wo-mergew]'''
| The latest mainline kernel, either built from a pre-release (aka "rc kernel") or a Git snapshot of the day – albeit the latter only after -rc1 was released.
| The latest mainline kernel, either built from a pre-release (aka "rc kernel") or a Git snapshot of the day – albeit the latter only after -rc1 was released.
| …, 6.1-rc8-20221211,<br>6.1,<br>6.1.1-rc1,<br>6.1.1,<br>6.2-rc1,<br>6.2-rc1-20221226, …
| …, 6.1-rc8-20221211,<br>6.1,<br>6.1.1-rc1,<br>6.1.1,<br>6.2-rc1,<br>6.2-rc1-20221226, …
| Anyone who wants to run a kernel built from the latest Linux codebase, except when mainline is in a 'merge window' – that is the phase right after a new mainline release (say 6.1) when the bulk of changes (including all riskier ones!) are merged for the next mainline version; this phase ends after two weeks with the publication of the next mainline kernel's first pre-release (e.g. 6.2-rc1).
| Anyone who wants to run a kernel built from the latest Linux codebase, except when mainline is in a 'merge window' – that is the phase right after a new mainline release (say 6.1) when the bulk of changes (including all riskier ones!) are merged for the next mainline version; this phase ends after two weeks with the publication of the next mainline kernel's first pre-release (e.g. 6.2-rc1).
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/mainline/ mainline]'''
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/mainline/ @kernel-vanilla/mainline]'''
| The latest mainline kernel build from a Git snapshot of the day.
| The latest mainline kernel build from a Git snapshot of the day.
| …, 6.1-rc8-20221211,<br>6.1,<br>6.2-rc0-20221213,<br>6.2-rc0-20221214, …
| …, 6.1-rc8-20221211,<br>6.1,<br>6.2-rc0-20221213,<br>6.2-rc0-20221214, …
| Anyone who wants to run kernels built from the latest Linux codebase.
| Anyone who wants to run kernels built from the latest Linux codebase.
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/next/ next]'''
| '''[https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/next/ @kernel-vanilla/next]'''
| Linux-next kernels.
| Linux-next kernels.
| …, 6.1-0.0.next.20221209,<br>6.2-0.0.next.20221212, <br>6.2-0.0.next.20221213, …
| …, 6.1-0.0.next.20221209,<br>6.2-0.0.next.20221212, <br>6.2-0.0.next.20221213, …
Line 62: Line 67:
|}
|}


'''Note''', only the coprs ‘fedora’ and ‘next’ are stand-alone; the other four each include coprs mentioned earlier in the table as a runtime dependency. Users of the ‘stable-rc’ copr thus will receive packages from the ‘stable’ or ‘fedora’ coprs when the latter contain kernels which package managers like DNF will considers newer. That way users of stable-rc copr won't be stuck on a -rc release with known problems fixed between the -rc and the final release; users of the 'mainline' repo will also receive daily snapshots from 'mainline-wo-mergew' repo outside of the merge window. The 'example version sequence' column takes these effects into account.
'''Note''', only the coprs ‘fedora’ and ‘next’ are stand-alone. The other five each include other coprs as a runtime dependency; usually it are those mentioned earlier in the table, except that the ‘fedora-rc’ repo is only a dependency of ‘stable-rc’.
 
Users of the 'mainline' copr thus outside of merge windows will receive daily snapshots from 'mainline-wo-mergew' repo when it contains kernels which package managers like DNF will considers newer. Users of the 'mainline-wo-mergew' copr during the merge windows will likewise revive kernel from the 'stable-rc' or 'stable' repos to receive security fixes. And users of the ‘stable-rc’ copr will receive packages from the ‘stable’, ‘fedora-rc’ or ‘fedora’ coprs; that way users of stable-rc copr won't be stuck on a -rc release with known problems fixed between the -rc and the final release. The 'example version sequence' column takes these effects into account.


Another note relevant for users of Fedora versions in development, e.g rawhide and beta releases: be aware that these coprs will not provide kernel versions older than the one the particular Fedora release uses by default, as doing so could lead to problems. Rawhide for example regularly uses the latest mainline snapshots; that’s why rawhide users that have one of these repos enabled will receive vanilla mainline snapshots as well, even if they chose the ‘stable’ or ‘mainline-wo-mergew’ repos. Users of Fedora pre-releases (e.g. beta versions) might see similar effects, but once the Fedora version gets closer to its release things will start to work as advertised.
Another note relevant for users of Fedora versions in development, e.g rawhide and beta releases: be aware that these coprs will not provide kernel versions older than the one the particular Fedora release uses by default, as doing so could lead to problems. Rawhide for example regularly uses the latest mainline snapshots; that’s why rawhide users that have one of these repos enabled will receive vanilla mainline snapshots as well, even if they chose the ‘stable’ or ‘mainline-wo-mergew’ repos. Users of Fedora pre-releases (e.g. beta versions) might see similar effects, but once the Fedora version gets closer to its release things will start to work as advertised.
Line 68: Line 75:
=== Install a kernel from the chosen copr ===
=== Install a kernel from the chosen copr ===


Enable the kernel vanilla copr you decided to use – for example the one shipping a kernel built from the latest mainline code:
Enable the kernel vanilla copr you decided to use – for example the one shipping a kernel built from the latest 'mainline' code:


<pre>
<pre>
Line 77: Line 84:


<pre>
<pre>
sudo dnf upgrade kernel kernel-devel
sudo dnf upgrade 'kernel*'
</pre>
</pre>


Line 126: Line 133:
== Instructions for Fedora Atomic variants ==
== Instructions for Fedora Atomic variants ==


'' '''Important note''': the following instructions only work as intended for the @kernel-vanilla coprs 'fedora' and 'next', as those are stand alone and do not depend on other coprs. The instructions most of the time will do the right thing on 'mainline-wo-mergew' copr as well; but with the @kernel-vanilla coprs 'stable', 'stable-rc', and 'mainline' they will often install and remain on an obsolete kernel for weeks. That's because the latest versions suitable for users of those coprs in about 50 to 80 percent of the time is distributed through a higher level copr (the note under the table above explains this scheme in more detail). DNF automatically uses the latter, but [https://github.com/coreos/rpm-ostree/issues/4708 to our knowledge does not enable other repository a copr depends on].''
'' '''Important note''': the following instructions only work as intended for the @kernel-vanilla coprs 'fedora' and 'next', as those are stand alone and do not depend on other coprs. The instructions most of the time will do the right thing on 'mainline-wo-mergew' copr as well; but with the other @kernel-vanilla coprs the system will often install and remain on obsolete kernel versions for a few days (in case of 'stable-rc') or quite a few weeks ('stable' and 'mainline' ). That's because the latest versions suitable for users of those coprs in about 60 to 90 percent of the time is distributed through a higher level copr (the note under the table above explains this scheme in more detail). DNF automatically uses the latter, but [https://github.com/coreos/rpm-ostree/issues/4708 to our knowledge does not enable other repository a copr depends on].''


Use the following commands to install the latest kernel from the 'mainline-wo-mergew' copr on Fedora Atomic Desktops like Silverblue or Kinoite:
Use the following commands to install the latest kernel from the 'mainline-wo-mergew' copr on Fedora Atomic Desktops like Silverblue or Kinoite:
Line 149: Line 156:
== Empty or apparently outdated coprs are normal ==
== Empty or apparently outdated 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 their 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 note under above table explains this in more detail.
Please be aware that at least one and up to three out of the seven kernel vanilla coprs will always look empty or outdated when you looks at the copr web interface or 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 note under above table explains this in more detail.


== Linux kernel versions currently offered ==
== Linux kernel versions currently offered ==


A '''[https://www.leemhuis.info/files/kernel-vanilla/repostatus.txt repostatus file shows what the repositories currently provide]'''. Alternatively, execute the following script to query the latest packages locally:
The repositories provide packages with a regular kernel (e.g. kernel, kernel-core, kernel-modules, …) for arm64/aarch64, ppc64le, and x86_64; all coprs that ship 6.12-pre or later also provide realtime/PREEMPT_RT packages (e.g. kernel-rt, kernel-rt-core, kernel-rt-modules, …) for arm64/aarch64 and x86_64.
 
A '''[https://www.leemhuis.info/files/kernel-vanilla/repostatus.txt repostatus file shows the versions the various coprs currently provide]'''. Alternatively, execute the following script to query the latest versions locally:


<pre>
<pre>
dists=(39 40 rawhide)
dists=(39 40 41 rawhide)
dnf clean all > /dev/null
dnf clean all > /dev/null
for repo in fedora stable{,-rc} mainline{-wo-mergew,} next; do
for repo in fedora{,-rc} fedora stable {fedora,stable}-rc mainline{-wo-mergew,} next; do
     [[ ${repo} =~ (fedora|next) ]] && unset repostring
     [[ "${repo}" =~ (fedora|next)$ ]] && unset repostring
     repostring="${repostring} --repofrompath=kvr-${repo},https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/${repo}/fedora-\${distro}-x86_64/"
     repostring="${repostring} --repofrompath=kvr-${repo},https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/${repo}/fedora-\${distro}-x86_64/"
    ( [[ "${repo}" =~ (fedora|fedora-rc) ]] && [[ "${fedorarc_done}" ]] ) && continue
     for distro in ${dists[*]} ; do
     for distro in ${dists[*]} ; do
         queryresult="$(eval dnf repoquery --quiet ${repostring} --disablerepo=* --enablerepo=kvr-* --latest-limit=1 -q kernel --arch x86_64 --qf '%{version}-%{release}')"
         queryresult="$(eval dnf repoquery --quiet ${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}"
     printf '%-20s %-10s %s\n' "${repo}" "${distro}" "${queryresult:-lookup failed}"
     done
     done
    [[ "${repo}" == fedora-rc ]] && fedorarc_done="TRUE"
done
done
</pre>
</pre>
Line 170: Line 181:
== Developers behind the effort and point of contact  ==
== Developers behind the effort and point of contact  ==


The Linux kernel vanilla repositories for Fedora are maintained by [[user:thl|Thorsten Leemhuis (aka "knurd")]] since [https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org/message/NNSLWMKQSGALKX7VGWATKWTGAOU6LZ5I/ late 2012]. The packages they provide are built using a RPM spec file that is nearly identical to the one used to build Fedora’s kernel; the build environment about the same, too. Note though that none of the maintainers of the official Fedora Linux kernel are involved in the maintenance of these repositories.
The Linux kernel vanilla repositories for Fedora are maintained by [[user:thl|Thorsten Leemhuis (aka "knurd")]] since [https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org/message/NNSLWMKQSGALKX7VGWATKWTGAOU6LZ5I/ late 2012]. The packages they provide are built using a RPM spec file that is nearly identical to the one used to build Fedora’s kernel; the build environment is basically identical, too. Note though that none of the maintainers of the official Fedora Linux kernel are involved in the maintenance of these repositories.


For any feedback or questions regarding the kernel vanilla repositories contact [[user:thl|Thorsten Leemhuis (aka "knurd")]].
For any feedback or questions regarding the kernel vanilla repositories contact [[user:thl|Thorsten Leemhuis (aka "knurd")]].

Latest revision as of 11:50, 21 October 2024

Linux kernel vanilla repositories for Fedora Linux

The kernel vanilla repositories allow you to quickly, comfortably, and cleanly install the latest upstream Linux kernel versions on Fedora Linux. Seven 'coprs' offer various ready-to-use kernel packages built from upstream Linux series like ‘mainline’ and ‘stable’. The provided RPMs are ideal for both quick tests and regular day-to-day use.

To simply install the latest kernel version deemed for end users, follow the instructions in the next section, which provides a quick start; for development kernels and other usages, scroll down a bit more to 'Detailed instructions for installing and uninstalling vanilla kernel packages'. Note, both sections are meant for users of Fedora variants like Workstation, Server, or KDE Plasma Desktop; in case you are using a Fedora Atomic Desktop like Silverblue or Kinoite, head over to 'Instructions for Fedora Atomic variants'.

Install the newest Linux version

To install the latest Linux kernel meant for regular end users run the following commands:

sudo dnf -y copr enable @kernel-vanilla/stable
sudo dnf upgrade 'kernel*'
mokutil --sb-state

The first two commands enable the ‘stable’ copr, from which DNF then will install the newest proper mainline kernel release (say 6.1) or the latest version from a stable series derived from it (e.g. 6.1.1, 6.1.2, …). The third command 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 through mokutil --disable-validation; that's required, as your firmware will otherwise reject booting kernels installed from these repositories.

Detailed instructions for installing and uninstalling vanilla kernel packages

https://fedoraproject.org/w/index.php?title=Kernel_Vanilla_Repositories&action=edit&section=3 The following two sub-section describe how to chose an kernel vanilla copr for your use case and install a kernel from it; a third sub-section explains how to later remove the copr and kernels installed from.

Choosing a kernel vanilla copr appropriate for your needs

Use the following table to decide which of the seven @kernel-vanilla coprs ('fedora', 'fedora-rc', 'stable', 'stable-rc', 'mainline-wo-mergew', 'mainline', or 'next') provides the kernels you want to use. To query the versions currently shipped by each of these coprs, check out the repostatus file.

copr provided kernels example version sequence target users
@kernel-vanilla/fedora The latest kernel version from the series the relevant Fedora Linux release currently uses or will likely receive within a few days; for stable releases of Fedora Linux this is the latest stable series or its predecessor. …, 6.0.18,
6.0.19,
6.1.5,
6.1.6, …
This allows checking if a bug that happens with Fedora's kernel also occurs with the latest upstream version from the same kernel series – or the one that Fedora Linux release will retrieve within days.
@kernel-vanilla/fedora-rc Pre-releases of the next release from the stable series the relevant Fedora Linux release currently uses or will likely receive within a few days; for stable releases of Fedora Linux this is the latest stable series or its predecessor. …, 6.0.18,
6.0.19-rc1,
6.0.19,
6.1.5-rc1,
6.1.5, …
Anyone who wants to help testing Linux kernel version from the latest stable series or its predecessor about to be released.
@kernel-vanilla/stable The latest kernel version meant for regular end users; usually this is the newest version from the latest stable series, occasionally the latest mainline release. …, 6.0.15,
6.1,
6.1.1,
6.1.2, …
Anyone who wants the latest and greatest kernel deemed for regular users.
@kernel-vanilla/stable-rc Pre-releases of the next release from the latest stable series. …, 6.0.15-rc1,
6.0.15,
6.1,
6.1.1-rc1,
6.1.1, …
Anyone who wants to help testing Linux kernel version from the latest stable series about to be released.
@kernel-vanilla/mainline-wo-mergew The latest mainline kernel, either built from a pre-release (aka "rc kernel") or a Git snapshot of the day – albeit the latter only after -rc1 was released. …, 6.1-rc8-20221211,
6.1,
6.1.1-rc1,
6.1.1,
6.2-rc1,
6.2-rc1-20221226, …
Anyone who wants to run a kernel built from the latest Linux codebase, except when mainline is in a 'merge window' – that is the phase right after a new mainline release (say 6.1) when the bulk of changes (including all riskier ones!) are merged for the next mainline version; this phase ends after two weeks with the publication of the next mainline kernel's first pre-release (e.g. 6.2-rc1).
@kernel-vanilla/mainline The latest mainline kernel build from a Git snapshot of the day. …, 6.1-rc8-20221211,
6.1,
6.2-rc0-20221213,
6.2-rc0-20221214, …
Anyone who wants to run kernels built from the latest Linux codebase.
@kernel-vanilla/next Linux-next kernels. …, 6.1-0.0.next.20221209,
6.2-0.0.next.20221212,
6.2-0.0.next.20221213, …
Anyone who wants to run linux-next or test if the changes slated for inclusion in the next mainline cycle fix a problem.

Note, only the coprs ‘fedora’ and ‘next’ are stand-alone. The other five each include other coprs as a runtime dependency; usually it are those mentioned earlier in the table, except that the ‘fedora-rc’ repo is only a dependency of ‘stable-rc’.

Users of the 'mainline' copr thus outside of merge windows will receive daily snapshots from 'mainline-wo-mergew' repo when it contains kernels which package managers like DNF will considers newer. Users of the 'mainline-wo-mergew' copr during the merge windows will likewise revive kernel from the 'stable-rc' or 'stable' repos to receive security fixes. And users of the ‘stable-rc’ copr will receive packages from the ‘stable’, ‘fedora-rc’ or ‘fedora’ coprs; that way users of stable-rc copr won't be stuck on a -rc release with known problems fixed between the -rc and the final release. The 'example version sequence' column takes these effects into account.

Another note relevant for users of Fedora versions in development, e.g rawhide and beta releases: be aware that these coprs will not provide kernel versions older than the one the particular Fedora release uses by default, as doing so could lead to problems. Rawhide for example regularly uses the latest mainline snapshots; that’s why rawhide users that have one of these repos enabled will receive vanilla mainline snapshots as well, even if they chose the ‘stable’ or ‘mainline-wo-mergew’ repos. Users of Fedora pre-releases (e.g. beta versions) might see similar effects, but once the Fedora version gets closer to its release things will start to work as advertised.

Install a kernel from the chosen copr

Enable the kernel vanilla copr you decided 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

If 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 reject booting any kernels from these repositories: it's technically impossible to sign the copr kernels with a key typical x86-64 systems will trust.

Once you booted your vanilla kernel you have two options:

(1) In case you want to use the chosen copr regularly, be aware that for frequently updated kernel vanilla coprs like 'mainline' there is quite a risk that DNF misses the latest kernels and installs obsolete ones. To prevent that, tell dnf to check the kernel vanilla repositories more often than usual with a command like this one:

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=3h!g;' /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:group_kernel-vanilla:*.repo

(2) In case you installed a vanilla kernel just for a quick test, consider removing the just configured copr immediately, as explained in the next section. It also explains how to later uninstall packages installed from the kernel vanilla coprs, which is needed to ensure you retrieve newly released kernels from Fedora again.

Remove the kernel vanilla repositories and 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 downgrade the kernel and a few related packages to the latest versions Fedora provides:

sudo dnf --refresh distrosync bpftool 'kernel*' 'libperf*' perf python3-perf rtla rv

It's not strictly required, but highly recommended to boot into the latest official Fedora kernel now. To do so, restart and choose the top-most kernel 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' 'kernel*core*' 'kernel*modules*' 'kernel*devel*' | 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 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.

Instructions for Fedora Atomic variants

Important note: the following instructions only work as intended for the @kernel-vanilla coprs 'fedora' and 'next', as those are stand alone and do not depend on other coprs. The instructions most of the time will do the right thing on 'mainline-wo-mergew' copr as well; but with the other @kernel-vanilla coprs the system will often install and remain on obsolete kernel versions for a few days (in case of 'stable-rc') or quite a few weeks ('stable' and 'mainline' ). That's because the latest versions suitable for users of those coprs in about 60 to 90 percent of the time is distributed through a higher level copr (the note under the table above explains this scheme in more detail). DNF automatically uses the latter, but to our knowledge does not enable other repository a copr depends on.

Use the following commands to install the latest kernel from the 'mainline-wo-mergew' copr on Fedora Atomic Desktops like Silverblue or Kinoite:

copr="mainline-wo-mergew"
curl -s "https://copr.fedorainfracloud.org/coprs/g/kernel-vanilla/${copr}/repo/fedora-rawhide/group_kernel-vanilla-${copr}-fedora-rawhide.repo" | sudo tee "/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:group_kernel-vanilla:${copr}.repo"
sudo rpm-ostree override replace --experimental --from repo="copr:copr.fedorainfracloud.org:group_kernel-vanilla:${copr}" kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra

To later remove the kernel vanilla packages and the repository configuration, run the following commands:

sudo rpm-ostree override reset kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra
sudo rm "/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:group_kernel-vanilla"*

How vanilla kernels compare to Fedora’s

Most of the time kernels from the kernel vanilla coprs 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. Those differences rarely matter much.

Empty or apparently outdated coprs are normal

Please be aware that at least one and up to three out of the seven kernel vanilla coprs will always look empty or outdated when you looks at the copr web interface or 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 note under above table explains this in more detail.

Linux kernel versions currently offered

The repositories provide packages with a regular kernel (e.g. kernel, kernel-core, kernel-modules, …) for arm64/aarch64, ppc64le, and x86_64; all coprs that ship 6.12-pre or later also provide realtime/PREEMPT_RT packages (e.g. kernel-rt, kernel-rt-core, kernel-rt-modules, …) for arm64/aarch64 and x86_64.

A repostatus file shows the versions the various coprs currently provide. Alternatively, execute the following script to query the latest versions locally:

dists=(39 40 41 rawhide)
dnf clean all > /dev/null
for repo in fedora{,-rc} fedora stable {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/"
    ( [[ "${repo}" =~ (fedora|fedora-rc) ]] && [[ "${fedorarc_done}" ]] ) && continue
    for distro in ${dists[*]} ; do
        queryresult="$(eval dnf repoquery --quiet ${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
    [[ "${repo}" == fedora-rc ]] && fedorarc_done="TRUE"
done

Developers behind the effort and point of contact

The Linux kernel vanilla repositories for Fedora are maintained by Thorsten Leemhuis (aka "knurd") since late 2012. The packages they provide are built using a RPM spec file that is nearly identical to the one used to build Fedora’s kernel; the build environment is basically identical, too. Note though that none of the maintainers of the official Fedora Linux kernel are 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.