unraid-cpufreq-inject — Installationsanleitung
Live CPU-Frequenz im Unraid Dashboard · Kein Plugin Manager · Update-sicher
Unraid 6.x / 7.x PHP JavaScript Menu="Buttons" kein Neustart nötig

📋 Inhaltsverzeichnis

  1. Wie funktioniert es?
  2. Dateien & Struktur
  3. Installation — One-Liner (empfohlen)
  4. Installation — Manuell (Schritt für Schritt)
  5. Update
  6. Deinstallation
  7. Verhalten bei Unraid-Updates
  8. Fehlerbehebung
  9. Nützliche Befehle

1 Wie funktioniert es?

Unraid zeigt auf dem Dashboard die CPU-Bezeichnung statisch beim Booten an — z.B. Intel Core i9-9900T @ 2.10GHz. Die angezeigte Frequenz ist die Basis-Taktfrequenz aus dem Prozessor-Modellnamen, nicht die aktuelle.

Dieses Plugin ergänzt das Dashboard um eine live aktualisierte Frequenzanzeige direkt dahinter: Intel Core i9-9900T @ 2.10GHz (current: 3.84 GHz)

Technischer Ablauf

#KomponenteAufgabe
1cpufreq-data.phpLiest /proc/cpuinfo (Fallback: /sys/.../scaling_cur_freq), gibt alle Core-Frequenzen als JSON zurück
2inject.pageWird von Unraid bei jedem Seitenaufruf eingebunden (Menu="Buttons"), pollt das PHP-Backend jede Sekunde
3JavaScriptBerechnet Durchschnitt aller Cores, sucht den CPU-Block via i.icon-cpu (hardware-agnostisch), hängt den Span an
4/boot/config/goSetzt den Symlink bei jedem Boot neu — überlebt Unraid-Updates

Warum Menu="Buttons"? Unraid kennt drei Page-Kategorien: Tasks, Buttons und normale Seiten. Nur Buttons-Pages werden in DefaultPageLayout.php bei jedem Seitenaufruf gerendert — ideal für globale Injektionen. Menu="" wird ignoriert und der Script läuft nie.

Keine Core-Dateien werden verändert. Das Plugin modifiziert keine Unraid-Systemdateien. Alles liegt in /boot/config/plugins/cpufreq-inject/ auf dem USB-Stick.

2 Dateien & Struktur

unraid-cpufreq-inject/ ├── cpufreq-data.php # PHP-Backend: liefert CPU-MHz als JSON ├── inject.page # Unraid Page-Definition: injiziert JS global ├── install.sh # Installer-Script ├── uninstall.sh # Deinstaller-Script └── README.md # Dokumentation (englisch)

Nach der Installation auf dem Unraid-Server:

/boot/config/plugins/cpufreq-inject/ # auf USB-Stick → überlebt Updates ├── cpufreq-data.php └── inject.page /usr/local/emhttp/plugins/cpufreq-inject # Symlink → wird bei Boot neu gesetzt
DateiGrößeBeschreibung
cpufreq-data.php~3 KBLiest CPU-MHz, Temperaturen, RAM, Load, Netzwerk aus /proc und /sys
inject.page<1 KBUnraid-Page mit Menu="Buttons" Header + minifiziertes JS
install.sh~2 KBErstellt Verzeichnis, lädt Files herunter, setzt Symlink, trägt in /boot/config/go ein
uninstall.sh<1 KBEntfernt Symlink, Verzeichnis und go-Eintrag

3 Installation — One-Liner (empfohlen)

Per SSH auf den Unraid-Server verbinden und ausführen:

curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/install.sh | bash

Danach im Browser Hard-Refresh auf dem Dashboard:

Ctrl+Shift+R

Erwartetes Ergebnis: Neben der CPU-Bezeichnung erscheint (current: X.XX GHz) — aktualisiert sich jede Sekunde.

Erwartete Ausgabe des Installers

╔══════════════════════════════════════════════════╗
║        unraid-cpufreq-inject Installer          ║
╚══════════════════════════════════════════════════╝

[1/5] Plugin-Verzeichnis: /boot/config/plugins/cpufreq-inject
[2/5] Lade Files herunter...
      cpufreq-data.php  ✓
      inject.page       ✓
[3/5] Symlink: /usr/local/emhttp/plugins/cpufreq-inject -> /boot/config/plugins/cpufreq-inject
[4/5] /boot/config/go aktualisieren...
      Eintrag gesetzt ✓
[5/5] Abgeschlossen

✓ unraid-cpufreq-inject installiert
  → Browser Hard-Refresh (Ctrl+Shift+R) auf dem Unraid Dashboard

4 Installation — Manuell (Schritt für Schritt)

Für alle die lieber wissen was passiert, oder wenn kein Internet-Zugang vom Server aus besteht.

4.1 Plugin-Verzeichnis anlegen

mkdir -p /boot/config/plugins/cpufreq-inject

4.2 Files herunterladen

curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/cpufreq-data.php \
  -o /boot/config/plugins/cpufreq-inject/cpufreq-data.php

curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/inject.page \
  -o /boot/config/plugins/cpufreq-inject/inject.page

4.3 Symlink aktivieren

Unraid's Webserver sucht Plugins unter /usr/local/emhttp/plugins/. Ein Symlink auf den USB-Stick genügt:

ln -sf /boot/config/plugins/cpufreq-inject /usr/local/emhttp/plugins/cpufreq-inject

4.4 Symlink boot-persistent machen

Damit der Symlink nach jedem Neustart und nach Unraid-Updates automatisch neu gesetzt wird:

echo "" >> /boot/config/go
echo "# cpufreq-inject – live CPU frequency on Unraid dashboard" >> /boot/config/go
echo "ln -sf /boot/config/plugins/cpufreq-inject /usr/local/emhttp/plugins/cpufreq-inject" >> /boot/config/go

