User:Anthumchris:How to build the Alpine Linux kernel

From Alpine Linux
Revision as of 03:00, 11 December 2024 by Anthumchris (talk | contribs)

How to build the Alpine Linux kernel

This Howto quickly demonstrates how to build and compile the default Alpine Linux kernels. Kernel customizations (not covered here) allow you to experiment by adding/removing kernel modules/features. For example, Alpine releases multiple kernels (e.g. LTS, virt) that vary in features and file sizes. Alpine kernels extend the standard Linux kernel and build within a few minutes to a few hours (depending on the speed of your system) using abuild, aports, and alpine-sdk.

Before you start

A running instance of Alpine Linux and a non-root user with doas privileges (i.e. sudo, wheel group) are required to use abuild.

Build & install the kernel

Build

doas apk add alpine-sdk
doas addgroup USERNAME abuild         # your non-root user

git clone --depth 1 https://gitlab.alpinelinux.org/alpine/aports.git
abuild-keygen --append --install
doas chmod a+r /etc/apk/keys/*        # ensure new keys are readable

cd aports/main/linux-lts/
time abuild -crK

Identify backup

Identify the package name of your current kernel (e.g. linux-lts, linux-virt). This example shows that linux-lts is the current package that we would revert to as a backup.

echo "kernel: $(uname -r)"
apk list --installed linux-*

Install

Find the newly-built kernel file to install. This example shows how to install a newly-built x86_64 LTS kernel:

ls -r ~/packages/main/*
doas apk add FILENAME
doas reboot

After rebooting, verify the newly-installed kernel version:

echo "kernel: $(uname -r)"

Revert

If needed, revert to the previous backup kernel package we identified earlier. This example shows how to revert to the previous "alpine-lts" package after removing the newly-installed "alpine-lts" (both are named "alpine-lts" yet refer to different versions/locations):

apk list linux-lts            # newly-compiled kernel installed
doas apk del linux-lts        # newly-compiled kernel from file
doas apk add linux-lts        # previous kernel from Alpine repo
apk list linux-lts            # previous kernel installed
doas reboot

See Also