User:Anthumchris:How to build the Alpine Linux kernel: Difference between revisions
Anthumchris (talk | contribs) No edit summary |
Anthumchris (talk | contribs) mNo edit summary |
||
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== How build the Alpine Linux kernel == | == How to build the Alpine Linux kernel == | ||
This [[Tutorials and Howtos|Howto]] quickly demonstrates building/compiling 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]] 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 == | == 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] ( | 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 & install the kernel == | ||
Line 10: | Line 10: | ||
<pre> | <pre> | ||
doas apk add alpine-sdk | doas apk add alpine-sdk | ||
doas addgroup USERNAME abuild | doas addgroup USERNAME abuild # your non-root user | ||
git clone --depth 1 https://gitlab.alpinelinux.org/alpine/aports.git | git clone --depth 1 https://gitlab.alpinelinux.org/alpine/aports.git | ||
abuild-keygen --append --install | abuild-keygen --append --install | ||
doas chmod a+r /etc/apk/keys/* # ensure new keys are readable | |||
cd aports/main/linux-lts/ | cd aports/main/linux-lts/ | ||
time abuild -crK | time abuild -crK | ||
</pre> | </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 === | === 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> | <pre> | ||
apk add | 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> | </pre> | ||
[[File:Alpine-kernel-revert.png|465px]] | |||
== See Also == | == See Also == | ||
* [[Kernels]] | * [[Kernels]] | ||
* [[Custom Kernel]] | * [[Custom Kernel|Custom Kernel (2018-present)]] |
Latest revision as of 22:57, 3 December 2024
How to build the Alpine Linux kernel
This Howto quickly demonstrates building/compiling 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 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