Build Linux kernels for Arm cloud instances
Introduction
Set up your Arm instance for kernel building
Build and install custom Linux kernels
Build kernels for Fastpath validation
Next Steps
Build Linux kernels for Arm cloud instances
Who is this for?
This is an advanced topic for software developers building custom Linux kernels on Arm servers and cloud instances.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Set up a build environment for compiling Linux kernels on Arm cloud instances.
- Build custom Linux kernels with various configurations using TuxMake.
- Install and verify custom-built kernels.
- Configure kernels for specific use cases, including 64 KB page sizes and Fastpath testing.
Prerequisites
Before starting, you will need the following:
- An Arm cloud instance with at least 24 vCPUs and 200 GB of free storage running Ubuntu 24.04 LTS
- Understanding of kernel images and modules
- Familiarity with GRUB bootloader and initramfs
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll prepare an Arm-based cloud instance running Ubuntu, and use TuxMake to compile custom Linux kernels with selectable versions and configurations. First, you’ll choose between installing a kernel directly and generating packages, then verify the bootloader, modules, and build artifacts. You can configure 64 KB pages or create Fastpath-ready, build-only outputs, copying the flat artifacts to a test environment for validation.
Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
The examples use valid Linux version tags such as
v6.18.1, but you can select any other valid tag. Pass your chosen tag to the --tags flag and TuxMake builds that version.You should see a new GRUB entry for the installed kernel. After reboot, the running kernel version should match the one you built, and the corresponding modules should be available.
Use a sufficiently large Arm instance, as smaller instances take longer and can run out of memory during compilation. Confirm that you have ample free storage before starting the build.
No. Fastpath is a build-only workflow, so don’t combine
--fastpath true (or its demo shortcut) with --kernel-install or any --install-from commands. Build the kernel, then copy the flat artifacts to your test environment.Run
./scripts/kernel_build_and_install.sh --tags v6.18.1 --include-bindeb-pkg to produce Debian packages alongside the flat kernel artifacts. The .deb files are written under ~/kernels/v6.18.1 for later transfer and installation.