From Fedora Project Wiki

Revision as of 15:00, 28 February 2017 by Thl (talk | contribs)

Package repository with Linux vanilla kernels for Fedora

The Kernel vanilla repositories contain various RPM packages that are build for Fedora and contain vanilla builds of various Linux kernel versions. These packages are meant for users that want to access the latest stable or or in-development versions of Linux quickly and comfortably. In addition, one of the repositories is meant for users who want to check if a problem is specific to the latest 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 | sudo tee /etc/yum.repos.d/kernel-vanilla.repo

Run this to install the latest development 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

Run this if you want the a vanilla version of the latest Fedora kernel:

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

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

  • Is UEFI Secure Boot active on your system (mokutil --sb-state will tell you)? Then you 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 default Secure Boot setups consider trusted.
  • 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 distribution you'll have to boot into that 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. 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.

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; then uninstall the vanilla kernel packages to make sure everything works again as it's supposed to be.

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:

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

That way "dnf" will automatically install newer packages once they got pushed to the repositories.

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 FAQ.

How to use, the verbose version

Configure the repositories

First download the repository definitions for DNF:

curl -s | 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 the latest kernels from the Linux mainline series those who want the latest mainline kernel 4.4, 4.5-rc0-git1, 4.5-rc1, 4.5-rc1-git2
kernel-vanilla-mainline-wo-mergew the latest kernels from the Linux mainline series, except during the merge window, when it might contain the latest stable kernel. 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
kernel-vanilla-stable-rc the latest non-development version from the mainline or stable kernel series, but also kernels from the stable series that are about to get released those who want to help testing new stable kernels. Note: repo is unmaintained ATM :-/ 4.4, 4.4.1, 4.4.2-rc1
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 major version those who want to check if a vanilla kernel shows the same bug or behavior as the Fedora kernel 4.4, 4.4.1

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

Install a kernel from the repository

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

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
Importing GPG key 0x863625FA:
 Userid     : "Thorsten Leemhuis (Key for signing vanilla kernel rpms) <>"
 Fingerprint: 7C71 B4C9 BF71 7876 635F 3205 4534 BEED 8636 25FA
 From       :
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 kernel vanilla repos for Fedora
  • most systems work better and run in a more secure manner with the official Fedora kernels
  • if you don't know what above commands do then you likely should not use these repositories or its packages

More details about the kernel vanilla repos

What kernel versions do the repos currently contain?

Look at this file or cut'n'paste these lines if you want to query the latest status yourself:

releases="26 25 24"; branches="mainline mainline-wo-mergew stable fedora"; \
for branch in ${branches} ; do for release in ${releases} ; do
  queryresult=$(dnf repoquery --repofrompath=repo,${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.


  • iio-tools are disabled due to a build problem

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)
  • automate builds more to keep repos more up2date
  • automate builds for stable-testing kernels