From Fedora Project Wiki

(use curl, as it's installed by default)
No edit summary
(40 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Linux vanilla kernels for Fedora =
= Package repository with Linux vanilla kernels for Fedora =  


== Overview ==
The [http://repos.fedorapeople.org/repos/thl/ 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.


This page contains usage information about a [http://repos.fedorapeople.org/repos/thl/ set of package repositories] which contain RPMs of Linux vanilla kernels built for Fedora. Vanilla in this scope means "unmodified", hence these packages do not contain any of those enhancements the Fedora developers integrate into the Linux kernel packages that Fedora normally uses.
= How to use these repos =
Currently there are these repositories:


* [http://repos.fedorapeople.org/repos/thl/kernel-vanilla-mainline/ kernel-vanilla-mainline for F17 and F18]
== How to use, the TLDR version ==
* [http://repos.fedorapeople.org/repos/thl/kernel-vanilla-stable/ kernel-vanilla-stable for F17 and F18]
 
To install the kernels from these repositories download the [http://repos.fedorapeople.org/repos/thl/kernel-vanilla-mainline/fedora-kernel-vanilla-mainline.repo repo file for kernel-vanilla-mainline] or the [http://repos.fedorapeople.org/repos/thl/kernel-vanilla-stable/fedora-kernel-vanilla-stable.repo repo file for kernel-vanilla-stable] and put it in /etc/yum.repos.d/. You can do this with commands like these:


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


To list the available packages use a command like this:
Run this to install the latest development kernel:
<pre>
<pre>
yum --disablerepo=* --enablerepo='fedora-kernel-vanilla-mainline' list available
sudo dnf --enablerepo=kernel-vanilla-mainline update
</pre>
</pre>


To install the latest kernel from the repo use a command like this:
Run this if you want the latest stable kernel instead:
<pre>
<pre>
sudo yum --disablerepo=* --enablerepo='fedora-kernel-vanilla-mainline' install kernel
sudo dnf --enablerepo=kernel-vanilla-stable update
</pre>
</pre>


When you install a kernel from the repo for the first time yum will ask you if you trust the [http://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:
Run this if you want the a vanilla version of the latest Fedora kernel:
<pre>
<pre>
Retrieving key from http://repos.fedorapeople.org/repos/thl/kernel-vanilla-stable/RPM-GPG-KEY-fedora-kernel-vanilla
sudo dnf --enablerepo=kernel-vanilla-fedora update
Importing GPG key 0xCC9DBCAB:
Userid    : "Thorsten Leemhuis (key for singing vanilla kernel pkgs for fedora) <fedora@leemhuis.info>"
Fingerprint: e5e8 d53e e5af be95 633d 690f d792 7a2f cc9d bcab
From      : http://repos.fedorapeople.org/repos/thl/kernel-vanilla-stable/RPM-GPG-KEY-fedora-kernel-vanilla
Is this ok [y/N]:
</pre>
</pre>
Yum will proceed once you acknowledge this.


It is strongly suggested you add "kernel-devel" to above "yum install" call, because that way you get the package with the files needed to compile kernel modules for the kernel you are installing; these devel files might not be able to get that easily later or might not be available on the repositories any more, depending on when "later" is.
Reboot. That's it – at least most of the time, as sometimes additional steps are necessary:


'''Important notes'''
* Is UEFI Secure Boot active on your system (<code>mokutil --sb-state</code> will tell you)? Then 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 default Secure Boot setups consider trusted.


Please note:
* 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 <code>update-grub</code>.


* none of the developers that maintain the Fedora kernel is involved in this effort
* 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.
* most systems work better and are 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 packages


For more details on this see below.
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.


== FAQ ==
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:


=== For users ===
<pre>
sudo dnf config-manager --set-enabled kernel-vanilla-mainline
sudo dnf config-manager --set-enabled kernel-vanilla-stable
</pre>


==== Who is behind this effort?  ====
That way "dnf" will automatically install newer packages once they got pushed to the repositories.


Right now the Linux 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.  
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]].


==== Can we trust the people behind it? ====
== How to use, the verbose version ==


You have to decide yourself if you can trust the packages from these repositories. If it is any help: Some of those that use or contribute to Fedora since a while will know that Thorsten has quite a history of Fedora contributions, even if he was not that much active in the past few years. You can assume he has no interest in ruin his reputation quickly by providing crap in these repositories. On the other hand you should know that Thorsten started these repositories to dig deeper into the kernel and kernel development; so expect he'll make some mistakes along the way. And be reminded that using vanilla kernels has some known downsides and risks (see below).
=== Configure the repositories ===


==== What's the goal? ====
First download the repository definitions for DNF:


The main ideas is to help upstream development, which in the end will be of benefit for Fedora as well. With the packages from the mainline repositories it for example is quite easy to test kernels that are still under development and report bugs upstream, so they get fixed before a certain kernel version get released and later shipped as update to Fedora.  
<pre>
curl -s https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | sudo tee /etc/yum.repos.d/kernel-vanilla.repo
</pre>


The kernels from the stable repositories on the other hand make it easy to check if a bug that happens with a kernel from Fedora is specific to it or also present in the newest vanilla kernel from the mainline or the stable series; if that is the case users can directly work with upstream on working out solutions for the problem and don't have to go through the sometimes overworked and quite busy developers that maintain the Linux kernel packages in Fedora.
This will install a repo file with following repos:


==== Are the kernels from the kernel-vanilla repositories as good as those Fedora provides? ====
{| class="wikitable"
!style="vertical-align:top;"|repository
!description
!target users
!example versions
|- style="vertical-align:top;"
| 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
|- style="vertical-align:top;"
| 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
|- style="vertical-align:top;"
| 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
|- style="vertical-align:top;"
| 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
|- style="vertical-align:top;"
| 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
|}


No. There are several reasons for why not; the most important ones:
Decide yourself which one of those you want to use. The following examples assume you want to use the <code>
kernel-vanilla-mainline</code> repository, hence adjust the commands if you want to use a different repository.


* the developers that take care of the kernel package in Fedora are far more experienced in packaging kernels and kernel development than those that take care of the kernel-vanilla repositories
=== Install a kernel from the repository ===
* the kernels that get used in Fedora or released as proper update get a lot of testing; the kernels from the kernel-vanilla repositories get nearly no testing (they are started in virtual machine and published if they boot).
* the official Fedora kernels sometimes contain changes that fix security problems or other crucial bugs before they get merged upstream


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


* the mainline repository contain kernels that are still under heavy development and sometimes are known to have serious bugs.
Alternatively you can permanently enable that repository to make DNF automatically install new kernel packages when updating the system:


But in the end using the kernels from the kernel-vanilla repositories should not be any more dangerous than compiling and installing a kernel from source yourself.
<pre>
sudo dnf config-manager --set-enabled kernel-vanilla-mainline
sudo dnf update
</pre>


==== Thorsten, do you use the vanilla kernels yourself? ====
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>
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]:
</pre>


Yes, I normally use one of the x86-64 vanilla kernels from the mainline repo.
DNF will proceed once you acknowledge this.  


==== Are the kernels safe to use? ====
= Important notes =


Depends on your definition of "safe".
Please be aware that


The Linux kernel is a complex piece of software which contains bugs. Those lead to data loss sometimes; in very rare situations they can even lead to hardware defects. Those bugs might only show up under specific circumstances -- for example when a specific mix of hardware is used with a specific kernel version that was built with a specific configuration. It might be unlikely that such a bug is triggered by one of the non-development kernels from the kernel-vanilla repositories, but it's definitely possible. Self compiled kernels bear the same risk; chances of hitting serious bugs are lower for kernels that have undergone widespread testing already.
* 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


In other words: The kernels from the kernel-vanilla repositories will work just fine for most people. But use them on your own risk and have backups handy, as you always should.
= More details about the kernel vanilla repos =


==== Should everything work with those kernels that works with the official Fedora kernels? ====
== What kernel versions do the repos currently contain? ==


No. Linux vanilla kernels are not that different from the kernels Fedora provides, but the latter include a few enhancements. Each was added for a good reason to make Fedora better, hence these improvements are missing when you use Linux vanilla kernels.
Look at [http://www.leemhuis.info/files/kernel-vanilla/repostatus.txt this file] or cut'n'paste these lines if you want to query the latest status yourself:


When this text was written in the spring of 2012 Fedora for example included utrace in their Linux kernels to support userspace tracing with systemtap; hence this feature won't work with the kernels from the kernel-vanilla repositories. Another example: The kernels from Fedora sometimes include fresher drivers which some systems will require to work properly. And sometimes there are inter-dependencies between drivers in kernel and userland. The nouveau driver for graphics hardware from Nvidia was one such driver, as it had no stable API yet when this text was written; that's why the DRM/KMS driver in the kernel was marked as "staging" back then. The Mesa 3D or X.org drivers included in a particular Fedora release therefore might depend on the nouveau DRM/KMS driver which is part of the kernels Fedora ships for this release; thus the nouveau drivers for Mesa 3D and X.org that are part of a certain Fedora release might not work properly with kernels found in the kernel-vanilla repositories, as the latter might contain an older or newer nouveau DRM/KMS driver which are incompatible.
<pre>
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,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!!;'
</pre>


The non-development kernels found in the kernel-vanilla repositories therefore should work on a lot of systems, but on some systems they will be worse than the kernels Fedora provides.
== Who is behind this effort?  ==


==== Where to report bugs ====
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.


If the Linux kernels in the packages from these repositories show any bugs please report them upstream to the Linux kernel developers, just as you would after installing a Linux kernel yourself with the sources available at [http://kernel.org kernel.org]; that way all the bug reports go to the place where the people hang out that know how to fix them.
== How can I uninstall all kernels from the kernel vanilla repositories ==


In case there are bugs in the packaging sent a mail to [[user:thl|Thorsten Leemhuis (aka "knurd")]].
Boot into a stock Fedora kernel and run
 
<pre>
==== How can I avoid switching back and forth between vanilla kernels and Fedora kernels ? ====
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. 


Add "exclude=kernel" to the first section of these files in /etc/yum.repos.d/
== What is the goal of these repositories? Are these kernels as good as those Fedora provides? ==


fedora.repo
These and many other questions are [[Kernel_Vanilla_Repositories-FAQ|answered in the FAQ about the kernel vanilla repositories]].
fedora-updates.repo
fedora-updates-testing.repo


==== Will this repository also ship updates userland components like drivers or udev that match the kernels in the repositories? ====
= Known issues and differences =


No, as there should be no need to, as the interfaces between the kernel and userland software should never change in an incompatible way; Linus Torvalds makes this pretty clear every now and then.
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.


That is the long story short. There are a lot of situations where the world is more complicated:
== General ==


* above mentioned rule does not apply to staging drivers, so situations might arise where the vanilla kernels are not usable for people that need staging drivers for their system. Apart from the nouveau drivers that shouldn't bother to many people; and time will tell how bad the situation is for nouveau.
* iio-tools are disabled due to a build problem
* Fedora sometimes might contain software that depends on bits that are not upstream


And even with this rule sometimes a new mainline kernel versions brings changes that require updates userland software. Three examples:
= ToDo list =
 
* the version number jump from 2.6.39 to 3.0 confused some software
* in rare cases fixing security problems was only possible my changing the interfaces in an incompatible way
* sometimes nobody notices early enough that interfaces have changed
 
It remains to be seen how often we hit such issues and how bad they are; how we deal with them will be decided on a case by case basis. In some cases we might have to other solution then to add new versions of other software to the repositories. But the plan is to avoid this if possible.
 
==== Do you plan to provide packages for "linux-next" or "linux-rt" as well? ====
 
For now: No. I know there is some interest in packages for them, but maintaining those will consume a lot of time regularly and we have not enough resources to do it properly right now.
 
The CCMA people also build RT kernels already and it might be the best for everyone to not compete with them and simply ignore RT here.
 
Packaging -next kernels might not be a good idea in general, as chances these kernels contain bad bugs are bigger than in the mainline of stable series. Jence it might be wise to leave -next to people that build kernels themselves.
 
But [[user:thl|get in contact]] if you think investing time in these makes sense.
 
==== Do you plan to provide vanilla kernels for RHEL and derivatives like CentOS and SL? ====
 
Sounds like a good addition. But there are people more familiar with these dists that provide such packages already. It would mean additional work, too; and we currently have no one that would regularly run such kernels. So for now we won't get our feet wet in that area. But if you want to step up and help, [[User:thl|get in contact]].
 
==== Do you plan to provide packages for longterm kernels ====
 
Unlikely. Mail goal of the kernel-vanilla repositories is to help upstream kernel development; but longterm kernels are a dead end and quite far away from mainline development, so they would not fit that well. But it might make sense for RHEL and derivatives, if those will ever be supported by this effort.
 
==== What configuration do those kernels use? ====
 
Basically the same configuration the Fedora kernels use. Maybe a few staging drivers might get turned on to help their development, but apart from it the plan is to stick closely to what Fedora does.
 
==== Why don't you put these kernels in Fedoras main repositories ====
 
The current consensus in the Fedora project as far as we know is: That's not a good idea, as that would make the vanilla Linux kernels more "official" and people might simply use those without knowing what their downsides are.
 
That's the long story rough and short. And sure, there are reasons why having vanilla kernels in the main repositories make sense. Feel free to start a discussion on [https://admin.fedoraproject.org/mailman/listinfo/devel Fedoras devel mailing list], we'll watch and might jump in.
 
Putting the kernels in a well know 3rd party add-on repository for Fedora might make sense, but some of the problems would be similar; and there are others problems, as then users might ask to build add-on modules for those kernels, too. In other words: Would need discussion and careful evaluation.
 
==== Are those kernels really unpatched? ====
 
No, they contain a handful of very small changes that are needed for packaging.
 
From time to time the packages might use patches that are necessary temporary to make the kernel build or usable for most people; fixes like these will normally head upstream quickly and hence vanish from the vanilla packages again soon. And this normally should only happen with mainline development kernels, not with stable versions.
 
==== How up2date will those repositories be? ====
 
We do the work in our spare time. Sometimes the day job and this strange thing called "real life" leave not much time to work on these kernels, so there will be a lag.
 
=== For contributors and developers ===
 
==== Can you please include this patch? ====
 
No. Get your patch merged upstream, then the change you are interested in will automatically show up in these packages. And even better: it will automatically get into Fedora and other distributions, too!
 
==== Is there a Git tree somewhere? ====
 
[http://fedorapeople.org/cgit/thl/public_git/kernel.git/ Sure].
 
Let us know if we should do modifications to allow others to contribute to or benefit from this git tree better.
 
==== What Fedora versions will be supported ====
 
The plan is to always support the most recent Fedora version in the stable and mainline repositories. The mainline and sometimes the stable repo will also be provides for the distribution that is currently under development (rawhide on the first half of Fedoras development cycle iteration or the alpha/beta/rcs in the second half).
 
==== Why are there no debug kernels and not even debuginfo packages ====
 
The space on repos.fedoraprople.org is limited, hence we need to limit the number of packages we can provide. The debuginfo packages are also quite big, which makes them hard to handle. If there is interest, then may in the sort or medium timeframe solutions can be found to provide these packages.
 
==== Why don't you commit your changes to Fedora's kernel git repo on pkgs.fedoraproject.org? ====
 
That might make sense. But it bears the risk that a commit is done to a wrong branch and disturbs the work of the Fedora kernels maintainer. Further: Not all of those that contribute to Fedora can commit there. That's similar with the fedorapeople git repository, but the docs indicate others can be given access with the help of ACLs.
 
But whatever: Git is made for distributed development, so simply clone it and send pull requests if you have any additions.
 
==== Can I help? ====
 
Of course. [[user:thl|Talk to Thorsten]]; best if you come with some ideas what you can and want to do.
 
==== Do you plan to work together with those that take care of the kernel packages in Fedora? ====
 
Definitely. But it remains to be seen how it looks like in practice.
 
==== Please stop providing alternative kernel packages, they take attention away from the kernel packages Fedora provide and thus harm Fedora! ====
 
That's a valid concern, but I think the benefits outweigh the downsides.
 
That again that is the long story short. Just to get a little bit deeper into it and show a different view on the matter at hand: Similar arguments could be used to argue that Fedora should stop shipping patched kernels, as they take attention away from the upstream kernel. Up to a point such an argument is valid, too, but there are good reasons why Fedora patches its kernels.
 
==== Why did you drop the "-vanilla" postfix that normally gets added to the "name" macro when you build a vanilla kernel RPM locally? ====
 
I've thought about dropping or leaving it for a while, as both schemes have various benefits and downsides. In the end I went for dropping it due to reasons like this:
 
* nearly every other repository in Fedoraland that ships variants of a packages that are included in Fedora do not change the name
* the postfix in the name breaks some tool -- for example things like "fedpkg srpm" on the git checkout
* external solutions that heavily depend on the naming scheme Fedora uses (like the akmod/kmod stuff used in some external repositories) would break with the -vanilla postfix in the name
* yum would not recognize kernel packages with a "-vanilla" postfix as "installonly" and thus would perform a regular update for vanilla packages instead of installing them parallel to the current one
 
== 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.
 
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 ===
 
No issues known.
 
==== ToDo ====


* enable some of the staging drivers Fedora avoids (basically those a well known add-on repository for Fedora ships as add-on package)
* enable some of the staging drivers Fedora avoids (basically those a well known add-on repository for Fedora ships as add-on package)
* stable-testing repo?
* automate builds more to keep repos more up2date
 
* automate builds for stable-testing kernels
=== F18 ===
 
No issues known.
 
=== F17 ===
 
No issues known.

Revision as of 15:00, 28 February 2017

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 https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | 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 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 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 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 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,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

  • 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