|
|
Line 1: |
Line 1: |
| == How to build the Alpine Linux kernel ==
| | ''This draft was removed'' |
| | |
| This [[Tutorials and Howtos|Howto]] quickly demonstrates how to build and compile the default Alpine Linux [[Kernels|kernels]]. Kernel customizations (not covered here) allow you to experiment by adding/removing kernel modules/features. For example, Alpine releases multiple [[Kernels|kernels]] (e.g. LTS, virt) that vary in features and file sizes. Alpine kernels extend the standard [https://www.kernel.org/linux.html Linux kernel] and build within a few minutes to a few hours (depending on the speed of your system) using <code>[[abuild]]</code>, [https://gitlab.alpinelinux.org/alpine/aports aports], and [https://pkgs.alpinelinux.org/package/edge/main/x86_64/alpine-sdk alpine-sdk].
| |
| | |
| == Before you start ==
| |
| A running instance of Alpine Linux and a non-root user with [https://pkgs.alpinelinux.org/package/edge/main/x86_64/doas doas] privileges (i.e. sudo, wheel group) are required to use <code>[[abuild]]</code>.
| |
| | |
| == Build & install the kernel ==
| |
| | |
| === Build ===
| |
| <pre>
| |
| 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
| |
| </pre>
| |
| | |
| === 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.
| |
| | |
| <pre>
| |
| echo "kernel: $(uname -r)"
| |
| apk list --installed linux-*
| |
| </pre>
| |
| | |
| [[File:Alpine-kernel-package2.png|600px]]
| |
| | |
| === Install ===
| |
| Find the newly-built kernel file to install. This example shows how to install a newly-built x86_64 LTS kernel:
| |
| | |
| <pre>
| |
| ls -r ~/packages/main/*
| |
| doas apk add FILENAME
| |
| doas reboot
| |
| </pre>
| |
| | |
| [[File:Alpine-kernel-install.png|600px]]
| |
| | |
| After rebooting, verify the newly-installed kernel version:
| |
| <pre>
| |
| echo "kernel: $(uname -r)"
| |
| </pre>
| |
| | |
| [[File:Alpine-kernel-new.png|320px]]
| |
| | |
| === 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):
| |
| <pre>
| |
| 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
| |
| </pre>
| |
| | |
| [[File:Alpine-kernel-revert.png|465px]]
| |
| | |
| == See Also ==
| |
| | |
| * [[Kernels]]
| |
| * [[Custom Kernel|Custom Kernel (2018-present)]]
| |