A Kernel Manager
Update: @manuel 2023-Jan-07
AKM is a simple GUI to manage the kernels. AKM is part of the EndeavourOS tool kit. But it can be used with any other Arch-based distribution. The letters AKM stands for “A Kernel Manager” according to the main developer who created this wonderful app.
AKM supplies the user with a Graphical User Interface with a list of kernels. The user can select a kernel version he/she wants to install.
AKM doesn’t come preinstalled due to the minimalistic philosophy followed by the EndeavourOS team. So users who want to use AKM have to install it from the “Welcome app” or through
pacman in the terminal.
Installing from Welcome app
Installing from terminal
To install AKM via the terminal, you can use
sudo pacman -S akm
Using AKM GUI
Using AKM is straightforward. From the GUI, a user can check the checkbox in front of the kernel package name which will mark that kernel to be installed. If the user wishes to uninstall a particular kernel then he/she just has to uncheck the kernel package from the list. Once they have selected or unselected the kernel package to change the status of, they only have to click on Execute to apply the changes. Refer to the image above for clarity.
You can use AKM via the terminal, with or without options. Using
akm will launch the main AKM GUI. But a user can use the below options to change some characteristics of AKM.
--connect-header– Which will bind the kernel header package and the selected kernel into one unit. As an example, if a user chose to install or uninstall the kernel
--connect-headeroption will bind the
linux-zen-headersto the install or uninstall.
--scroll– It allows the kernel list to be scrollable. By default, the list is scrollable (default changed in 2022).
--small– Make the akm window smaller, suitable for low resolution screens.
By using the AKM configuration file users can customize how AKM works. You can find the configuration file at
/etc/akm.conf. Below is the example code of the mentioned file.
#!/bin/bash ### Config file for akm. # When installing/uninstalling a kernel, you may configure to # install/uninstall the related header too. # Values: "yes" or "no" # Default: no local KERNEL_HEADER_WITH_KERNEL=no # List of kernel and header names when using additional repos. # Example: # local AKM_KERNELS_HEADERS=( # reponame/linux-xxx reponame/linux-xxx-headers # reponame/linux-yyy reponame/linux-yyy-headers # ... # ) # where # reponame The name of an additional repository. # linux-xxx The name of a kernel. # local AKM_KERNELS_HEADERS=( ) # Width of the akm window in pixels. # Default: 900 local AKM_WINDOW_WIDTH=900
|KERNEL_HEADER_WITH_KERNEL || Provides the same function as|
binding the header package
with the kernel package.
|AKM_KERNELS_HEADERS|| Lists the additional kernel|
and header names when using
|List of |
|AKM_WINDOW_WIDTH|| Predefines the width of the||A positive integer (number) in pixels. Default is |
Adding a New (unofficial) Package Repository
If a user wishes to more kernels he/she can add the corresponding repository to the
/etc/pacman.conf. After adding the repository user must perform a database sync using
sudo pacman -Syy or
sudo pacman -Syyu. Once this is done, if the repository contains any kernel packages then AKM will try to add them to the list and show them.
An unofficial kernel repo.
[kernel-lts] Server = https://repo.m2x.dev/current/$repo/$arch
Using Caveat Method to Add Kernels
This method of automatically detecting kernel names is limited because kernels can be named in various ways. Use configuration variable
AKM_KERNELS_HEADERS (mentioned above) to add a list of kernel and header names from an additional repository. This is useful if the automatic kernel name detection does not recognize certain kernel names.
Just as an example, to use the info from the picture above, your
/etc/akm.conf could look something like this:
#!/bin/bash ### Config file for akm. # When installing/uninstalling a kernel, you may configure to # install/uninstall the related header too. # Values: "yes" or "no" # Default: no local KERNEL_HEADER_WITH_KERNEL=yes # List of kernel and header names when using additional repos. # Example: # local AKM_KERNELS_HEADERS=( # reponame/linux-xxx reponame/linux-xxx-headers # reponame/linux-yyy reponame/linux-yyy-headers # ... # ) # where # reponame The name of an additional repository. # linux-xxx The name of a kernel. # local AKM_KERNELS_HEADERS=( kernel-lts/linux-lts414 kernel-lts/linux-lts414-headers kernel-lts/linux-lts419 kernel-lts/linux-lts419-headers kernel-lts/linux-lts44 kernel-lts/linux-lts44-headers # and so on... ) # Width of the akm window in pixels. # Default: 900 local AKM_WINDOW_WIDTH=1000