= Installing Kernel from Koji
JetStream
:revnumber: F36
:revdate: 2022-01-08
:category: Kernel
:tags: How-to  Kernel 
//:page-aliases: 

[abstract]
A quick guide on installing a kernel from the Koji repository.

Koji is the build system Fedora developers use to build software for inclusion into Fedora. 
If there is a need to install a kernel that is not currently available in the Fedora repositories, 
these can be obtained from the Koji repository.

== Check Koji (Fedora build system) for archived builds

Check the https://koji.fedoraproject.org/koji/search?match=glob&type=build&terms=kernel-*[Koji] archive for the historical builds.
It is possible to use different searches or expressions to help narrow down on a specific kernel build.
Once the specific kernel has been identified, there are several ways to download and install it.

== Download using the browser and install

One way is to download the identified packages using the browser and installing them.

Download the following package rpms for a specific kernel version into a directory 
(best to create a new directory and just have the downloaded rpms in it.:

----
kernel-<version>.<release>.<arch>.rpm
kernel-core-<version>.<release>.<arch>.rpm
kernel-modules-<version>.<release>.<arch>.rpm
----

then, open a command prompt and change to this directory.
Execute the command to install the kernel:

----
sudo dnf install *
----

== Download and install a kernel using the koji client

=== Install the koji client

The koji client makes the process of installing a specific kernel much easier from the command line. 
Use this command to install the client:

    $ sudo dnf install koji

=== Download and install the kernel

Below is a one-line command that creates a new unique temporary directory, 
downloads kernel RPMs to it and installs them. 
This assumes we are working with the `x86_64` architecture.

    cd $(mktemp -d) \
      && koji download-build --arch=x86_64 --arch=noarch kernel-n.nn.nn-nnn.fcnn \
      && sudo dnf install *

This eliminates the need to clean up after installation and the risk of installing unwanted rpms accidentally.

The following part of the above command downloads the kernel 
and its dependencies for the given architecture and kernel version.

    koji download-build --arch=[arch] kernel-<version>.<release>

where [arch] indicates the architecture i.e. `x86_64`

== Additional Steps:

The following additional steps are often useful:

* Set the default boot option - so this boots automatically subsequently

See xref:kernel/booting.adoc[quick-doc on setting a specific kernel to boot by default]

* Add a versionlock to ensure this version is not deleted when kernel updates are installed

See xref:dnf.adoc#sect-using-dnf-plugin[quick-doc on using the dnf versionlock plugin]

[[sect-references]]
== References

. https://fedoramagazine.org/install-kernel-koji/#comment-472889[Fedora Magazine article: How to install a kernel from koji]

