No description
  • Shell 95.6%
  • Python 4.4%
Find a file
2026-05-27 04:30:20 -07:00
battery.sh Dateien nach „/“ hochladen 2026-05-27 04:29:50 -07:00
bench Dateien nach „/“ hochladen 2026-05-27 04:29:50 -07:00
charge.sh Dateien nach „/“ hochladen 2026-05-27 04:29:50 -07:00
common.sh Dateien nach „/“ hochladen 2026-05-27 04:29:50 -07:00
cpu.sh Dateien nach „/“ hochladen 2026-05-27 04:29:50 -07:00
device.conf.example Dateien nach „/“ hochladen 2026-05-27 04:30:07 -07:00
gpu.sh Dateien nach „/“ hochladen 2026-05-27 04:30:07 -07:00
README.md Dateien nach „/“ hochladen 2026-05-27 04:30:07 -07:00
setup.sh Dateien nach „/“ hochladen 2026-05-27 04:30:07 -07:00
stats.py Dateien nach „/“ hochladen 2026-05-27 04:30:07 -07:00
storage.sh Dateien nach „/“ hochladen 2026-05-27 04:30:20 -07:00
wifi.sh Dateien nach „/“ hochladen 2026-05-27 04:30:20 -07:00

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 traegst GRAVITYMARK_BIN selbst ein.
  • Referenz-Videoclip (Big Buck Bunny 1080p60) nach ./assets/ fuer den Akku-Videotest; VIDEO_CLIP wird 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.conf hinterlegen (BRIGHT_RAW_100/200/MAX).
  • Storage misst Burst/Peak, nicht Steady-State: direct=1 umgeht 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 run faehrt das Geraet leer und loggt jede Zeile mit sync. Nach dem Reboot: ./bench battery analyze results/<...>.csv rechnet 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, MinMax passt zur Range)
  • CPU 1T/nT → cpu (geekbench6.single/multi, FOSS-Fallback p7zip_mips_*)
  • GPU → gpu (gravitymark/superposition, FOSS-Fallback vkmark/glmark2)
  • Geraeusch / Audio / NPU → nicht enthalten (s. o.)