Skip to content

V.1 ArchibaldOS release

Latest

Choose a tag to compare

@ALH477 ALH477 released this 10 Nov 05:10
· 167 commits to main since this release
bd4fb93

ArchibaldOS: Lean Real-Time Audio NixOS Variant

ISO

Overview

ArchibaldOS is a customized, minimal NixOS distribution optimized for real-time (RT) audio production. It leverages Musnix for low-latency audio configurations, PipeWire for audio handling, and KDE Plasma 6 as the desktop environment. This variant is designed for musicians, audio engineers, and producers who need a stable, performant system for tools like DAWs (Digital Audio Workstations), synthesizers, and effects plugins.

Key principles:

  • Minimalism: Stripped-down setup focusing on RT audio essentials, avoiding bloat.
  • Oligarchy Philosophy: A "minimal oligarchy" approach—prioritizing a small set of elite, high-performance components (e.g., RT kernel, low-latency PipeWire) over broad compatibility.
  • Branding: Custom DeMoD LLC branding, including boot splash, wallpapers, and optional ASCII art in the installer.
  • Live ISO with Installer: Built as a bootable ISO with a graphical Calamares installer for easy deployment.

This project is built using Nix flakes for reproducibility and declarative configuration. It's based on NixOS 24.11, with inputs from Musnix (for RT audio) and Disko (for declarative disk partitioning during installation).

Features

Real-Time Audio Optimization

  • Musnix Integration: Enables RT kernel (latest RT patches), ALSA sequencer, RTIRQ for interrupt prioritization, and DAS watchdog for stability.
  • PipeWire Configuration: Low-latency setup with 32-sample quantum at 48kHz sample rate. Supports ALSA, PulseAudio emulation, and JACK for compatibility with pro-audio apps.
  • Security Limits: PAM limits for the audio group allow high RT priority (up to 95), unlimited memory lock, and high file descriptors.
  • Kernel Tweaks: Parameters like threadirqs, CPU isolation (isolcpus=1-3), nohz_full for reduced latency, and performance governor. Swappiness set to 0, increased inotify watches.
  • Audio Hardware Support: Modules for USB audio/MIDI, with low-latency options. Graphics drivers for Intel (with AMD/NVIDIA options commented out).
  • Pre-Installed Audio Tools: A curated set including:
    • DAWs/Editors: Audacity, MuseScore, Zrythm, Carla, PureData, Cardinal, Helm.
    • Synths/Effects: Surge, ZynAddSubFX, Guitarix, Dragonfly Reverb, Calf plugins.
    • Utilities: QJackCtl, VMidi Keyboard (VMPK), QMidiNet, Faust (with ALSA/JACK/CSound backends), SuperCollider, CSound (with Qt GUI).
    • MIDI/Soundfonts: FluidSynth, PortAudio, RtAudio.

Desktop Environment

  • KDE Plasma 6: Lightweight, Wayland-enabled for better performance. SDDM display manager with auto-login in live mode.
  • Basic Utilities: Vim, Kitty terminal, WirePlumber (PipeWire GUI), CAVA (audio visualizer), PlayerCtl (media controls).
  • Fonts: JetBrains Mono for coding, Noto Emoji for broad support.

Installation and Usability

  • Graphical Installer: Calamares with Plasma 6 interface for partitioning, user setup, and installation.
  • Disko Support: Declarative disk management for reproducible installs.
  • Live Mode: Boot into a live Plasma session as nixos user (auto-login). Test audio setup before installing.
  • Users:
    • nixos: Default live user with sudo access (initial password: "nixos" post-install).
    • audio-user: Dedicated audio user with RT groups (audio, jackaudio, video, wheel). Home at /home/audio-user.
  • Branding Options (configurable via Nix):
    • ASCII art in TUI installer (optional, adds minor delay).
    • Plymouth boot splash with DeMoD logo.
    • Wallpapers: Deployed system-wide to /usr/share/wallpapers/ArchibaldOS, with symlinks/scripts for Plasma, GNOME, XFCE, and fallback to ~/Pictures/Wallpapers.
  • System Utilities: USB tools, ALSA firmware, NetworkManager, dialog, mkpasswd for setup.

