From Fedora Project Wiki

m (small improvements)
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Package repository with Linux vanilla kernels for Fedora =  
= Package repositories with Linux vanilla kernel packages for Fedora =  


The [http://repos.fedorapeople.org/repos/thl/ Fedora kernel vanilla repositories] offer various RPM packages that contain vanilla builds of different Linux kernel version lines. These packages are meant for Fedora users that want to access the latest stable or pre-releases of Linux quickly and comfortably. In addition, one of the repositories is meant for users who want to check if problems they face are specific to the Fedora kernel or present in the upstream kernel as well.
The [http://repos.fedorapeople.org/repos/thl/ Linux vanilla kernel repositories] allow you to quickly, comfortably, and cleanly install the latest Linux kernels on Fedora. They in separate branches offer ready-to-use kernel RPMs build from the newest mainline codebase, the latest ‘stable’ release or the latest version from the kernel series currently used by Fedora. These vanilla kernels are ideal for testing, but also suitable for day-to-day use.  


= How to use these repos =
= How to use these repos =
Line 22: Line 22:
</pre>
</pre>


Run this if you want the a vanilla build of the latest Fedora kernel:
Reboot. That's it – at least often, as sadly additional steps sometimes are necessary:
<pre>
sudo dnf --enablerepo=kernel-vanilla-fedora update
</pre>


Reboot. That's it – at least often, as sometimes additional steps are necessary:
* If UEFI Secure Boot is active on your system (which is the case on most modern systems!), you'll have to disable it in your BIOS Setup or via <code>mokutil --disable-validation</code>. This is required to run kernels from these repositories, as they are not signed with a key typical systems will trust. If you don't known if UEFI Secure Boot is active on your system, run <code>mokutil --sb-state</code> to find out.


* Is UEFI Secure Boot active on your system (<code>mokutil --sb-state</code> will tell you)? In that case you have to disable it in your BIOS Setup or via <code>mokutil --disable-validation</code>. This is required to run kernels from these repositories, as they are not signed with a key that a typical systems trust.
* The new kernel above commands install will normally be used by default. If that's not the case there is likely something fishy with your boot configuration. For example, if you start Fedora using a boot manger from a Linux distribution installed in parallel to Fedora you might have to boot into that distribution and update its boot loader configuration, which will add the newly installed kernel to your boot menu. In Ubuntu you for example do that by running <code>update-grub</code>.  


* The newly installed kernel will normally get started by default. If that's not the case there likely is something fishy with your boot configuration. For example, if you start Fedora using a boot manger from a different Linux install you'll have to boot into the latter and update its boot loader configuration; in Ubuntu you for example do that by running <code>update-grub</code>.  
* Above "dnf update"-command doesn't offer anything to install? Then the kernel package version in the Fedora release you use is higher than the version offered in the kernel-vanilla repository you chose to use. In that case the kernel vanilla repositories are lagging behind (its maintainers sometimes are on vacation, too!), hence it might be the best to stick to the kernel your have.


* The "dnf update"-command doesn't offer anything to install? Then the version of the latest kernel package installed on your machine is higher than the version of the latest kernel packagers offered in the chosen kernel-vanilla repository. Then the maintainers of the latter might are lagging behind (they sometimes are on holiday, too), hence it might be the best to stick to the kernel your have.
You just want to use kernels from the kernel vanilla repositories for a short test? In that case once you finished your tests boot into the stock Fedora kernel again. Then uninstall all packages from these repos with the command <code>sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla' )</code>.  


If you just want to use kernels from the vanilla repositories for a short test make sure you boot into the stock Fedora kernel again once you finished your tests. After that you can uninstall the vanilla kernel packages with a comment like <code>sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla.knurd' )</code> and everything will be as before.
If you would like to permanently use kernels from these repos you might want to run one of these commands, depending on the type of kernels you're interested in:
 
If you like to permanently use kernels from these repos you might want to run one of these commands, depending on the which type of kernels you want:


<pre>
<pre>
Line 44: Line 39:
</pre>
</pre>


That way "dnf" will automatically install the latest packages from those repositories.
That way dnf from then on will automatically install the latest packages from the chosen repository when you update your system the next time.


Note: This TLDR-instructions focused on the two main repositories. There are more for other use cases described below. Also make sure to read the [[Kernel_Vanilla_Repositories-FAQ|FAQ]].
Note: This TLDR-instructions focused on the two main repositories: 'mainline' and 'stable'. There are two more (called 'mainline-wo-mergew' and 'fedora') for use cases described below.  
 
A few common questions about these repositories are answered in the [[Kernel_Vanilla_Repositories-FAQ|FAQ]].


== How to use, the verbose version ==
== How to use, the verbose version ==
Line 67: Line 64:
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| kernel-vanilla-mainline
| kernel-vanilla-mainline
| a pre-release or git-snapshot from Linux main development branch
| a mainline kernel, either built from a proper pre-release (aka "rc kernel") or a git snapshot of Linux's main development branch
| those who want the latest mainline Linux
| those who want to run the latest Linux kernel code
| 4.4, 4.5-rc0-git1, 4.5-rc1, 4.5-rc1-git2
| 4.4-rc7, 4.4-rc7-git2, 4.4, 4.5-rc0-git1, 4.5-rc0-git2, 4.5-rc1, 4.5-rc1-git2
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| kernel-vanilla-mainline-wo-mergew
| kernel-vanilla-mainline-wo-mergew
| similar to the kernel-vanilla-mainline repo, except during the merge window, when it will contain the latest released mainline kernel or a stable kernel based on it
| identical to kernel-vanilla-mainline repo, except during the merge window, as then it will contain the latest proper mainline release or stable kernels derived from it
| those who want the latest mainline kernel, but want to avoid development versions from the merge window (like 4.5-rc0-git1) – that the phase in the development cycle when the bulk of changes get merged for a new kernel version
| those who normally want the latest mainline kernel, but at the same time want to play it a bit safer by avoiding mainline during the merge window. That's the phase at the beginning of a development cycle where the bulk of changes (~85 percent) for the next mainline release are merged; it's usually two weeks long, and ends with the first pre-release of a new mainline kernel, like 4.5-rc1
| 4.4, 4.4.1, 4.5-rc1, 4.5-rc1-git2
| 4.4-rc7, 4.4-rc7-git2, 4.4, 4.4.1, 4.4.2, 4.5-rc1, 4.5-rc1-git2
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| kernel-vanilla-stable
| kernel-vanilla-stable
| the latest non-development version from the mainline or stable kernel series
| the latest stable kernel according to kernel.org; this repo thus won't ship mainline releases like 4.4 and only perform the jump to new major version line once 4.4.1 is released
| those who want the latest Linux stable kernel
| those who want the latest Linux stable kernel
| 4.4, 4.4.1, 4.4.2, 4.4.3
| 4.3.14, 4.3.15, 4.4.1, 4.4.2, 4.4.3
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| kernel-vanilla-fedora
| kernel-vanilla-fedora
| contains a vanilla build of the latest kernel which Fedora currently ships or has in its update queue; most of the time this repository will contain the same kernels as kernel-vanilla-stable, except for times when Fedora hasn't yet jumped to the latest version released from the mainline series.
| contains a vanilla kernel from the stable series the kernel of a particular Fedora kernel is based on; most of the time this repository will contain the same kernels as kernel-vanilla-stable, except when Fedora hasn't yet jumped to the previous to the latest stable series yet
| those who want to check if a vanilla kernel shows the same bug or behaviour as the Fedora kernel
| those who want to check if vanilla kernels shows the same bug or behavior as the latest Fedora kernel
| 4.3.12, 4.3.13, 4.4.3, 4.4.4
| 4.3.18, 4.3.19, 4.4.5, 4.4.6
|}
|}


