Files
ember-tune-rs/README.md
2026-02-27 17:04:47 +01:00

3.8 KiB

🔥 ember-tune

   __________  ____  ______ ____     ______  __  __ _   __ ______
  / ____/  |/  // __ )/ ____// __ \   /_  __/ / / / // | / // ____/
 / __/  / /|_/ // __  / __/  / /_/ /    / /   / / / //  |/ // __/
/ /___ / /  / // /_/ / /___ / _, _/    / /   / /_/ // /|  // /___
/_____//_/  /_//_____/_____//_/ |_|     /_/    \____//_/ |_//_____/

  >>> Physically-grounded thermal & power optimization for Linux <<<

Find your hardware's "Physical Sweet Spot" through automated trial-by-fire.

ember-tune is a scientifically-driven hardware optimizer that replaces guesswork and manual tuning with a rigorous, automated engineering workflow. It determines the unique thermal properties of your specific laptop—including its Thermal Resistance (Rθ) and "Silicon Knee"—to generate optimal configurations for common Linux tuning daemons.

Features

  • Automated Physical Benchmarking: Measures real-world thermal performance under load to find the true "sweet spot" where performance-per-watt is maximized before thermal saturation causes diminishing returns.
  • Heuristic Hardware Discovery: Utilizes a data-driven Hardware Abstraction Layer (SAL) that probes your system and automatically adapts to its unique quirks, drivers, and sensor paths.
  • Non-Destructive Configuration: Safely merges new, optimized power limits into your existing throttled.conf, preserving manual undervolt settings and comments.
  • Universal Safeguard Architecture (USA): Includes a high-frequency concurrent watchdog and RAII state restoration to guarantee your system is never left in a dangerous state.
  • Real-time TUI Dashboard: A ratatui-based terminal interface provides high-resolution telemetry throughout the benchmark.

🔬 How it Works: The Architecture

ember-tune is built on a decoupled, multi-threaded architecture to ensure the UI is always responsive and that hardware state is managed safely.

  1. The Heuristic Engine: On startup, the engine probes your system's DMI, sysfs, and active services. It compares these "facts" against the hardware_db.toml to select the correct System Abstraction Layer (SAL).
  2. The Orchestrator (Backend Thread): This is the state machine that executes the benchmark. It communicates with hardware only through the SAL traits.
  3. The TUI (Main Thread): The ratatui dashboard renders TelemetryState snapshots received from the orchestrator via an MPSC channel.
  4. The Watchdog (Safety Thread): A high-priority thread that polls safety sensors every 100ms to trigger an atomic EmergencyAbort if failure conditions are met.

⚙️ Development Setup

ember-tune is a standard Cargo project.

Prerequisites:

  • rustup
  • build-essential
  • libudev-dev
  • stress-ng (Required for benchmarking)
# 1. Clone and Build
git clone https://gitea.com/narl/ember-tune.git
cd ember-tune
cargo build --release

# 2. Run the safe test suite
cargo test

Running:

# Run a full benchmark
sudo ./target/release/ember-tune

# Run a mock benchmark for UI testing
sudo ./target/release/ember-tune --mock

🤝 Contributing Quirk Data (hardware_db.toml)

This is the most impactful way to contribute. If your hardware isn't working perfectly, add a new entry to assets/hardware_db.toml.

Example: Adding a Service Conflict

[[conflicts]]
id = "laptop_mode_conflict"
services = ["laptop-mode.service"]
contention = "Multiple - I/O schedulers, Power limits"
severity = "Medium"
fix_action = "SuspendService"
help_text = "laptop-mode-tools can override power-related sysfs settings."

Example: Defining a Model-Specific Quirk

[[quirks]]
model_regex = "HP Envy 15-ep.*"
id = "hp_fan_stuck_sensor"
issue = "Fan sensor reports 0 RPM when active."
action = "UseThermalVelocityFallback"