4.5 Prüfen

ls -la /usr/local/emhttp/plugins/ | grep cpufreq
cat -n /boot/config/go

Erwartete Ausgabe:
lrwxrwxrwx ... cpufreq-inject -> /boot/config/plugins/cpufreq-inject

Browser Hard-Refresh (Ctrl+Shift+R) — fertig.

5 Update

Den Installer erneut ausführen — er ersetzt die Files und bereinigt veraltete /boot/config/go-Einträge automatisch:

curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/install.sh | bash

Hinweis: Der Installer ist idempotent — er kann beliebig oft ausgeführt werden ohne Duplikate oder Fehler zu verursachen.

6 Deinstallation

One-Liner

curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/uninstall.sh | bash

Manuell

rm -f /usr/local/emhttp/plugins/cpufreq-inject
rm -rf /boot/config/plugins/cpufreq-inject
sed -i '/cpufreq-inject/Id' /boot/config/go

Browser Hard-Refresh (Ctrl+Shift+R) — die Anzeige verschwindet sofort.

7 Verhalten bei Unraid-Updates

Was passiert beim Update?AuswirkungLösung
/boot/config/plugins/cpufreq-inject/ ✓ Bleibt erhalten Liegt auf dem USB-Stick (/boot), wird nicht angefasst
/usr/local/emhttp/plugins/cpufreq-inject (Symlink) ⚠ Wird gelöscht Wird beim nächsten Boot automatisch neu gesetzt via /boot/config/go
/boot/config/go ✓ Bleibt erhalten Auf USB-Stick, enthält den ln -sf Befehl

Nach jedem Unraid-Update: Kein manueller Eingriff nötig. Nach dem Neustart setzt /boot/config/go den Symlink automatisch neu und das Plugin ist sofort wieder aktiv.

Ausnahme: Falls Unraid in einem zukünftigen Update den Menu="Buttons"-Mechanismus oder die i.icon-cpu CSS-Klasse ändert, muss das Plugin angepasst werden. Das ist jedoch sehr unwahrscheinlich da es sich um Core-UI-Elemente handelt.

8 Fehlerbehebung

Anzeige erscheint nicht nach Hard-Refresh

Prüfen ob das Script überhaupt im Dashboard-HTML landet:

curl -s --cookie "unraidgui=1" http://localhost/ | grep -c "cpufreq-ghz"

Ergebnis 0: Script wird nicht injiziert — Symlink oder inject.page prüfen.
Ergebnis 1: Script ist im HTML, aber JS funktioniert nicht — Browser-Konsole öffnen (F12).

Symlink prüfen

ls -la /usr/local/emhttp/plugins/ | grep cpufreq

Korrekt: lrwxrwxrwx ... cpufreq-inject -> /boot/config/plugins/cpufreq-inject

PHP-Backend direkt testen

Aus dem Browser (eingeloggt in Unraid) aufrufen:

http://UNRAID-IP/plugins/cpufreq-inject/cpufreq-data.php

Erwartete Ausgabe: JSON mit cpu_mhz, temps, ram, etc.

302 Redirect via curl: Normal — das PHP-Script benötigt eine Browser-Session. Nur im Browser oder via JavaScript (mit Cookies) aufrufbar.

inject.page Inhalt prüfen

head -3 /boot/config/plugins/cpufreq-inject/inject.page

Erste Zeile muss sein: Menu="Buttons" — nicht Menu="" oder leer!

/boot/config/go prüfen

cat -n /boot/config/go

Muss enthalten: ln -sf /boot/config/plugins/cpufreq-inject /usr/local/emhttp/plugins/cpufreq-inject

Alle Files vorhanden?

ls -la /boot/config/plugins/cpufreq-inject/

Erwartet: cpufreq-data.php und inject.page

9 Nützliche Befehle

Installationsstatus prüfen:

ls -la /usr/local/emhttp/plugins/ | grep cpufreq && head -3 /boot/config/plugins/cpufreq-inject/inject.page

Symlink manuell neu setzen (nach Update ohne Neustart):

ln -sf /boot/config/plugins/cpufreq-inject /usr/local/emhttp/plugins/cpufreq-inject

inject.page manuell neu laden (ohne Neustart):

cp /boot/config/plugins/cpufreq-inject/inject.page /usr/local/emhttp/plugins/cpufreq-inject/inject.page

Alle cpufreq-Einträge aus go entfernen (Cleanup):

sed -i '/cpufreq-inject/Id' /boot/config/go

Aktuelle CPU-Frequenz direkt aus /proc lesen:

grep "cpu MHz" /proc/cpuinfo | awk '{sum+=$4; count++} END {printf "Durchschnitt: %.0f MHz (%.2f GHz)\n", sum/count, sum/count/1000}'

📋 Kurzreferenz

Die wichtigsten Befehle auf einen Blick:

## INSTALLIEREN
curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/install.sh | bash

## DEINSTALLIEREN
curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/uninstall.sh | bash

## UPDATEN
curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/install.sh | bash

## PRÜFEN
ls -la /usr/local/emhttp/plugins/ | grep cpufreq
head -3 /boot/config/plugins/cpufreq-inject/inject.page
cat -n /boot/config/go

## WICHTIGE PFADE
/boot/config/plugins/cpufreq-inject/   → Plugin-Files (USB, persistent)
/usr/local/emhttp/plugins/cpufreq-inject  → Symlink (wird bei Boot gesetzt)
/boot/config/go                         → Boot-Script (enthält ln -sf Befehl)

## INJECT.PAGE MUSS BEGINNEN MIT
Menu="Buttons"     ← nicht Menu="" !