A_KERNEL=Arctic-base-kernel
Arctic-base-kernel |
the default. Linux 7.1.3, broad hardware support, most drivers as modules. |
Arctic-kernel |
Linux 6.12 LTS with the ZEN patchset merged on top. |
Arctic-libre-kernel |
no binary blob loading, no nonfree microcode. |
Arctic-small-kernel |
monolithic, no module loader, no initramfs needed. Fast boot, fixed hardware. |
Arctic-rt-kernel |
realtime preemption. |
Arctic-hardened-kernel |
hardening options turned up. |
More than one can be installed at once; the bootloader lists each.
A real fork, not a config change: github.com/apiwo/arctic-kernel. Linux 6.12 LTS with the ZEN patchset merged on top, plus an Arctic patch of its own.
What ZEN brings:
ntsync — Wine and Proton synchronisation primitivesvhba — virtual SCSI host, for CD emulationThe Arctic patch on top raises default readahead to 512 KiB.
The merge was reconciled by hand against 83 upstream point releases of
drift (6.12.17 to 6.12.100). What applied cleanly, what needed rework and
what was dropped is written down honestly in the repo's
PATCHES.md — including the one hunk that was dropped rather
than guessed at.
The kernel Arctic ships is built with the same configuration
Arctic-base-kernel uses, so the difference between them is
the patchset, not the options.
Both kernels start from the distribution config and apply the same delta, for reasons worth knowing:
Arctic-small-kernel additionally disables the module
loader entirely: everything it can do, it does without modules, and it
needs no initramfs.
git clone https://github.com/apiwo/arctic-kernel cd arctic-kernel container/build.sh Default-config/config default bzImage modules
The build runs inside bubblewrap: the host toolchain bound read-only, no network, and the build's own output directory the only writable path. No docker or podman needed.
Four configurations ship: Default-config,
Hardened-config, Small-config,
RT-config.
To build it as an Arctic package instead, with Arctic's own configuration, see building from source.
A_MICROCODE=auto # or intel, amd, none
auto reads /proc/cpuinfo and installs
intel-ucode or amd-ucode. Firmware comes from
linux-firmware, which
Arctic-libre-kernel deliberately skips.
The kernel is a package like any other, so it is declared like one:
SYS_PACKAGES=" Arctic-kernel ... "
arctic-rebuild
Which means a kernel change is a generation, and a kernel that does not boot is one boot-menu entry away from being undone. See generations.
More: arctic linux docs · install · declarative configuration · generations and rollback · init systems · packages (alpm) · desktops and audio · ephemeral shells · musl · building from source