- Shell 95.6%
- Python 4.4%
| battery.sh | ||
| bench | ||
| charge.sh | ||
| common.sh | ||
| cpu.sh | ||
| device.conf.example | ||
| gpu.sh | ||
| README.md | ||
| setup.sh | ||
| stats.py | ||
| storage.sh | ||
| wifi.sh | ||
notebook-bench
Reproduzierbare Notebook-Testsuite fuer Linux. Modulare Shell-Skripte, jedes
Modul schreibt eine maschinenlesbare results/*.json (mit komplettem
Umgebungs-Snapshot) plus Logausgabe. Statistik (Median/Min/Max ueber
Wiederholungen) und JSON-Bau laufen ueber helpers/stats.py (reines stdlib).
Schnellstart
git clone <repo> && cd notebook-bench
./setup.sh # Tools + Video-Clip holen (s.u.)
cp config/device.conf.example config/device.conf # pro Geraet anpassen
./bench quick # storage + cpu + gpu + wifi (keine Akkutests)
./bench storage # einzelnes Modul
./bench battery run idle # Akkulaufzeit (laeuft bis Abschaltung), siehe unten
Ergebnisse landen in results/<host>_<modul>_<zeit>.json.
Setup (./setup.sh)
Holt alles aufs Geraet und schreibt gefundene Pfade nach config/tools.conf
(automatisch geladen, getrennt von der handgepflegten device.conf):
- OSS-Tools ueber den Paketmanager der Distribution (apt oder dnf,
autoerkannt aus
/etc/os-release). Kernpakete: fio, iperf3, p7zip, mpv, brightnessctl, unzip, curl. Optional: vkmark, glmark2, lm-sensors, iw, NetworkManager, mesa-utils (glxinfo), dmidecode. - Proprietaer, Linux-nativ nach
./tools/:- Geekbench 6 (CDN-Tarball, Version live ermittelt, sonst gepinnter Fallback). Die freie CLI laedt Ergebnisse zur Geekbench-Browser-Seite hoch.
- GravityMark (Linux-
.run-Self-Installer von Tellusim; Vulkan, freie CLI-Automatisierung). Schlaegt das headless-Entpacken fehl, gibt das Setup den manuellen Befehl aus und du traegstGRAVITYMARK_BINselbst ein.
- Referenz-Videoclip (Big Buck Bunny 1080p60) nach
./assets/fuer den Akku-Videotest;VIDEO_CLIPwird gesetzt.
Optionen: --skip-oss, --skip-proprietary, --skip-video.
Auf immutablen Systemen (rpm-ostree, z.B. Bazzite/Silverblue) warnt das Setup,
dass Systempakete ggf. ueber rpm-ostree install + Reboot oder distrobox/brew
gelayert werden muessen.
Unigine Superposition ist bewusst nicht dabei: dessen CLI-Automatisierung ist
Pro-only (die freie Version startet nur per GUI), es ist OpenGL-only von 2019
mit fragilen Qt-Abhaengigkeiten. GravityMark ist der modernere, skriptbare
Ersatz. Wer Superposition dennoch will, setzt SUPERPOSITION_BIN manuell.
Module und Tools
| Modul | Tool(s) | Lizenz |
|---|---|---|
| storage | fio | FOSS |
| wifi | iperf3 (+ iw/nmcli fuer Kontext/Wechsel) | FOSS |
| cpu | Geekbench 6 CLI (opt.) + 7-Zip | propr. / FOSS |
| gpu | GravityMark/Superposition (opt.) + vkmark/glmark2 | propr. / FOSS |
| battery | sysfs + mpv/glmark2 (Last) | FOSS |
| charge | sysfs | FOSS |
Pakete (Beispiel Debian/Ubuntu):
apt install fio iperf3 p7zip-full vkmark glmark2 mpv brightnessctl lm-sensors iw network-manager.
dmidecode (BIOS-Version) und das Setzen des Performance-Profils brauchen root.
Reproduzierbarkeit – was die Suite automatisch macht
- Umgebungs-Snapshot in jeder JSON: Kernel, CPU+Microcode, BIOS, RAM, Mesa/GL, Governor/EPP, Platform-Profile, Power-Profile, AC-Status.
- Leistungsprofil: Peak-Tests (cpu/gpu, 3D-Akku) setzen
performance(power-profiles-daemon / platform_profile / cpufreq-Governor) und stellen den Originalzustand per Trap wieder her. - Thermik: Cooldown bis unter Zieltemperatur zwischen Laeufen, ein verworfener Warm-up-Lauf, Throttling-Ueberwachung waehrend des nT-Laufs.
- Wiederholungen: Default 3x, Ausgabe Median + Min/Max (
NB_REPEATS). - AC/Akku-Pruefung: Peak-Tests verlangen Netz, Akkutests verlangen Akku.
Wichtige methodische Hinweise
- cd/m² ist nicht rein in Software setzbar. Die Suite setzt einen
Backlight-Rohwert reproduzierbar; den musst du einmal pro Panel mit einem
Luminanzmessgeraet auf 100/200 cd/m² kalibrieren und in
device.confhinterlegen (BRIGHT_RAW_100/200/MAX). - Storage misst Burst/Peak, nicht Steady-State:
direct=1umgeht den Page-Cache, die Datei sollte groesser als der SLC-Cache der SSD sein (STORAGE_SIZE). Fuer Steady-State:storage.sh --steady-state. - Cinebench 2024 und 3DMark laufen nicht nativ unter Linux. cpu/gpu liefern Linux-native Ersatzwerte (Geekbench/7-Zip bzw. GravityMark/vkmark) — ueber deine Geraete vergleichbar, aber nicht in die Cinebench-/3DMark-Spalte einsetzbar. Als eigene Spalten fuehren.
- Akkulaufzeit = Run-to-Depletion.
battery runfaehrt das Geraet leer und loggt jede Zeile mitsync. Nach dem Reboot:./bench battery analyze results/<...>.csvrechnet die Laufzeit aus (Wanduhr Start→Abschaltung, linear auf 0 % extrapoliert). - Helligkeit/Suspend-Inhibit im Akkutest sind Desktop-abhaengig (logind, GNOME, xset) und werden „best effort" gesetzt; Warnungen landen in der JSON.
Nicht enthalten
Geraeusch (extern, Mikrofon), Audioqualitaet/Dynamikumfang (braucht Referenz-ADC per Loopback) und NPU (Procyon; auf Linux treiber-/herstellerabhaengig und unreif). Bewusst aus v1 herausgehalten — koennen als Module nachgezogen werden.
Rueckabbildung auf die Zieltabelle
- Laufzeit Idle/Video/3D →
battery run {idle|video|3d}+analyze - Ladestand nach 1 h →
charge - Massenspeicher lesen/schreiben →
storage(seq_read_mbs/seq_write_mbs) - WLAN 6/5/2,4 GHz →
wifi(je Band download/upload, Min–Max passt zur Range) - CPU 1T/nT →
cpu(geekbench6.single/multi, FOSS-Fallbackp7zip_mips_*) - GPU →
gpu(gravitymark/superposition, FOSS-Fallbackvkmark/glmark2) - Geraeusch / Audio / NPU → nicht enthalten (s. o.)