A modern, ultra-responsive, microarchitecture-optimized Linux distribution delivering a full-featured desktop experience on Broadcom BCM2712 hardware.
Download Release Image β’ Browse APT Repository β’ Features β’ Installation Guide
KRubus running native KDE Plasma 6 on Wayland with the signature KRubus Dark Theme, customized vector launcher, and Fastfetch hardware readout.
KRubus (KDE + Rubus idaeus) is an operating system crafted specifically for the Raspberry Pi 5, Raspberry Pi 500, and Compute Module 5 (CM5). Built atop Raspberry Pi OS / Debian 13 (Trixie) ARM64, it replaces traditional lightweight compromises with a fluid, modern KDE Plasma 6 (Wayland) desktop environment backed by end-to-end hardware acceleration, a custom 1000 Hz low-latency kernel, transparent Btrfs ZSTD compression, instant userspace sleep/standby, and an exclusive Cortex-A76 microarchitecture-optimized APT repository.
Booting to a fully interactive desktop in under 5 seconds, KRubus delivers workstation-grade responsiveness on a credit-card-sized single-board computer.
- Smooth 60/75 Hz Compositing: Native Wayland session powered by KWin and the Broadcom VideoCore VII (V3D 7.1) driver with direct DMA-BUF zero-copy buffer sharing.
- Handcrafted KRubus Dark Theme: Custom obsidian & midnight slate color palette (
#0d1117/#161c26) paired with electric raspberry (#e30b5d), violet (#8b45c9), and Plasma blue (#1d99f3) accents derived from the official KRubus insignia. - Vector Launcher Branding: Scalable, transparent application launcher icon pre-configured directly on the primary panel.
- Snappy UI Response: Tuned animation durations (
0.5x), subpixel RGB font rendering, and zero-latency input delivery.
- Over 390 core packages (including Qt6, KDE Frameworks 6, KWin, Mesa, PipeWire, GStreamer, and FFmpeg) natively built and continuously updated specifically for the ARMv8.2-A Cortex-A76 core.
- Compiler Flags: Compiled with
-mcpu=cortex-a76+crypto -O3 -flto=auto -ftree-vectorize -floop-interchange -floop-nest-optimize -mearly-ra=alland exact BCM2712 cache geometry parameters (64 KB L1, 512 KB L2). - Stripped Bloat: Legacy Armv7/Cortex-A53 errata workarounds and PAC/BTI penalties completely removed for maximum instructions per cycle (IPC).
- Web Catalog: Search and inspect every package in the live repository catalog at gamingtux.github.io/KRubus.
- Transparent Compression (
compress=zstd:1): Reduces flash write wear by ~40%, doubles effective storage capacity, and significantly boosts read speeds from MicroSD, eMMC, and NVMe drives. - Subvolume Architecture: Isolated
@(root) and@home(user data) layout ready for instantaneous Btrfs snapshots and rollbacks. - Btrfs Async Discard: Native TRIM support maintaining NVMe and flash drive longevity without periodic performance hiccups.
- Hardware Sleep Simulation: Bridges the platform lack of ACPI S3 by leveraging cgroups v2 process freezing, single-core CPU parking, and DRM display blanking.
- Sub-Millisecond Wakeup: Instant resume via keyboard, mouse, or hardware power button.
- Clamshell Support: Native laptop lid detection for portable Raspberry Pi 5 & CM5 shells (uConsole, CrowView, Argon ONE UP).
- Event-driven, 0% idle overhead D-Bus daemon implementing
org.freedesktop.UPower.PowerProfiles. - Controlled natively through KDE Plasma's battery & power settings applet:
- Balanced (Default): Dynamic 0.5 ms ultra-low-latency
schedutilgovernor, power-efficient workqueues, balanced PCIe ASPM. - Performance: Maximum CPU clock frequency governor, unconstrained PCIe ASPM, maximum throughput.
- Power Saver: Frequency throttling, aggressive power saving, and automated background Wi-Fi powersave.
- Balanced (Default): Dynamic 0.5 ms ultra-low-latency
- 1000 Hz Timer Frequency: Real-time desktop responsiveness with
CONFIG_HZ_1000=yand16Kkernel memory pages. - ZRAM with ZSTD Compression: Dynamic compressed swap (
min(RAM, 8192 MB)) using fastzstdcompression, extending 2 GB / 4 GB / 8 GB models up to ~12β24 GB effective memory capacity. - EarlyOOM Desktop Protection: Guarantees that KDE Plasma, Wayland compositors, and audio daemons are never terminated during heavy multitasking memory pressure.
- TCP BBR & Network Stack Optimization: TCP BBR congestion control, fastopen, enlarged socket buffer ceilings, and local DNS caching via systemd-resolved.
- Multi-Rate PipeWire Engine: Supports native hardware sample rates (44.1 kHz, 48 kHz, 88.2 kHz, 96 kHz) without forced resampler overhead.
- Native Wayland Ozone (
--ozone-platform-hint=auto): Direct scanout and zero-latency integration with KWin Wayland, bypassing XWayland for butter-smooth 60 fps VSync. - Zero-Copy GPU Rasterization (
--enable-zero-copy): Direct memory buffer rasterization on VideoCore VII, drastically cutting RAM bandwidth and CPU cycles. - Canvas OOP Rasterization (
--enable-features=CanvasOopRasterization): Hardware-accelerated 2D canvas drawing decoupled from the renderer thread. - Stripped Accessibility Overhead: Automatically purges the CPU-heavy
--force-renderer-accessibilitytree computation inherited from legacy Raspberry Pi OS configs. - User Flags Config: Drop-in support for
~/.config/chromium-flags.confenabling clean, permanent user-level browser customizations.
- Download the latest release image (
krubus-pi5-*.img.xz) from GitHub Releases. - Write the image to your NVMe SSD, eMMC, or MicroSD card using Raspberry Pi Imager or BalenaEtcher:
- In Raspberry Pi Imager: Select Use custom and choose the downloaded
.img.xzfile.
- In Raspberry Pi Imager: Select Use custom and choose the downloaded
- Insert the media into your Raspberry Pi 5 / 500 / CM5 and power on.
- The first-boot wizard will guide you through setting up your user account, keyboard layout, and Wi-Fi connection.
If you already have a running Debian 13 (Trixie) ARM64 installation on a Raspberry Pi 5:
# 1. Install KRubus GPG Keyring
sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://gamingtux.github.io/KRubus/krubus.gpg -o /etc/apt/keyrings/krubus.gpg
# 2. Add KRubus APT Repository
echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/krubus.gpg] https://gamingtux.github.io/KRubus trixie main" | sudo tee /etc/apt/sources.list.d/krubus.list
# 3. Prioritize KRubus (+pi5) Packages
cat << 'EOF' | sudo tee /etc/apt/preferences.d/krubus-pi5.pref
Package: *
Pin: origin "gamingtux.github.io"
Pin-Priority: 1001
EOF
# 4. Refresh Package Lists and Upgrade
sudo apt update && sudo apt full-upgrade -y
# 5. Install the KRubus Desktop Metapackage
sudo apt install -y krubus-desktopKRubus follows a clean modular metapackage design, ensuring rolling updates automatically reach your installation via sudo apt upgrade:
| Package | Version | Description |
|---|---|---|
krubus-desktop |
1.0.1 |
Flagship metapackage pulling in KDE Plasma 6, SDDM, KWin Wayland, Dolphin, Konsole, Chromium, and all system tunings. |
krubus-default-settings |
1.0.9 |
Core system configuration: KRubus Dark theme, vector icons, ZRAM zstd, sysctl, EarlyOOM rules, PipeWire multi-rate, and Chromium performance configuration. |
rpi-power-profiles |
1.0.2 |
Event-driven D-Bus hardware power profiles daemon connecting KDE PowerDevil with BCM2712 CPU governors and PCIe ASPM. |
rpi-suspend |
1.5.2 |
Standby and sleep manager enabling instant <1 ms interrupt wakeup on Raspberry Pi 4/5 hardware. |
krubus-kernel-hook |
1.0.0 |
Kernel packaging hook maintaining the 1000 Hz dual-kernel configuration in /boot/firmware/kernel_2712.img. |
All packages in the KRubus APT repository are compiled with uncompromising, hardware-specific flags tailored exclusively for the BCM2712 SoC:
# Architecture & Cache Geometry
-mcpu=cortex-a76+crypto -mtune=cortex-a76 -mno-fix-cortex-a53-835769 -mno-fix-cortex-a53-843419 \
-mbranch-protection=none -mno-outline-atomics -mearly-ra=all \
--param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512
# Optimization & Code Generation
-O3 -ftree-vectorize -fvect-cost-model=dynamic -fomit-frame-pointer -fno-semantic-interposition \
-fno-math-errno -fno-trapping-math -ffp-contract=fast -fprefetch-loop-arrays -floop-interchange \
-floop-unroll-and-jam -fpeel-loops -funroll-loops -ftracer -fgraphite-identity -floop-nest-optimize -g0
# Link-Time Optimization & 16K Page Alignments
-flto=auto -ffat-lto-objects -fuse-linker-plugin -fdevirtualize-at-ltrans \
-Wl,-O3 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384packages.txtβ Comprehensive list of all 390+ upstream Debian source packages built with Cortex-A76-O3 + LTOoptimization.packages/β Native KRubus deb packages (krubus-desktop,krubus-default-settings,rpi-power-profiles,rpi-suspend,krubus-kernel-hook).build-repo.shβ Autonomous delta APT repository builder with self-healing LTO fallbacks, time budgeting, and GPG signing.generate-repo-index.pyβ Static site generator producing the searchable GitHub Pages catalog.sync-rpi-suspend.shβ Automated upstream sync script forrpi-suspend.pi-gen/β Official Raspberry Pi image generation pipeline configured with Btrfs rootfs and KDE Plasma stage modules..github/workflows/β Automated CI/CD workflows for APT repository updates and automated.img.xzrelease builds.
Contributions, hardware benchmarks, and feedback are warmly welcomed! Please feel free to open an issue or pull request.
- Distribution: Open-source software released under the terms of the GPL-2.0 / LGPL-2.1 and Debian licenses.
- Project Maintainer: GamingTux
- Website / APT Repo: https://gamingtux.github.io/KRubus/