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)
| # | Komponente | Aufgabe |
|---|---|---|
| 1 | cpufreq-data.php | Liest /proc/cpuinfo (Fallback: /sys/.../scaling_cur_freq), gibt alle Core-Frequenzen als JSON zurück |
| 2 | inject.page | Wird von Unraid bei jedem Seitenaufruf eingebunden (Menu="Buttons"), pollt das PHP-Backend jede Sekunde |
| 3 | JavaScript | Berechnet Durchschnitt aller Cores, sucht den CPU-Block via i.icon-cpu (hardware-agnostisch), hängt den Span an |
| 4 | /boot/config/go | Setzt 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.
Nach der Installation auf dem Unraid-Server:
| Datei | Größe | Beschreibung |
|---|---|---|
cpufreq-data.php | ~3 KB | Liest CPU-MHz, Temperaturen, RAM, Load, Netzwerk aus /proc und /sys |
inject.page | <1 KB | Unraid-Page mit Menu="Buttons" Header + minifiziertes JS |
install.sh | ~2 KB | Erstellt Verzeichnis, lädt Files herunter, setzt Symlink, trägt in /boot/config/go ein |
uninstall.sh | <1 KB | Entfernt Symlink, Verzeichnis und go-Eintrag |
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.
╔══════════════════════════════════════════════════╗
║ 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
Für alle die lieber wissen was passiert, oder wenn kein Internet-Zugang vom Server aus besteht.
mkdir -p /boot/config/plugins/cpufreq-inject
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
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
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
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.
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.
curl -fsSL https://raw.githubusercontent.com/Qauttrolab/unraid-cpufreq-inject/main/uninstall.sh | bash
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.
| Was passiert beim Update? | Auswirkung | Lö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.
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).
ls -la /usr/local/emhttp/plugins/ | grep cpufreq
Korrekt: lrwxrwxrwx ... cpufreq-inject -> /boot/config/plugins/cpufreq-inject
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.
head -3 /boot/config/plugins/cpufreq-inject/inject.page
Erste Zeile muss sein: Menu="Buttons" — nicht Menu="" oder leer!
cat -n /boot/config/go
Muss enthalten: ln -sf /boot/config/plugins/cpufreq-inject /usr/local/emhttp/plugins/cpufreq-inject
ls -la /boot/config/plugins/cpufreq-inject/
Erwartet: cpufreq-data.php und inject.page
ls -la /usr/local/emhttp/plugins/ | grep cpufreq && head -3 /boot/config/plugins/cpufreq-inject/inject.page
ln -sf /boot/config/plugins/cpufreq-inject /usr/local/emhttp/plugins/cpufreq-inject
cp /boot/config/plugins/cpufreq-inject/inject.page /usr/local/emhttp/plugins/cpufreq-inject/inject.page
sed -i '/cpufreq-inject/Id' /boot/config/go
grep "cpu MHz" /proc/cpuinfo | awk '{sum+=$4; count++} END {printf "Durchschnitt: %.0f MHz (%.2f GHz)\n", sum/count, sum/count/1000}'
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="" !