Universal Linux kernel builder with CachyOS patches and BORE (Burst-Oriented Response Enhancer) scheduler.
- Automatic hardware detection - CPU architecture, GPU vendor, storage type
- Auto-fetches latest kernel versions from kernel.org
- Optimized for your hardware - Intel/AMD CPU optimizations, GPU drivers, I/O schedulers
- Multi-distro support - Void, Arch, Debian, Ubuntu, Fedora
- BORE scheduler - Improved system responsiveness under load
- Clang + ThinLTO - Fast compilation with link-time optimization
- Gaming optimizations - FUTEX2, NTSYNC for Wine/Proton
# 1. Clone repository
git clone https://github.com/prostitutionofthesoul/bore-kernel-builder.git
cd bore-kernel-builder
# 2. Install dependencies (see Requirements section below)
# 3. Build kernel
./bore-kernel-builder.sh
# 4. Install kernel
sudo ./bore-kernel-builder.sh install
# 5. Update bootloader (see Bootloader Configuration section)
# 6. Reboot
sudo rebootsudo xbps-install -S base-devel ncurses-devel openssl-devel elfutils-devel \
bc pahole flex bison perl zstd xz wget patch clang lld llvm dracutsudo pacman -S base-devel bc pahole flex bison perl zstd xz wget patch clang lld llvmsudo apt update
sudo apt install build-essential bc pahole flex bison libelf-dev libssl-dev \
libncurses-dev perl zstd xz-utils wget patch clang lld llvmsudo dnf install @development-tools bc dwarves flex bison elfutils-libelf-devel \
openssl-devel ncurses-devel perl zstd xz wget patch clang lld llvmRun the script and follow the prompts:
./bore-kernel-builder.shThe script will:
- Check latest kernel versions on kernel.org
- Ask which version to install (latest stable, LTS, or manual entry)
- Auto-detect your hardware:
- CPU architecture (Intel Haswell→Raptor Lake, AMD Zen→Zen4)
- GPU vendor (AMD, NVIDIA, Intel)
- Storage type (NVMe, SATA SSD, HDD)
- Download kernel source and CachyOS patches
- Configure kernel with ~200 optimizations
- Compile (40-200 minutes depending on CPU)
After successful build:
sudo ./bore-kernel-builder.sh installThis will:
- Install kernel to
/boot/vmlinuz-{VERSION}-bore - Install modules to
/lib/modules/{VERSION}-bore/ - Generate initramfs
- Copy System.map and .config
Remove build directory (~20GB):
./bore-kernel-builder.sh cleanAfter installation, you must update your bootloader before rebooting.
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo rebootEdit or create boot entry in /boot/loader/entries/:
sudo nano /boot/loader/entries/linux-bore.confExample entry:
title Linux BORE
linux /vmlinuz-7.0-bore
initrd /initramfs-7.0-bore.img
options root=UUID=YOUR-ROOT-UUID rw quiet
Find your root UUID:
lsblk -fThen update and reboot:
sudo bootctl update
sudo rebootrEFInd auto-detects kernels in /boot/. Just reboot:
sudo rebootIf you boot directly via UEFI without a bootloader:
# Find your root UUID
ROOT_UUID=$(lsblk -f | grep "/$" | awk '{print $4}')
# Create EFI boot entry
sudo efibootmgr --create \
--disk /dev/sda \
--part 1 \
--label "Linux BORE" \
--loader /vmlinuz-7.0-bore \
--unicode "root=UUID=${ROOT_UUID} rw initrd=\\initramfs-7.0-bore.img"
sudo rebootNote: Adjust /dev/sda and partition number (--part 1) to match your EFI partition.
Burst-Oriented Response Enhancer - improves system responsiveness under load, especially for interactive workloads and gaming.
- Intel: Haswell, Broadwell, Skylake, Coffee Lake, Comet Lake, Tiger Lake, Alder Lake, Raptor Lake
- AMD: Zen, Zen2, Zen3, Zen4
- Generic: GENERIC_CPU for universal x86-64 compatibility
- Preemption: Full preemption (
CONFIG_PREEMPT=y) for low latency - Timer: 1000 Hz for better responsiveness
- Compiler: Clang with ThinLTO and -O3 optimization
- Memory: Multi-Gen LRU, THP on demand, ZSWAP with zstd compression
- Network: BBR congestion control
- FUTEX2: Improved futex implementation for better Wine/Proton performance
- NTSYNC: Windows synchronization primitives for gaming
- AMD: amdgpu driver (RX 5000/6000/7000 series, legacy SI/CIK support)
- NVIDIA: nouveau driver (open-source)
- Intel: i915 and xe drivers
- NVMe: No I/O scheduler (best for NVMe)
- SATA SSD: mq-deadline scheduler
- HDD: BFQ scheduler
- Full Docker/Podman support (namespaces, cgroups, memory cgroups)
Compilation time depends on your CPU:
- 20 threads: ~40 minutes
- 16 threads: ~50 minutes
- 8 threads: ~100 minutes
- 4 threads: ~200 minutes
- During build: ~20 GB
- After installation: ~500 MB (kernel + modules)
- Tip: Run
./bore-kernel-builder.sh cleanafter installation to free up space
If you want a specific kernel version not listed:
./bore-kernel-builder.sh
# Select option 2 (Choose another version)
# Select option 4 (Enter manually)
# Enter version: 6.19.12If auto-detection fails or you want a different optimization:
./bore-kernel-builder.sh
# When prompted for CPU optimization, select option 3 (Enter manually)
# Available: BROADWELL, SKYLAKE, COFFEELAKE, ALDERLAKE, RAPTORLAKE,
# ZEN, ZEN2, ZEN3, ZEN4, GENERIC_CPUYou can override auto-detection during interactive setup:
- CPU: Choose different architecture optimization
- GPU: Select different GPU vendor
- Storage: Select different storage type
To update to a newer kernel version:
# Clean old build
./bore-kernel-builder.sh clean
# Build new version
./bore-kernel-builder.sh
# Select new version when prompted
# Install
sudo ./bore-kernel-builder.sh install
# Update bootloader
sudo grub-mkconfig -o /boot/grub/grub.cfg # or your bootloader
# Reboot
sudo rebootTo remove a kernel:
# Remove kernel files
sudo rm /boot/vmlinuz-7.0-bore
sudo rm /boot/initramfs-7.0-bore.img
sudo rm /boot/System.map-7.0-bore
sudo rm /boot/config-7.0-bore
# Remove modules
sudo rm -rf /lib/modules/7.0-bore
# Update bootloader
sudo grub-mkconfig -o /boot/grub/grub.cfg # or your bootloader- CachyOS - BORE scheduler and kernel patches
- Linux Kernel - The Linux kernel
This script is provided as-is under the MIT License. The Linux kernel is licensed under GPL-2.0.