Skip to content

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 04 Jun 16:24
v1.5.0 — stable naming + CPU max-freq cap + memory tunings + menu polish

This release combines three feature lines accumulated since v1.4.0:

== Stable interface naming by MAC ==

  - Module 03 offers (opt-in, default Y) to rename physical Ethernet NICs
    from PCI-volatile names (enpXsY) to stable role-based names
    (eth-lan, eth-diretta) via systemd-udevd .link drop-ins matched by
    MAC address. Survives NIC swap, added PCIe card, GPU insert/remove
    on hosts without an integrated GPU. Stack-agnostic — applied by udev
    before either NM or networkd starts.
  - Single canonical 10-diretta.link carries rename + MTU + offload-off
    in one file (udev applies only the first matching .link per device).
    Legacy 50-audiophile-diretta-*.link files from earlier installs are
    auto-migrated.
  - Modules 10/11 write /etc/default/diretta-renderer and slim2diretta
    using the stable names when configured (INTERFACE, TARGET_INTERFACE).
    NetworkManager profiles created with the stable names; legacy
    'diretta-<old-pci-name>' profiles are removed during migration.
  - Hardware offloads (gso/tso/gro/lro) disabled on the Diretta NIC by
    default — consumer NICs sometimes mishandle raw L2 frames under
    offloads. Costs negligible CPU on the isolated audio core(s).

== CPU max-frequency cap + memory MM jitter reducers ==

  - Module 06 gains an opt-in CPU max-frequency cap (defaults to 50%
    when answering Y; tune freely from /etc/default/audiophile-cpu-states
    + systemctl restart audiophile-cpu-states.service without re-running
    the wizard). Audiophile-lore option: less peak current draw → less
    perceived electrical noise on the DAC analog rail.
  - Module 06 also disables three sources of background MM jitter:
    Transparent Huge Pages (no periodic khugepaged scan), Kernel
    Samepage Merging (no periodic page-merge), and NUMA balancing
    (no async page migration). Always-on, no prompt — safe standard
    audiophile/RT tuning.
  - Walkthrough docs recommend disabling CPU Boost in the BIOS and
    describe the OS-first / BIOS-consolidation path for the max-freq cap.

== diretta-net-toggle hardening ==

  - _load_state validates that the cached NIC names still exist in the
    kernel before trusting them — fixes phantom file writes after PCI
    re-enumeration or stable-naming rename.
  - _require_networkd gives an actionable error when networkd is
    inactive, with concrete remediation depending on whether NM is
    active. Warns + confirms when BOTH NM and networkd are active
    (the fragile state where bridge gets undone by NM after a few
    seconds).
  - New 'purge' subcommand removes every file the tool ever wrote
    (by header tag, not by name), deletes the bridge device from the
    kernel, drops the state cache, and nudges the active manager —
    works regardless of which stack is active. Designed as the
    recovery path when stuck on NM after a failed switch.

== Menu and documentation polish ==

  - Interactive menu shows the file-prefix module number (NN) next to
    each module name (e.g. "2) 00 preflight"), so the leading menu
    choice no longer drifts away from the module numbers used in §13
    of the walkthrough. A new "Reading the menu" paragraph in §12
    explains the two-numbers point explicitly.
  - post-install-tuning.md §03 split into Step 1 (stable naming) and
    Step 2 (network stack choice). §10 description rewritten to cover
    the new canonical Diretta .link.
  - EN and FR walkthroughs gain rows in the per-module recommendations
    table: §03 stable-naming Y/N and auto-detect-roles Y/N; §06 CPU
    max-freq cap opt-in.

== Co-development credits ==

This release includes a substantial amount of code and documentation
co-authored with Claude Opus 4.7. See individual commits for per-file
authorship.