From Fedora Project Wiki

mNo edit summary
(34 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Package repository with Linux vanilla kernels for Fedora =  
= Package repository with Linux vanilla kernel packages for Fedora =  


This page contains information about a [http://repos.fedorapeople.org/repos/thl/ set of repositories] which contain RPM packages with Linux vanilla kernels built for Fedora. 'Vanilla' in this scope means 'unmodified', hence the sources used to compile those kernels come straight from kernel.org and do not contain any of those enhancements which are a part of the official Fedora kernels.
The [http://repos.fedorapeople.org/repos/thl/ Linux kernel vanilla repositories for Fedora] offers RPM packages containing vanilla builds of different Linux kernel version lines. These packages are meant for Fedora users that want to access the latest stable versions or pre-releases of the Linux kernel quickly and comfortably. There is also one repositories 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.


= How to use these repos =
= How to use these repos =


== The quick (aka TLDR) description ==
== How to use, the TLDR version ==


Download the repo definitions:  
Download the definitions for the Kernel vanilla repositories:  
<pre>
<pre>
curl -s https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | sudo tee /etc/yum.repos.d/kernel-vanilla-mainline.repo
curl -s https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | sudo tee /etc/yum.repos.d/kernel-vanilla.repo
</pre>
</pre>


Run this to get the latest development kernel:
Run this to install the latest mainline (aka pre-release) kernel:
<pre>
<pre>
sudo dnf --enablerepo=kernel-vanilla-mainline update
sudo dnf --enablerepo=kernel-vanilla-mainline update
</pre>
</pre>


Alternatively run this if you want to get the latest stable kernel:
Run this if you want the latest stable kernel instead:
<pre>
<pre>
sudo dnf --enablerepo=kernel-vanilla-stable update
sudo dnf --enablerepo=kernel-vanilla-stable update
</pre>
</pre>


Reboot. That's it – at least most of the time, as sometimes it's not that easy:
Reboot. That's it – at least often, as sometimes additional steps are necessary:


* You have to disable UEFI Secure Boot in your BIOS Setup to run kernels from these repos, as they are not signed with a key that is considered as trusted.
* Is UEFI Secure Boot active on your system? If you're usure run <code>mokutil --sb-state</code> to check. If it is, 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 that a typical systems trust.


* The "dnf update"-commands will not install anything if 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 repo.  
* The newly installed kernel will normally get started 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 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>.  


* If a newly installed kernel is not started by default then there is something fishy in your boot configuration. If you for example start Fedora using a boot manger from a different distribution you have to boot into it and update its boot loader configuration (in Ubuntu for example you need to run update-grub).
* 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. In that case the kernel vanilla repositories are lagging behind (its maintainers sometimes are on holiday, too), hence it might be the best to stick to the kernel your have.
 
If you just want to use kernels from the kernel 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 which type of kernels you want:


Optionally run
<pre>
<pre>
sudo dnf config-manager --set-enabled kernel-vanilla-mainline
sudo dnf config-manager --set-enabled kernel-vanilla-mainline
sudo dnf config-manager --set-enabled kernel-vanilla-stable
</pre>
</pre>


or
That way "dnf" will automatically install the latest packages from those repositories.


<pre>
Note: This TLDR-instructions focused on the two main repositories: mainline and stable. There are two more (called mainline-wo-mergew and Fedora) for other use cases described below.
sudo dnf config-manager --set-enabled kernel-vanilla-stable
</pre>


if you want to enable one of those two repos permanently. They are the two main repos this page is about. For details about those and the other available repositories see the verbose description:
A few common questions about these repos are answered in the [[Kernel_Vanilla_Repositories-FAQ|FAQ]].


== The verbose version ==
== How to use, the verbose version ==


=== Repo configuration ===
=== Configure the repositories ===


First download the repo definitions:
First download the repository definitions for DNF:


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


Line 56: Line 58:


{| class="wikitable"
{| class="wikitable"
!style="vertical-align:top;"|repo
!style="width: 15%;"|repository
!description
!style="width: 35%;"|description
!target users
!style="width: 30%;"|target users
!example versions
!style="width: 15%;"|example versions
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| kernel-vanilla-mainline
| kernel-vanilla-mainline
| the latest kernels from the Linux mainline series
| a pre-release or git-snapshot from Linux main development branch
| those who want the latest mainline kernel
| those who want the latest mainline Linux
| 4.4, 4.5-rc0-git1, 4.5-rc1, 4.5-rc1-git2
| 4.4, 4.5-rc0-git1, 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
| the latest kernels from the Linux mainline series, but not those from the merge window
| 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
| those who want the latest mainline kernel, but want to avoid kernels from the merge window when the bulk of changes for a new version get merged into the mainline tree
| 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
| 4.4, 4.4.1, 4.5-rc1, 4.5-rc1-git2 but not 4.5-rc0-git1
| 4.4, 4.4.1, 4.5-rc1, 4.5-rc1-git2
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| kernel-vanilla-stable
| kernel-vanilla-stable
| the latest kernels from the Linux mainline series
| the latest non-development version from the mainline or stable kernel series
| those who want the latest Linux stable kernel
| those who want the latest Linux stable kernel
| 4.4, 4.4.1
| 4.4, 4.4.1, 4.4.2, 4.4.3
|- style="vertical-align:top;"
| kernel-vanilla-stable-rc
| the latest kernels from the Linux mainline series including those that are just prepared
| those who want to help testing new stable kernels
| 4.4, 4.4.1, 4.4.2-rc1
|- style="vertical-align:top;"
|- style="vertical-align:top;"
| kernel-vanilla-stable-fedora
| kernel-vanilla-fedora
| contains a vanilla build of the latest kernel which Fedora currently ships or has in its update queue. Except for times when Fedora is one major version behind this repo will contain the same kernels as kernel-vanilla-stable
| 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.
| those that want to check if a vanilla kernel shows the same behavior as the Fedora kernel
| those who want to check if a vanilla kernel shows the same bug or behaviour as the Fedora kernel
| 4.4, 4.4.1
| 4.3.12, 4.3.13, 4.4.3, 4.4.4
|}
|}


Chose which one of those you want to use. The following examples assume you want <code>
Decide yourself which one of those you want to use. The following examples assume you want to use the <code>
kernel-vanilla-mainline</code> repo, hence adjust the commands if you want to use a different repo.  
kernel-vanilla-mainline</code> repository, hence if you want to use a different repository you'll need to adjust the commands accordingly.


=== Install a kernel from the repo ===
=== Install a kernel from the repository ===


Run this command to install the latest mainline kernel from the kernel vanilla repos:
Run this command to install the latest kernel from the kernel vanilla mainline repo:
<pre>
<pre>
sudo dnf --enablerepo=kernel-vanilla-mainline update
sudo dnf --enablerepo=kernel-vanilla-mainline update
</pre>
</pre>


Alternatively you can permanently enable that repo to make Dnf automatically install new mainline kernels 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 repo for the first time Dnf will ask you if you trust the [https://pgp.mit.edu:11371/pks/lookup?op=get&search=0xD7927A2FCC9DBCAB the 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 http://repos.fedorapeople.org/repos/thl/kernel-vanilla-stable/RPM-GPG-KEY-fedora-kernel-vanilla
Retrieving key from https://repos.fedorapeople.org/repos/thl/RPM-GPG-KEY-knurd-kernel-vanilla
Importing GPG key 0xCC9DBCAB:
Importing GPG key 0x863625FA:
  Userid    : "Thorsten Leemhuis (Key for signing vanilla kernel rpms) <fedora@leemhuis.info>"
  Userid    : "Thorsten Leemhuis (Key for signing vanilla kernel rpms) <fedora@leemhuis.info>"
  Fingerprint: e5e8 d53e e5af be95 633d 690f d792 7a2f cc9d bcab
  Fingerprint: 7C71 B4C9 BF71 7876 635F 3205 4534 BEED 8636 25FA
  From      : https://repos.fedorapeople.org/repos/thl/RPM-GPG-KEY-knurd-kernel-vanilla
  From      : https://repos.fedorapeople.org/repos/thl/RPM-GPG-KEY-knurd-kernel-vanilla
Is this ok [y/N]:  
Is this ok [y/N]:  
</pre>
</pre>


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


= Important notes =
= Important notes =
Line 120: Line 117:
Please be aware that
Please be aware that


* none of the developers that maintain the Fedora kernel is involved in the maintenance of the kernel vanilla repos for Fedora
* 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 are 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 know what above command do then you likely should not use these repos or its packages
* if you don't understand what above 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? ==


Cut'n'paste these lines for a up2date answer:
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="24 23 22"; branches="mainline mainline-wo-mergew stable-rc stable stable-fedora"; \
releases="33 32 31"; \
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=$(repoquery --repofrompath=repo,http://repos.fedorapeople.org/repos/thl/kernel-vanilla-${branch}/fedora-${release}/x86_64/ --disablerepo=* --enablerepo=repo --qf '%{evr}' -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)
   echo "${branch} ${release} ${queryresult:-unavailable}"
   echo "${branch} ${release} ${queryresult:-not_available}"  
done; done | column -t
done; done | column -t | sed 's!kernel-0:!!; s!.x86_64!!;'
</pre>
</pre>


== What is the goal of these repos? Who is behind this? ==
== Who is behind this effort? ==
 
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.
 
== How can I uninstall all kernels from the kernel vanilla repositories ==


These and other questions are [[Kernel_Vanilla_Repositories-FAQ|FAQ about the kernel vanilla repositories]].
Boot into a stock Fedora kernel and run
<pre>
sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla.knurd' )
</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. 
 
== What is the goal of these repositories? Are these kernels as good as those Fedora provides? ==
 
These and many other questions are [[Kernel_Vanilla_Repositories-FAQ|answered in the FAQ about the kernel vanilla repositories]].


= Known issues and differences =
= Known issues and differences =


The following sections will list differences to Fedora's proper kernel packages that might be relevant to users. It will also lists known problems specific to the packaging of the vanilla kernels.
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.
 
Please note that these section will not lists any issues known in kernel version that are packaged, as it's best to maintain that information in a central place. So for a list of known bugs in the kernels packaged look at the [https://bugzilla.kernel.org/ the upstream bugtracker] and the [[http://news.gmane.org/gmane.linux.kernel|archives]] of mailing lists like the [http://www.tux.org/lkml/ LKML]].


== General ==
== General ==


No issues known.
* none known


= ToDo list =
= ToDo list =


* enable some of the staging drivers Fedora avoids (basically those a well known add-on repository for Fedora ships as add-on package)
* create stable-rc repo
* maybe ship debuginfo packages
* automate builds more to keep repos more up2date
* automate builds more to keep repos more up2date
* automate builds for stable-testing kernels
* maybe enable some of the staging drivers Fedora avoids

Revision as of 18:08, 13 April 2020

Package repository with Linux vanilla kernel packages for Fedora

The Linux kernel vanilla repositories for Fedora offers RPM packages containing vanilla builds of different Linux kernel version lines. These packages are meant for Fedora users that want to access the latest stable versions or pre-releases of the Linux kernel quickly and comfortably. There is also one repositories 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.

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 sometimes additional steps are necessary:

  • Is UEFI Secure Boot active on your system? If you're usure run mokutil --sb-state to check. If it is, 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 that a typical systems trust.
  • The newly installed kernel will normally get started 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 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 update-grub.
  • 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. In that case the kernel vanilla repositories are lagging behind (its maintainers sometimes are on holiday, too), hence it might be the best to stick to the kernel your have.

If you just want to use kernels from the kernel 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 sudo dnf remove $(rpm -qa 'kernel*' | grep '.vanilla.knurd' ) 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 which type of kernels you want:

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

That way "dnf" will automatically install the latest packages from those repositories.

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

A few common questions about these repos 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 pre-release or git-snapshot from Linux main development branch those who want the latest mainline Linux 4.4, 4.5-rc0-git1, 4.5-rc1, 4.5-rc1-git2
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 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 4.4, 4.4.1, 4.5-rc1, 4.5-rc1-git2
kernel-vanilla-stable the latest non-development version from the mainline or stable kernel series those who want the latest Linux stable kernel 4.4, 4.4.1, 4.4.2, 4.4.3
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. those who want to check if a vanilla kernel shows the same bug or behaviour as the Fedora kernel 4.3.12, 4.3.13, 4.4.3, 4.4.4

Decide yourself which one of those you want to use. The following examples assume you want to use the kernel-vanilla-mainline repository, hence if you want to use a different repository you'll need to adjust the commands accordingly.

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 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="33 32 31"; \
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.

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.knurd' )

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.

Known issues and differences

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.

General

  • none known

ToDo list

  • create stable-rc repo
  • maybe ship debuginfo packages
  • automate builds more to keep repos more up2date
  • maybe enable some of the staging drivers Fedora avoids