Decide yourself which one of those you want to use. The following examples assume you want to use the <code>
Decide for yourself which repo branch suits your needs . The following examples all assume you want to use the <code>
kernel-vanilla-mainline</code> repository, hence you need to adjust the commands to use a different repository.
kernel-vanilla-mainline</code> repository, hence adjust the commands accordingly if you want to use another repository.


=== Install a kernel from the repository ===
=== Install a kernel from the repository ===
Line 97: Line 94:
</pre>
</pre>


Alternatively you can permanently enable that repository to make DNF automatically install new kernel packages when updating the system:
Alternatively you can permanently enable that repository to make dnf automatically install new kernel packages when updating the system:


<pre>
<pre>
Line 104: Line 101:
</pre>
</pre>


When you install a kernel from the repository for the first time DNF will ask you if you trust the [https://pgp.mit.edu:11371/pks/lookup?op=get&search=0xD7927A2FCC9DBCAB public key] that is used to verify the signature of the packages from the kernel vanilla repositories. It will look like this:
When you install a kernel from the repository for the first time dnf will ask you if you trust the [https://pgp.mit.edu:11371/pks/lookup?op=get&search=0xD7927A2FCC9DBCAB public key] that is used to verify the signature of the packages from the kernel vanilla repositories. It will look like this:
<pre>
<pre>
Retrieving key from https://repos.fedorapeople.org/repos/thl/RPM-GPG-KEY-knurd-kernel-vanilla
Retrieving key from https://repos.fedorapeople.org/repos/thl/RPM-GPG-KEY-knurd-kernel-vanilla
Line 114: Line 111:
</pre>
</pre>


DNF will proceed once you acknowledge this.  
Dnf will proceed once you acknowledge this.  


= Important notes =
= Important notes =
Line 122: Line 119:
* none of the developers that maintain the Fedora kernel is involved in the maintenance of the Fedora kernel vanilla repositories
* none of the developers that maintain the Fedora kernel is involved in the maintenance of the Fedora kernel vanilla repositories
* most systems work better and run in a more secure manner with the official Fedora kernels
* most systems work better and run in a more secure manner with the official Fedora kernels
* if you don't understand what above commands do then you likely should not use these repositories or its packages
* if you don't understand what above dnf commands do then you likely should not use these repositories or its packages


= More details about the kernel vanilla repos =
= More details about the kernel vanilla repos =


== What kernel versions do the repos currently contain? ==
== What Linux kernel versions do the various branches currently contain? ==


Look at [http://www.leemhuis.info/files/kernel-vanilla/repostatus.txt this file] or execute this scrpt if you want to query the latest status locally:
Look at [http://www.leemhuis.info/files/kernel-vanilla/repostatus.txt the file repostatus.txt] or execute the following script to query the latest status locally:


<pre>
<pre>
releases="29 28 27 26"; branches="mainline mainline-wo-mergew stable fedora"; \
releases="37 36"; \
branches="mainline mainline-wo-mergew stable fedora"; \
for branch in ${branches} ; do for release in ${releases} ; do
for branch in ${branches} ; do for release in ${releases} ; do
   queryresult=$(dnf repoquery --repofrompath=repo,http://repos.fedorapeople.org/repos/thl/kernel-vanilla-${branch}/fedora-${release}/x86_64/ --disablerepo=* --enablerepo=repo --available --latest-limit=1 -q kernel 2>/dev/null)
   queryresult=$(dnf repoquery --repofrompath=repo,http://repos.fedorapeople.org/repos/thl/kernel-vanilla-${branch}/fedora-${release}/x86_64/ --disablerepo=* --enablerepo=repo --available --latest-limit=1 -q kernel 2>/dev/null)
Line 141: Line 139:


Right now the kernel vanilla repositories for Fedora are maintained by [[user:thl|Thorsten Leemhuis (aka "knurd")]] only. Maybe over time people join to help, that's why this text is written as if a team is keeping care of the repositories.  
Right now the kernel vanilla repositories for Fedora are maintained by [[user:thl|Thorsten Leemhuis (aka "knurd")]] only. Maybe over time people join to help, that's why this text is written as if a team is keeping care of the repositories.  
== Which architectures are supported  ==
Aarch64 (aka ARM64) and x86-64 (aka AMD64, IA32E, x64, x86_64).


== How can I uninstall all kernels from the kernel vanilla repositories ==
== How can I uninstall all kernels from the kernel vanilla repositories ==
Line 146: Line 148:
Boot into a stock Fedora kernel and run  
Boot into a stock Fedora kernel and run  
<pre>
<pre>
sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla.knurd' )
sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla' )
</pre>
</pre>
DNF will then show what is about to get uninstalled; review that list carefully and make sure you still have a none vanilla kernel on your system, otherwise you loose the ability to boot your installation. Better abort if something looks fishy.   
Dnf will then show what is about to get uninstalled; review that list carefully and make sure you still have a none vanilla kernel on your system, otherwise you loose the ability to boot your installation. Better abort if something looks fishy.   


== What is the goal of these repositories? Are these kernels as good as those Fedora provides? ==
== What is the goal of these repositories? Are these kernels as good as those Fedora provides? ==
Line 154: Line 156:
These and many other questions are [[Kernel_Vanilla_Repositories-FAQ|answered in the FAQ about the kernel vanilla repositories]].
These and many other questions are [[Kernel_Vanilla_Repositories-FAQ|answered in the FAQ about the kernel vanilla repositories]].


= Known issues and differences =
= ToDo list =


The following sections will list differences to Fedora's proper kernel packages that might be relevant to users. It will also list known problems specific to the packaging of the vanilla kernels.
Spec file:
* maybe enable some of the staging drivers Fedora avoids


== General ==
Repo:
 
* create stable-rc repo
* none known
* automate builds fully to keep repos more up2date
 
= ToDo list =


* enable some of the staging drivers Fedora avoids
MISC:
* automate builds more to keep repos more up2date
* switch to kernel-ark as base for mainline builds
* create stable-testing repo

Latest revision as of 12:04, 26 October 2022

Package repositories with Linux vanilla kernel packages for Fedora

The Linux vanilla kernel repositories allow you to quickly, comfortably, and cleanly install the latest Linux kernels on Fedora. They in separate branches offer ready-to-use kernel RPMs build from the newest mainline codebase, the latest ‘stable’ release or the latest version from the kernel series currently used by Fedora. These vanilla kernels are ideal for testing, but also suitable for day-to-day use.

How to use these repos

How to use, the TLDR version

Download the definitions for the Kernel vanilla repositories:

curl -s https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | sudo tee /etc/yum.repos.d/kernel-vanilla.repo

Run this to install the latest mainline (aka pre-release) kernel:

sudo dnf --enablerepo=kernel-vanilla-mainline update

Run this if you want the latest stable kernel instead:

sudo dnf --enablerepo=kernel-vanilla-stable update

Reboot. That's it – at least often, as sadly additional steps sometimes are necessary:

  • If UEFI Secure Boot is active on your system (which is the case on most modern systems!), you'll have to disable it in your BIOS Setup or via mokutil --disable-validation. This is required to run kernels from these repositories, as they are not signed with a key typical systems will trust. If you don't known if UEFI Secure Boot is active on your system, run mokutil --sb-state to find out.
  • The new kernel above commands install will normally be used by default. If that's not the case there is likely something fishy with your boot configuration. For example, if you start Fedora using a boot manger from a Linux distribution installed in parallel to Fedora you might have to boot into that distribution and update its boot loader configuration, which will add the newly installed kernel to your boot menu. In Ubuntu you for example do that by running update-grub.
  • Above "dnf update"-command doesn't offer anything to install? Then the kernel package version in the Fedora release you use is higher than the version offered in the kernel-vanilla repository you chose to use. In that case the kernel vanilla repositories are lagging behind (its maintainers sometimes are on vacation, too!), hence it might be the best to stick to the kernel your have.

You just want to use kernels from the kernel vanilla repositories for a short test? In that case once you finished your tests boot into the stock Fedora kernel again. Then uninstall all packages from these repos with the command sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla' ).

If you would like to permanently use kernels from these repos you might want to run one of these commands, depending on the type of kernels you're interested in:

sudo dnf config-manager --set-enabled kernel-vanilla-mainline
sudo dnf config-manager --set-enabled kernel-vanilla-stable

That way dnf from then on will automatically install the latest packages from the chosen repository when you update your system the next time.

Note: This TLDR-instructions focused on the two main repositories: 'mainline' and 'stable'. There are two more (called 'mainline-wo-mergew' and 'fedora') for use cases described below.

A few common questions about these repositories are answered in the FAQ.

How to use, the verbose version

Configure the repositories

First download the repository definitions for DNF:

curl -s https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | sudo tee /etc/yum.repos.d/kernel-vanilla.repo

This will install a repo file with following repos:

repository description target users example versions
kernel-vanilla-mainline a mainline kernel, either built from a proper pre-release (aka "rc kernel") or a git snapshot of Linux's main development branch those who want to run the latest Linux kernel code 4.4-rc7, 4.4-rc7-git2, 4.4, 4.5-rc0-git1, 4.5-rc0-git2, 4.5-rc1, 4.5-rc1-git2
kernel-vanilla-mainline-wo-mergew identical to kernel-vanilla-mainline repo, except during the merge window, as then it will contain the latest proper mainline release or stable kernels derived from it those who normally want the latest mainline kernel, but at the same time want to play it a bit safer by avoiding mainline during the merge window. That's the phase at the beginning of a development cycle where the bulk of changes (~85 percent) for the next mainline release are merged; it's usually two weeks long, and ends with the first pre-release of a new mainline kernel, like 4.5-rc1 4.4-rc7, 4.4-rc7-git2, 4.4, 4.4.1, 4.4.2, 4.5-rc1, 4.5-rc1-git2
kernel-vanilla-stable the latest stable kernel according to kernel.org; this repo thus won't ship mainline releases like 4.4 and only perform the jump to new major version line once 4.4.1 is released those who want the latest Linux stable kernel 4.3.14, 4.3.15, 4.4.1, 4.4.2, 4.4.3
kernel-vanilla-fedora contains a vanilla kernel from the stable series the kernel of a particular Fedora kernel is based on; most of the time this repository will contain the same kernels as kernel-vanilla-stable, except when Fedora hasn't yet jumped to the previous to the latest stable series yet those who want to check if vanilla kernels shows the same bug or behavior as the latest Fedora kernel 4.3.18, 4.3.19, 4.4.5, 4.4.6

Decide for yourself which repo branch suits your needs . The following examples all assume you want to use the kernel-vanilla-mainline repository, hence adjust the commands accordingly if you want to use another repository.

Install a kernel from the repository

Run this command to install the latest kernel from the kernel vanilla mainline repo:

sudo dnf --enablerepo=kernel-vanilla-mainline update

Alternatively you can permanently enable that repository to make dnf automatically install new kernel packages when updating the system:

sudo dnf config-manager --set-enabled kernel-vanilla-mainline
sudo dnf update

When you install a kernel from the repository for the first time dnf will ask you if you trust the public key that is used to verify the signature of the packages from the kernel vanilla repositories. It will look like this:

Retrieving key from https://repos.fedorapeople.org/repos/thl/RPM-GPG-KEY-knurd-kernel-vanilla
Importing GPG key 0x863625FA:
 Userid     : "Thorsten Leemhuis (Key for signing vanilla kernel rpms) <fedora@leemhuis.info>"
 Fingerprint: 7C71 B4C9 BF71 7876 635F 3205 4534 BEED 8636 25FA
 From       : https://repos.fedorapeople.org/repos/thl/RPM-GPG-KEY-knurd-kernel-vanilla
Is this ok [y/N]: 

Dnf will proceed once you acknowledge this.

Important notes

Please be aware that

  • none of the developers that maintain the Fedora kernel is involved in the maintenance of the Fedora kernel vanilla repositories
  • most systems work better and run in a more secure manner with the official Fedora kernels
  • if you don't understand what above dnf commands do then you likely should not use these repositories or its packages

More details about the kernel vanilla repos

What Linux kernel versions do the various branches currently contain?

Look at the file repostatus.txt or execute the following script to query the latest status locally:

releases="37 36"; \
branches="mainline mainline-wo-mergew stable fedora"; \
for branch in ${branches} ; do for release in ${releases} ; do
  queryresult=$(dnf repoquery --repofrompath=repo,http://repos.fedorapeople.org/repos/thl/kernel-vanilla-${branch}/fedora-${release}/x86_64/ --disablerepo=* --enablerepo=repo --available --latest-limit=1 -q kernel 2>/dev/null)
  echo "${branch} ${release} ${queryresult:-not_available}" 
done; done | column -t | sed 's!kernel-0:!!; s!.x86_64!!;'

Who is behind this effort?

Right now the kernel vanilla repositories for Fedora are maintained by Thorsten Leemhuis (aka "knurd") only. Maybe over time people join to help, that's why this text is written as if a team is keeping care of the repositories.

Which architectures are supported

Aarch64 (aka ARM64) and x86-64 (aka AMD64, IA32E, x64, x86_64).

How can I uninstall all kernels from the kernel vanilla repositories

Boot into a stock Fedora kernel and run

sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla' )

Dnf will then show what is about to get uninstalled; review that list carefully and make sure you still have a none vanilla kernel on your system, otherwise you loose the ability to boot your installation. Better abort if something looks fishy.

What is the goal of these repositories? Are these kernels as good as those Fedora provides?

These and many other questions are answered in the FAQ about the kernel vanilla repositories.

ToDo list

Spec file:

  • maybe enable some of the staging drivers Fedora avoids

Repo:

  • create stable-rc repo
  • automate builds fully to keep repos more up2date

MISC:

  • switch to kernel-ark as base for mainline builds