Performance Enhancements

  • Disable Non-Essentials: Systemd service to stop NetworkManager and Bluetooth on boot (for RT purity; re-enable if needed).
  • ASound Config: Defaults to 48kHz, 32-bit float, low buffer for pro-audio.
  • Ardour Tweaks: Custom ardour.rc for 32-sample buffer at 48kHz.
  • Dev Shell: A Nix shell with audio tools for development/testing.

Requirements

  • Hardware:
    • x86_64 CPU (with at least 4 cores recommended for CPU isolation).
    • Compatible audio interface (USB preferred; tested with ALSA/JACK).
    • Graphics: Intel integrated (AMD/NVIDIA support via uncommented options).
    • At least 4GB RAM (8GB+ for heavy audio workloads).
  • Software:
    • Nix with flakes enabled (nix.settings.experimental-features = [ "nix-command" "flakes" ];).
  • Build Environment: Allow unfree packages (nixpkgs.config.allowUnfree = true;) and permit insecure QtWebEngine for Calamares.

Building the ISO

  1. Clone the repository:

    git clone <repo-url>
    cd archibaldos
    
  2. Build the installer ISO:

    nix build .#installer
    
    • This outputs result/iso/archibaldos-<version>.iso.
    • The build includes all modules and branding.
  3. (Optional) Enter dev shell for testing audio tools:

    nix develop
    
    • This loads tools like Audacity, SuperCollider, etc.

Creating a Bootable USB

  • Use dd (Linux/Mac):

    sudo dd if=result/iso/archibaldos-<version>.iso of=/dev/sdX bs=4M status=progress && sync
    

    Replace /dev/sdX with your USB device (use lsblk to identify).

  • Or use tools like Rufus (Windows) or Etcher.

Installation Guide

  1. Boot the ISO:

    • Boot from USB/CD. Select the ISO in BIOS/UEFI.
    • In live mode: Auto-logs in as nixos (no password). Test audio with pre-installed tools (e.g., run qjackctl for JACK setup).
  2. Run the Installer:

    • Launch Calamares from the desktop or menu.
    • Partitioning: Use Disko/Calamares for guided or manual setup. Recommend EFI system if UEFI.
    • Users: Set up passwords. audio-user is pre-defined but disabled in live mode—enable post-install if needed.
    • Networking: Connect via NetworkManager if required.
    • Proceed with installation.
  3. Post-Install:

    • Reboot into installed system.
    • Login as nixos (password: "nixos") or audio-user (set during install).
    • For RT audio: Add users to audio group if not already (sudo usermod -aG audio <user>).
    • Test latency: Run jackd or PipeWire apps. Use rtirq status to check priorities.
    • Customize: Edit /etc/nixos/configuration.nix (or flake) and nixos-rebuild switch.

    Notes:

    • In live mode, audio-user is a system user (hidden from login) to satisfy assertions.
    • Wallpapers are auto-deployed; set in Plasma settings.
    • For NVIDIA: Uncomment hardware options in flake.nix and rebuild.

Usage Tips

  • Audio Testing:

    • Run /etc/live-audio-test.sh (if present) for a quick latency test.
    • Use QJackCtl to manage JACK sessions.
    • For visualization: Run CAVA in terminal (cava).
  • Customization:

    • Branding: Disable via branding.enable = false; in modules.
    • Kernel: Switch to non-RT via musnix.kernel.realtime = false;.
    • Add Packages: Edit audio.nix or desktop.nix and rebuild.
    • Wallpaper Paths: Add to branding.wallpaperPaths list.
  • Troubleshooting:

    • High latency? Check cat /proc/interrupts for IRQ conflicts; adjust isolcpus.
    • No sound? Ensure PipeWire is running (systemctl --user status pipewire).
    • Build errors: Ensure allowUnfree and permitted insecure packages.
    • For AMD GPUs: Uncomment amdvlk in flake.nix.

Contributing

  • Fork and PR changes to modules or flake.
  • Report issues: Include Nix version, hardware specs, and logs (e.g., dmesg | grep audio).
  • Suggestions: Focus on RT audio improvements or minimalism.

License

This project is licensed under the MIT License (or specify if different). DeMoD LLC branding assets are proprietary—contact for usage.

Built by DeMoD LLC | Version: Based on NixOS 24.11 | Last Updated: November 2025

For questions, reach out on X @demodllc or via repo issues.