Linux kernel packages for madOS with one generic zen-based flavor:
linux-mados: broad x86_64 compatibility (Intel Atom 64-bit and newer)
Both flavors are configured to support Plymouth reliably during early boot.
- Boot across a wide range of x86_64 hardware
- Keep desktop responsiveness (1000Hz + preemptive scheduling)
- Ensure early graphics stack is available for Plymouth splash
linux-madoslinux-mados-headers
sudo pacman -Syu --needed base-devel bc cpio gettext libelf pahole perl python tar xz zstd git ccache ncurses clang lld llvm binutils
git clone https://github.com/madoslinux/mados-kernel.git
cd mados-kernel
makepkg -ssudo pacman -U ./linux-mados-*.pkg.tar.* ./linux-mados-headers-*.pkg.tar.*Plymouth needs both kernel-side and initramfs-side support.
- Ensure your initramfs hooks include
plymouthandkms. - Regenerate initramfs after installing a new kernel:
sudo mkinitcpio -P- Use a bootloader command line with
splash(and typicallyquiet).
Example (/etc/mkinitcpio.conf) hooks with systemd initramfs:
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems plymouth fsck)Configuration is generated from x86_64_defconfig and then layered with fragments:
config.base: compatibility-oriented baselineconfig.plymouth: early graphics and splash-related options
This keeps the config reproducible and avoids long, stale monolithic configs.
GitHub Actions now validates:
- Package build via
makepkg - Key kernel symbols for Atom x86_64+ compatibility and Plymouth
- QEMU smoke boot for
linux-madosin BIOS and UEFI mode using a tiny initramfs
The smoke test confirms early boot execution path (SMOKE_OK) and catches hard boot regressions quickly.
To avoid spending GitHub Actions minutes on preventable failures, this repository includes local checks:
.git/hooks/pre-pushrunsscripts/precommit-build-check.shbefore any push.- The script runs
makepkg -s --noconfirmand then validates key config symbols. - If required build dependencies are missing, it fails and shows the exact
pacmancommand to install them.
This check is strict by design and must pass before pushing.
Validated symbol policy covers:
- Generic CPU baseline for broad x86_64 support (no
X86_NATIVE_CPU) - Boot-critical storage and filesystem symbols as built-in (
AHCI,NVMe,ext4,vfat,iso9660,squashfs) - Early graphics/console path needed by installer and Plymouth (
simpledrm, framebuffer console) - UEFI boot symbols (
EFI,EFI_STUB)
- No splash shown:
- Verify
HOOKScontainkmsandplymouth - Verify kernel cmdline includes
splash - Rebuild initramfs with
mkinitcpio -P
- Verify
- Hardware-specific issues:
- Verify firmware, initramfs hooks, and bootloader configuration first
- zen-kernel team
- Arch Linux kernel tooling
GPL-2.0-or-later