Internet, Linux & IT

Undervolting lohnt sich!

In den letzten Tagen habe ich mich mit dem Undervolting meines Prozessors und meiner Grafikkarte beschäftigt. Undervolting bei CPUs und GPUs bedeutet, dass man die Betriebsspannung (Voltage) der Prozessoren absenkt, ohne dabei (idealerweise) die Leistung spürbar zu beeinträchtigen. Ziel ist es, den Stromverbrauch und die Hitzeentwicklung zu reduzieren.

Undervolting des Prozessors AMD Ryzen 9950X3D

Hierzu stehen direkt im UEFI (Bios) verschiedene Tools zur Verfügung, unter anderem der Curve Optimizer und der Curve Shaper. Ich habe mich an dem Video von ParteeMike Tech orientiert, aber nur das Undervolting umgesetzt und keine Overclocking-Maßnahmen vorgenommen. Dabei habe ich festgestellt, dass mein Prozessor bei -30mV auf allen Kernen stabil läuft, und daher auch nur im Curve Optimizer entsprechende Einstellungen vorgenommen. Stabilität kann man u.a. mit dem kostenlosen Tool CoreCycler testen, darf aber neben der Stabilität unter Last auch das Verhalten im Leerlauf nicht vernachlässigen.

Curve Optimizer Einstellungen für den Ryzen 9950X3D im UEFI (Bios)

Die Ergebnisse können sich durchaus sehen lassen: Durch diese eine Einstellung verbraucht der Prozessor im Einzelkernbetrieb 21% weniger Energie bei 2% höherer Performance im Vergleich zu den Werkseinstellungen. Im Mehrkernbetrieb mit allen 16 Kernen sind es zwar nur 4% Energieersparnis, aber immerhin 4% Performancesteigerung. In der Praxis wird die relative Energieersparnis/Leistungssteigerung wohl irgendwo dazwischen liegen, da beispielsweise in Spielen nur 8 der insgesamt 16 Kerne verwendet werden.

Cinebench R23 - Single Core Performance Punkte Performance relativ Leistungs- aufnahme Watt Leistungs- aufnahme relativ
Werks- einstellungen 2.215 100 % 70 W 100 %
Core Optimizer: All Cores @ -30mV 2.269 102 % 55 W 79 %

Cinebench R23 - Multi Core Performance Punkte Performance relativ Leistungs- aufnahme Watt Leistungs- aufnahme relativ
Werks- einstellungen 42.328 100 % 200 W 100 %
Core Optimizer: All Cores @ -30mV 44.066 104 % 193 W 96 %

Undervolting der Grafikkarte Nvidia GeForce 5090FE

Im Bereich der Grafikkarten ist der kostenlose MSI Afterburner das etablierte Tool fürs Undervolting. Beim den Grundlagen und der Bedienung dieses Werkzeugs hat mir zunächst das Video von Panjno geholfen; speziell beim Undervolting der 5090FE habe ich dann aber die Einstellungen aus dem Video von Eiga übernommen. Diese laufen auch bei mir zuverlässig und stabil.

Spannungs-/Taktraten-Kurve der GeForce RTX 5090FE bei 2737MHz @ 885mV

Spannungs-/Taktraten-Kurve der GeForce RTX 5090FE bei 2572MHz @ 870mV

Auch bei der GPU kann man mit Undervolting sehr viel rausholen: Je nach Einstellung z.B. 1% mehr Performance bei 15% geringerer Leistungsaufnahme – was immerhin 86 Watt entspricht. Alternativ 2% weniger Performance bei 21% geringerer Leistungsaufnahme – satte 115 Watt. Zusammen mit dem Undervolting der CPU macht sich das nicht nur beim Stromverbrauch, sondern auch bei der Wärmeentwicklung im Gehäuse bemerkbar.

3DMark Demo Steel Nomad Performance Punkte Performance relativ Leistungs- aufnahme Watt Leistungs- aufnahme relativ
Werks- einstellungen 14.048 100 % 577 W 100 %
UV 2737MHz @ 885mV 14.181 101 % 490 W 85 %
UV 2572MHz @ 870mV 13.708 98 % 458 W 79 %

Internet, Linux & IT

Neuer PC: AMD Ryzen 9950X3D mit Nvidia GeForce RTX 5090FE im NCASE M2

Nach etwas mehr als fünf Jahren habe ich mir einen neuen PC zusammengestellt. Diesmal habe ich mir einen High-End-Rechner gegönnt und ihn in dem kompakten NCASE M2 Round Silver-Gehäuse im klassischen Layout verbaut.

Neuer PC im kompakten Gehäuse NCASE M2 Round Silver

Hardware:

  • CPU: AMD Ryzen 9950X3D
  • GPU: Nvidia GeForce RTX 5090FE
  • CPU-Kühler: Thermalright Peerless Assassin 120 Mini Black (PA120Mini)
  • Mainboard: ROG STRIX B850-I GAMING WIFI
  • RAM: 2× Corsair Pro 32 GB DDR5-5600
  • SSD: 2× Samsung 990 Pro 4 TB
  • Netzteil: Corsair SF1000
  • Gehäuselüfter: 5× Arctic P14 Slim PWM PST
  • Sonstiges: Gummischrauben für Lüfter, 3 mm Kühlkörper für hintere SSD (nicht im Bild), 5 mm Abstandshalter für Bodenlüfter, einfacher Anti-Sag-GPU-Halter, zusätzliche Lüfterhalterung für das NCASE M2

Die neue Hardware im Überblick

Verwendungszweck / Ziele:

  • Dual-Boot-System mit Gentoo Linux für Produktivität und Windows 11 für Gaming
  • Fast lautloser Betrieb im normalen Desktop-Einsatz (Web-Browsing, Videos)
  • Kann beim Gaming lauter sein, da ich ein Headset benutze

Bau-Erlebnis:

Der Zusammenbau verlief unkompliziert und ohne größere Probleme.

Der CPU-Lüfter ist als Lufteinlass konfiguriert. Die oberen und seitlichen Lüfter sind als Luftauslass eingestellt. Die Bodenlüfter sorgen für zusätzliche Frischluftzufuhr.

Linke Gehäuseseite

Rechte Gehäuseseite - Ich habe nachträglich noch einen 3 mm Kühlkörper auf die SSD gesetzt, was die Temperaturen etwas verbessert hat.

Ansicht von oben

Rückseite - Den 90-mm-Lüfter habe ich inzwischen entfernt, weil er selbst bei niedriger Drehzahl zu laut war.

Wie auf den Bildern zu sehen, hatte ich ursprünglich einen zusätzlichen 90-mm-Gehäuselüfter hinten als Lufteinlass montiert, habe ihn aber wegen der Lautstärke entfernt. Ich denke, er bringt nicht genug, um den zusätzlichen Lärm zu rechtfertigen. Vielleicht befestige ich ihn später direkt am CPU-Kühler, aber momentan bin ich mit den CPU-Temperaturen zufrieden.

Die 5090 FE kommt mit ihrer eigenen Kühlung gut zurecht. Die Bodenlüfter unterhalb der GPU sind nur dafür da, die Temperatur unter 52°C zu halten. Das ist die Schwelle, ab der die Lüfter der 5090 FE anspringen – und wenn das passiert, sind sie ziemlich laut. Damit das nicht passiert, müssen die Bodenlüfter so nah wie möglich an der GPU positioniert werden. Deshalb habe ich Abstandshalter unter die Lüfter gesetzt, um sie näher an die GPU zu bringen. So laufen sie sehr leise und langsam (~28 % PWM), sodass die GPU-Lüfter während Web-Browsing, YouTube oder im Idle nie anspringen.

Mit meinen aktuellen Lüftereinstellungen (siehe Anhänge) bleibt das System beim Surfen, YouTube oder im Idle angenehm leise, bei einer Raumtemperatur von etwa 22°C. Beim Spielen eines anspruchsvollen Spiels wie Indiana Jones mit maximalen Einstellungen zieht das System ca. 700 Watt und das Gehäuse wird spürbar heiß – fast wie ein großer Kühlkörper. Nach der Gaming-Session kühlt es aber schnell wieder ab. Natürlich werden die Lüfter dabei deutlich hörbar, aber da meine 5090 FE sowieso hörbares Spulenfiepen hat und ich mit Kopfhörern spiele, stört mich das nicht weiter.

Temperaturen & Optimierungen:

Im HWInfo-Screenshot sieht man die Temperaturen nach über einer Stunde Gaming. Insgesamt bin ich zufrieden, außer mit dem SSD-Controller-Chip meiner primären SSD. Diese Samsung SSD ist vorne am Mainboard montiert, zwischen GPU und CPU. Es gibt wohl ein bekanntes Problem mit diesem SSD-Kühlkörper: Der SSD-Controller-Chip sitzt etwas tiefer als die Flash-Speicher, sodass ein kleiner Spalt zwischen Controller und Kühlkörper entsteht. Eine mögliche Lösung besteht darin, Wärmeleitpads mit unterschiedlichen Dicken zu verwenden: 0,5 mm für die Flash-Speicher und 1 mm für den Controller. Ich habe solche Pads bestellt, aber sie sind gerade nicht lieferbar. Sobald sie ankommen, werde ich testen, ob sie helfen, die Temperatur unter 70°C zu halten.

Temperaturen während/nach dem Spielen von Indiana Jones: In der "Maximal"-Spalte sind die Temperaturen, die während dieses Spiels zu erwarten sind.

Ich habe weder Overclocking noch Undervolting oder EXPO-Profile aktiviert. Mir ist Systemstabilität wichtiger als eine kleine Leistungssteigerung. Deshalb habe ich auch bewusst JEDEC-konformen DDR5-5600 RAM gewählt, statt des oft empfohlenen DDR5-6000 „Sweet Spots“. Möglicherweise probiere ich aber in Zukunft Undervolting aus, um die Temperaturen weiter zu senken.

Und ja, mein Kabelmanagement ist schrecklich – bitte nicht beurteilen!

Übersicht der vorgenommenen Bios-Einstellungen:

SATA deaktiviert

Stromspareinstellungen

Stromspareinstellungen sowie WLAN und internes Audio deaktiviert, da nicht benötigt

In der CPU integrierte GPU deaktiviert

Der Standardlüfter des PA120 Mini bleibt bis etwa 35% PWM ruhig, weshalb ich ihn auf diesen Wert eingestellt habe für Temperaturen bis 70°C (die bei leichter Desktop-Nutzung normalerweise nicht erreicht werden). Darüber hinaus stelle ich ihn so ein, dass er schnell auf 100% PWM ansteigt, sobald 90°C erreicht werden, um die CPU unter die Drosselungsgrenze von 95°C zu halten, bei CPU-intensiven Aufgaben und gemischten CPU/GPU-Lasten, wie zum Beispiel beim Gaming.

Chassis-Lüfter: Dies sind die beiden oberen Abluftlüfter. Die Arctic P14 Slims bleiben bis etwa 25% PWM ruhig, weshalb ich sie auf niedrigen 20% belasse und sie erst hochfahre, nachdem die CPU 70°C erreicht, um die warme Luft abzuführen.

Extra Flow Lüfter: Dies ist der seitliche Abluftlüfter. Die Arctic P14 Slims bleiben bis etwa 25% PWM ruhig, weshalb ich sie auf niedrigen 20% belasse und sie erst hochfahre, nachdem die CPU 70°C erreicht, um die warme Luft abzuführen.

AIO-Pumpenlüfter: Dies sind die beiden unteren Zuluftlüfter. Die Arctic P14 Slims bleiben bis etwa 25% PWM ruhig, aber ich lasse sie bei etwa 28% PWM laufen, um zu verhindern, dass die GPU 52°C erreicht, was dazu führen würde, dass ihre lauten Lüfter anspringen. (Siehe Text)

Probleme und Lösungen:

Der im Mainboard integrierte Netzwerkadapter Intel I226-V ist leider als Problemkind bekannt. Ich hatte damit zwei verschiedene Probleme:

  • Unter Windows war die Übertragungsgeschwindigkeit sehr langsam (nur 10–100 Mbit/s statt der erwarteten 1000 Mbit/s). Ich habe zahlreiche Einstellungen ausprobiert – insbesondere bei den Energiesparfunktionen im BIOS und im Netzwerktreiber – sowie verschiedene Treiberversionen installiert. Irgendwann funktionierte es schließlich. Leider kann ich nicht mehr genau sagen, woran es letztlich lag. Da ich die Energiesparfunktionen inzwischen wieder aktiviert habe, dürften sie nicht die Ursache gewesen sein. Vermutlich hat die Installation des aktuellen Treibers aus dem Intel Ethernet Adapter Complete Driver Pack geholfen.
  • Unter Linux hat sich der Adapter gelegentlich nach einiger Zeit komplett deaktiviert, mit der Fehlermeldung: "lPCIe link lost, device now detached". Dieses Problem scheint tatsächlich mit den Energiesparfunktionen zusammenzuhängen. Laut diesem Beitrag können sie durch die Kernel-Parameter pcie_port_pm=off und pcie_aspm.policy=performance deaktiviert werden.

Internet, Linux & IT

Hardwareverschlüsselung nach TCG OPAL mit SEDUTIL

Mit SEDUTIL lässt sich die Hardwareverschlüsselung nach dem TCG-OPAL-Standard für kompatible SSDs aktivieren. Der große Vorteil: Die Lösung funktioniert betriebssystemunabhängig und kann zudem unkompliziert ein- oder wieder ausgeschaltet werden.

Das Grundprinzip: Im gesperrten Zustand stellt die SSD einen kleinen, unverschlüsselten, alternativen Bootbereich zur Verfügung. In diesem wird ein minimalistisches Linux-System installiert, das beim Start direkt eine Eingabeaufforderung zur Passworteingabe öffnet. Nach erfolgreicher Authentifizierung wird die SSD entsperrt und das eigentliche Betriebssystem neu gestartet.

Installation

Die Installation ist auf sedutil.com gut dokumentiert. Dort findet sich auch ein Build, das mit Ryzen-CPUs kompatibel ist – diese Version verwende ich selbst seit über fünf Jahren. Hier eine Kurzfassung der wichtigsten Befehle für die Installation nach dem Booten von der bootbaren Installations- bzw. Recovery-Disk (inkl. Beispielausgaben):

linux ~ # gunzip /usr/sedutil/UEFI64-*img.gz
linux ~ # sedutil-cli --initialsetup debug /dev/nvme0
- 14:06:39.709 INFO: takeOwnership complete
- 14:06:41.703 INFO: Locking SP Activate Complete
- 14:06:42.317 INFO: LockingRange0 disabled
- 14:06:42.694 INFO: LockingRange0 set to RW
- 14:06:43.171 INFO: MBRDone set on
- 14:06:43.515 INFO: MBRDone set on
- 14:06:43.904 INFO: MBREnable set on
- 14:06:43.904 INFO: Initial setup of TPer complete on /dev/nvme0
linux ~ # sedutil-cli --enablelockingrange 0 debug /dev/nvme0
- 14:07:24.914 INFO: LockingRange0 enabled ReadLocking,WriteLocking
linux ~ # sedutil-cli --setlockingrange 0 lk debug /dev/nvme0
- 14:07:46.728 INFO: LockingRange0 set to LK
linux ~ # sedutil-cli --setmbrdone off debug /dev/nvme0
- 14:08:21.999 INFO: MBRDone set off
linux ~ # sedutil-cli --loadpbaimage debug /usr/sedutil/UEFI64-*.img /dev/nvme0
- 14:10:55.328 INFO: Writing PBA to /dev/nvme0
33554432 of 33554432 100% blk=1500
- 14:14:04.499 INFO: PBA image /usr/sedutil/UEFI64.img written to /dev/nvme0

Test

Nun folgt ein wichtiger Test des Unlocking-Tools mit dem festgelegten Probepasswort "debug". Die Ausgabe für die betreffende SSD muss dabei "is OPAL Unlocked" lauten. Falls stattdessen eine andere Meldung erscheint, sollte OPAL wieder deaktiviert werden, um Probleme beim späteren Zugriff auf die Daten zu vermeiden.

linux ~ # linuxpba
DTA LINUX Pre Boot Authorization
Please enter pass-phrase to unlock OPAL drives: debug
Scanning....
Drive /dev/nvme0 Samsung SSD 960 EVO 250GB is OPAL Unlocked
Drive /dev/sda Crucial_CT250MX200SSD1 is OPAL NOT LOCKED

Echtes Password setzen und Shadow-MBR aktivieren:

Mit den folgenden Befehlen wird das Probepasswort "debug" durch ein eigenes Passwort ersetzt. Zudem wird der Shadow-MBR aktiviert, sodass die verschlüsselte SSD das zuvor installierte Linux-System zur Passworteingabe als bootbare Partition bereitstellt.

linux ~ # sedutil-cli --setsidpassword debug yourrealpassword /dev/nvme0
linux ~ # sedutil-cli --setadmin1pwd debug yourrealpassword /dev/nvme0
- 14:20:53.352 INFO: Admin1 password changed
linux ~ # sedutil-cli --setmbrdone on yourrealpassword /dev/nvme0
- 14:22:21.590 INFO: MBRDone set on

Deaktivierung von OPAL:

Falls erforderlich, kann mit den folgenden Schritten OPAL deaktiviert werden. Dabei ist "debug" das zuvor gesetzte Probepasswort. Falls bereits ein eigenes Passwort vergeben wurde, muss es entsprechend ersetzt werden.

linux ~ # sedutil-cli --disablelockingrange 0 debug /dev/nvme0
- 14:07:24.914 INFO: LockingRange0 disabled
linux ~ # sedutil-cli --setmbrenable off debug /dev/nvme0
14:08:21.999 INFO: MBREnable set off

Troubleshooting und Hinweise

Kompatibilität

Die SEDutil-Version von sedutil.com ist nicht kompatibel mit der Originalversion der Drive Trust Alliance, da sie für die Passwort-Hash-Berechnung SHA-512 anstelle von SHA-1 verwendet.

Initialsetup meldet "NOT AUTHORIZED"

Wie im Fehlerbericht #291 dokumentiert, schlagen bei einigen NVMe-SSDs die "initialsetup"-Operationen mit dem Fehler "NOT AUTHORIZED" fehl. In vielen Fällen kann dieses Problem durch das vorherige Ausführen des "PSIDrevert"-Befehls behoben werden:

linux ~ # sedutil-cli --PSIDrevert DieLaufwerksPSIDhier /dev/nvme0

(Der PSID-Code der SSD befindet sich auf einem Aufkleber auf dem Laufwerk selbst.)

Achtung: Der Befehl PSIDrevert ist gefährlich! Er löscht normalerweise alle Daten auf dem Gerät. Daher sollte vorher unbedingt ein vollständiges Backup durchgeführt werden.

In meinem Fall – sowie in anderen Fällen, die im verlinkten Fehlerbericht dokumentiert sind – wurde das Laufwerk jedoch nicht gelöscht. Stattdessen wurde dadurch die "initialsetup"-Operation freigeschaltet. Ich vermute, dass bei meinem Laufwerk der PSIDrevert-Befehl die Festplatte nur löscht, wenn die OPAL-Sperre aktiviert ist, und ansonsten lediglich den Schutz für die Aktivierung der Verschlüsselung aufhebt. Mittlerweile habe ich das ebenfalls getestet: Meine gesperrte SSD ließ sich auf diese Weise vollständig löschen und entsperren.

Windows Update überschreibt den Linux Bootloader bei Dual-Boot-Systemen

Im Fehlerbericht 27 habe ich meine Lösung für das Problem dokumentiert, dass Windows Update den Grub-Bootloader bei einer Dual-Boot-Konfiguration von Windows und Linux beschädigt. Da mein UEFI-Setup die Standard-Fallback-Pfade verwendet, musste ich Grub an den Speicherorten /EFI/Boot und /EFI/Microsoft/Boot ablegen und den Windows-Bootloader in ein anderes Verzeichnis verschieben, z. B. /EFI/Windows.

Das Verschieben von Grub an diesen Speicherort war notwendig, wie in dem Fehlerbericht beschrieben (siehe z. B. den Kommentar von mesiu84). Der Grund ist, dass mein UEFI nach der Pre-Authentifizierung alle UEFI-Einträge von nicht verfügbaren Partitionen löscht und daher nie Grub am Standard-Speicherort (/EFI/gentoo in meinem Fall) startet, sondern immer auf die Fallback-Pfade /EFI/Microsoft/Boot oder /EFI/Boot zurückgreift.

Nun habe ich herausgefunden, dass mein UEFI nach der Pre-Authentifizierung und dem Entsperren der Laufwerke immer versucht, von der EFI-Partition des ersten Laufwerks zu booten. In meinem Setup habe ich zwei identische Laufwerke, beide mit aktiviertem Verschlüsselungsmechanismus.

Die Lösung: Windows Boot Manager auf ein zweites EFI-Volume verschieben

Meine Idee war: Was wäre, wenn ich den Windows Boot Manager auf eine zweite EFI-Partition auf dem zweiten Laufwerk verschieben könnte? Dann könnte ich Grub ausschließlich auf der EFI-Partition des ersten Laufwerks installieren und den Windows Bootloader von der zweiten EFI-Partition auf dem zweiten Laufwerk aus starten (Chainloading).

Der Vorteil: Windows Update würde nur die zweite EFI-Partition aktualisieren und nicht mehr die primäre EFI-Partition mit Grub überschreiben. Gleichzeitig würde mein UEFI nach dem Entsperren der Laufwerke weiterhin automatisch Grub von der EFI-Partition auf dem ersten Laufwerk starten.

Und tatsächlich funktioniert das! Meine Grub-Installation hat seitdem die Windows-Updates überlebt!

Mittlerweile weiss ich, dass diese Methode auch mit nur einem Laufwerk funktioniert, indem man dort zwei separate EFI-Partitionen anlegt.

Ausgangs-Partitionierung

  • Laufwerk 1 (Disk 1):
    • EFI
    • Windows
    • Linux (System)
  • Laufwerk 2 (Disk 2):
    • Linux (Daten)

Durchgeführte Schritte

  1. Mit gparted die Linux-Partition auf Disk 2 verkleinert
  2. Mit fdisk eine neue (leere) EFI-Partition auf Disk 2 erstellt (Partitionstyp 1, entsprechend dem Gentoo-Handbuch)
  3. Windows starten
  4. cmd als Administrator ausführen
  5. Neue EFI-Partition auf Disk 2 mit diskpart als Laufwerk "Z:" einhängen:
    1. Verwende 'list disks', um eine Liste der Festplatten und deren Nummern anzuzeigen.
    2. Verwende 'sel disk <Nr.>', um das Laufwerk mit der neuen EFI-Partition auszuwählen.
    3. Verwende 'list par', um die Liste der Partitionen des ausgewählten Laufwerks anzuzeigen.
    4. Verwende 'sel par <Nr.>', um die EFI-Partition (Partition vom Typ "System") auszuwählen.
    5. Verwende 'assign letter="z"', um einen Laufwerksbuchstaben zuzuweisen.
    6. Verwende 'exit', um diskpart zu schließen.
  6. Windows Bootloader mit bcdboot auf die neue EFI-Partition schreiben:
    bcdboot c:\windows /l de-de /s z: /f UEFI
  7. Laufwerkbuchstaben der EFI-Partition mit diskpart im Administratormodus wieder entfernen:
    1. Verwende 'sel disk <Nr.>', um das Laufwerk mit der neuen EFI-Partition auszuwählen.
    2. Verwende 'sel par <Nr.>', um die EFI-Partition (Partition vom Typ "System") auszuwählen.
    3. Verwende 'remove letter="z"', um den Laufwerksbuchstaben zu entfernen.
    4. Verwende 'exit', um diskpart zu schließen.
  8. Linux booten
  9. Erste (ursprüngliche) EFI-Partition auf Disk 1 einhängen
  10. Alle Dateien der EFI-Partition auf Disk 1 löschen
  11. Grub neu installieren inklusive Removable Mode:
    linux ~ # grub-install --target=x86_64-efi --efi-directory=<Mountpoint der ersten EFI-Partition auf Disk 1>
    linux ~ # grub-install --target=x86_64-efi --efi-directory=<Mountpoint der ersten EFI-Partition auf Disk 1> --removable
  12. Grub konfigurieren, um den Windows Bootloader auf Disk 2 zu starten
    1. UUID der zweiten EFI-Partition mit lsblk ermitteln (in meinem Fall: 6276-B891)
    2. Grub-Konfigurationsdatei anpassen und um den Chainload-Eintrag für die zweite EFI-Partition (Windows EFI) ergänzen:
      menuentry 'Windows 11 (disk2, /Microsoft/)' --class windows --class os $menuentry_id_option 'osprober-efi-6276-B891' --unrestricted '' {
              insmod part_gpt
              insmod fat
              if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root  6276-B891
              else
                search --no-floppy --fs-uuid --set=root 6276-B891
              fi
              chainloader /EFI/Microsoft/Boot/bootmgfw.efi
      }
      
  13. Sicherstellen, dass die Grub-EFI-Datei an allen "magischen" Orten auf der ersten EFI-Partition des ersten Laufwerks platziert sind (z.B. durch manuelles Erstellen der Verzeichnisse und Kopieren und Umbenennen der GRUB-EFI-Datei), die anscheinend wie folgt sind:
    1. /EFI/BOOT/BOOTX64.EFI
    2. /EFI/Microsoft/Boot/bootmgfw.efi
    Dies kann das UEFI dazu bringen zu glauben, dass auf diesem Laufwerk ein Windows-Bootloader installiert ist, und es bevorzugt dann diese Partition gegenüber der zweiten EFI-Partition.

Internet, Linux & IT

Linux Bluetooth: Stotternder Klang beim Start eines Songs

Problem: Der Klang ist stotternd, wenn man einen Song in Amarok oder einem anderen Linux-Audioplayer mit VLC-Backend und einem Bluetooth-Headset abspielt.

Merkwürdigerweise tritt dieses Problem nur auf, wenn der Song mit VLC mit einem Bluetooth-Headset abgespielt wird. Andere Anwendungen funktionieren einwandfrei. Auch die Verwendung kabelgebundener Kopfhörer ist unproblematisch.

Das Muster ist immer gleich: zwei Aussetzer von ca. 1 Sekunde, getrennt durch ca. 1 Sekunde normalen Klangs, danach spielt der Song ohne Probleme. Wenn man den VLC-Cursor zurück an den Anfang des Songs bewegt, um ihn erneut abzuspielen, ohne Stop/Start zu verwenden, treten keine Aussetzer auf.

Lösung: Öffne pavucontrol -> Ausgabegeräte -> Öffne den Abschnitt Erweitert in den Bluetooth-Geräteeinstellungen -> Stelle den Latenzversatz auf einen Wert zwischen -100 ms und -1000 ms ein.

Quelle: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2958

Internet, Linux & IT

Spiele und Desktop streamen mit Sunshine und Moonlight

Gestern habe ich auf Youtube den Erfahrungsbericht von Keno zum Spiele-Streaming mit Sunshine und Moonlight gesehen. Ich selbst hatte auch schon verschiedene Lösungen wie Parsec und Stream Remote Play ausprobiert. Wirklich überzeugen konnte mich aber bisher nichts.

Da ich die Kombination von Sunshine (Server) und Moonlight (Client) noch nicht kannte, habe ich es einmal ausprobiert, mit meinem Windows PC als Server und einem Raspberry PI4 2GB als Client. Ob es brauchbar ist, muss sich noch zeigen.

Die Installation war aber leider gerade auf Client-Seite etwas fummelig, daher hier meine Notizen:

Windows Host:

Die Installation erfolgte ohne Probleme: Einfach den aktuellen sunshine-windows-installer.exe von der Homepage laden und den Anweisungen des Installationsprogramms folgen.

Linux Client:

Das aktuelle Raspberry OS (bookworm) in der Lite-Version mit dem Raspberry Pi Imager auf eine SD-Karte installieren. Dabei kann direkt SSH, WLAN sowie ein eigener User konfiguriert werden.

Nach dem Booten konnte dann der Moonlight Client enstprechend der Anleitung installiert werden mit den Befehlen:

user@linux ~ $ curl -1sLf 'https://dl.cloudsmith.io/public/moonlight-game-streaming/moonlight-qt/setup.deb.sh' | distro=raspbian sudo -E bash sudo apt install moonlight-qt

Moonlight kann man dann grundsätzlich mit dem folgenden Befehl starten:

user@linux ~ $ moonlight-qt

Nach der Installation ggf. die Kernel-Parameter in Datei /boot/firmware/cmdline.txt um folgende zwei Parameter erweitern:

video=HDMI-A-1:1920x1080M@60 usbhid.mousepoll=0

Der erste Parameter stellt die Auflösung fest ein. Dies ist sinnvoll, falls diese nicht korrekt erkannt wird, was bei meinem Monitor der Fall war. Übrigens, dass Aktivieren der Anzeige-Option "4K Output" in raspi-config führte bei mir dazu, dass Moonlight keine Bildausgabe schaffte (Ich habe allerdings auch keinen 4K Monitor). Der zweite Parameter hilft dabei, falls die Maus zu langsam ist.

Zuächst funktionierte bei mir der Ton in Moonlight nicht. Hier half es, Pulseaudio zu installieren und anschliessend mit Raspi-Config den Audio-Ausgang auf den korrekten HDMI-Port zu legen:

user@linux ~ $ sudo apt install pulseaudio
user@linux ~ $ sudo raspi-config

Damit jetzt noch Pulseaudio und Moonlight in der richtigen Reihenfolge automatisch beim einschalten des Raspis gestartet werden, musste ich im Verzeichnis /lib/systemd/system zwei .service-Dateien anlegen:

/lib/systemd/system/pulseaudio.service:

[Unit]
Description=pulseaudio
After=rc-local.service
Before=moonlight.service

[Service]
Type=simple
User=pi
ExecStart=/usr/bin/pulseaudio --daemonize=no --log-target=journal

[Install]
WantedBy=multi-user.target

/lib/systemd/system/moonlight.service:

[Unit]
Description=moonlight
After=rc-local.service
After=pulseaudio.service

[Service]
Type=simple
User=pi
ExecStart=/usr/bin/moonlight-qt

[Install]
WantedBy=multi-user.target

Damit diese Services auch automatisch beim Systemstart gestartet werden, noch die Befehle ausführen:

user@linux ~ $ sudo systemctl enable pulseaudio.service
user@linux ~ $ sudo systemctl enable moonlight.service

Internet, Linux & IT

Neuer PC: AMD Ryzen 3700X mit Radeon RX 5700 XT

Diesen Artikel zum Zusammenbau meines neuen PCs hatte ich im Dezember 2019 ursprünglich auf der englischsprachigen Plattform PCPartPicker veröffentlicht. Er ist daher auf Englisch verfasst.

Most parts of my new desktop PC based on AMD Ryzen 3700X and Radeon 5700XT

New PC in Fractal Design case

Close-up look into new PC

Corsair RGB K70 MK.2 Low Profile Rapidfire

Finalmouse Starlight ST-12

I replaced my 10 year old Dell Latitude E6400 notebook with a new desktop system. I mainly use Gentoo Linux for daily stuff like web surfing, programming, remote system administration. Yes, my good old notebook was and is still good enough for these tasks....

However, a few months ago I tried out a cloud gaming platform and played DOOM (2016) for the first time - and was blown away by the graphics and speed! I have to admit that the last time I played computer games is more than 15 years ago, playing the original Doom games, QuakeWorld, etc. at LAN parties. Anyway, finishing Doom on this cloud service was great, but because of the lag, the relatively high monthly costs (at that time), my desire to play games again more regulary and to replace my old notebook anyway, I decided to build a new desktop computer (instead of getting a new notebook as originally planned).

My build is based on a recent recommendation by german computer magazine c't (Ryzen Allrounder 2020) but I changed some components:

  • CPU: Ryzen 3700X instead of Ryzen 3600: Probably the 3600 would be fast enough for my use cases, but I don't plan to upgrade again during the next 5-10 years, so I guess 2 more cores won't hurt ...
     
  • CPU Cooler: Scythe Mugen 5 Rev. B instead of Alpenföhn Ben Nevis Advanced, because I got the Scythe for only 10 bucks more and even though it might be oversized for a 65W CPU, it looks great, is widely recommended by people and seems to be a future proof choice - just in case I'll upgrade to an even more powerful CPU.
     
  • Video Card: Sapphire Nitro+ Radeon RX 5700 XT instead of recommended Nvidia and Powercolor cards, since AMD has better Linux support and the Sapphire Nitro+ is said to be the best 5700 XT custom design according to several other online sources.
     
  • Memory: Kingston HyperX Fury 32GB instead of Crucial 16GB RAM, simply because the recommended Crucial RAM was not available at the time of assembly. Both run at DDR4-3200 speed in compliance with JEDEC specifications and don't need overclocking settings or higher voltage to reach this speed (according to the german c't magazine, using "OC RAM" and overclocking bios settings can have several undocumented side effects). 32GB instead of 16GB for the same reason as the CPU upgrade. In comparison HyperX has quite a price premium, but looks way better! And Crucial wasn't available anyway.
     
  • Storage: Mushkin Pilot-E 2 TB instead of Kingston A2000 1TB because I needed a bit more space and don't want to install hard drives in this build.
     
  • Case: Fractal Design Define Mini C TG instead of be quiet! Pure Base 600, because I wanted a more compact case and this one really looks sexy!

I also added a third case fan to support the two fans which where included with the case. The two original fans are now blowing in cool air from the front and the added NoiseBlocker NB-eLoop is blowing the hot air out in the back.

Unfortunately I have no LAN cables in my apartment. I tried PowerLAN but the adapters made some strange noises in standby mode and both transfer rate and ping where slower than using a 802.11ac wifi adapter, so I decided for the Netgear A6210, which also works in Linux.

The monitor was a difficult choice. I wanted an 27" IPS panel type with WQHD resolution which has good color calibration, is OK for casual gaming and doesn't cost a fortune. I came to the conclusion that the Acer XV272U would be a good choice - and my first impression is positive.

For audio I use the fantastic Bose Quietcomfort QC35 bluetooth headset. However, using the integrated microphone degrades audio output quality a lot (different bluetooth profile), therefore I combined it with a cheap standalone USB microphone (Tonor).

Update February 2020: I finally found a keyboard to match my taste. Being a former notebook user, I really wanted a low profile keyboard. And I wanted a mechanical keyboard. Given these specs, there is not much choice on the market. I tried the "Sharkoon Puremaster RGB" and the "Corsair RGB K70 MK.2 Low Profile Rapidfire" and the latter one - even though quite expensive - convinced me and will be kept!

Update March 2020: I added another Mushkin Pilot-E 2 TB M.2-2280 NVME SSD. 2 TB of space were just a bit too tight for my dual-boot Linux / Windows setup.

Update May 2020: I replaced the USB WIFI dongle Netgear A6210 with the standalone AVM FRITZ!Repeater 3000, which I use in so-called WLAN-Bridge mode. This means I connect my computer build to the repeater device via ethernet, while the repeater itself is connected via wifi to the main router. I get a connection speed of (gross) 1300mbit/s between router and repeater, resulting in a real life speed of about (net) 400mbit/s. I chosed such a pricey and complicated setup because it turned out that the USB dongle Netgear A6210 does not work as well as expected in Linux (in Windows it works fine). I gave up my attempts to get this running at high speed and researched for alternative USB dongles, but came to the conclusion, that there is no 802.11ac 5Ghz high speed USB dongle which will run without problems in my Windows/Linux dual boot setup at this point of time. It seems this new setup finally solved my connection speed problems. Additionally, I managed to set up hardware encryption using the Mushkin Pilot-E's OPAL capability and the tools provided by Sedutil.com

Update April 2021: I bought a simple USB Condenser Microphone (TONOR TC30) to combine it with my bluetooth headphones (Bose Quiet Comfort QC35), because using the built-in microphone of the Bose headphones will force a change of the bluetooth connection to a low-quality 'phone audio' profile and ruin the listening experience. This combination works quite well.

Update June 2021: This build still works without problem. And I finally got the last missing piece to complete my setup: the new Starlight-12 mouse by finalmouse. I was happy to get one of the first batch, which was limited to only 10.000 pieces. This mouse does not only look great, it also has a great small size for me as a fingertip grip user. Premium mice such as Logitech G Pro X Wireless or Razer Viper Ultimate Wireless were just too big for my style. Unfortunately it is very difficult to get this mouse. But they announced that there will be more batches in the future.

Internet, Linux & IT

Umstieg geschafft: KDE 4.6.2

Auch wenn ich in diesem Blog lieber über Reisen als über Technik und IT schreibe, dürte aufmerksamen Lesern nicht entgangen sein, dass ich tief im Inneren doch ein Techie bin. Daher heute zur Abwechselung mal wieder etwas von der Linux-Front.

Ich benutze Linux als primäres Betriebssystem seit mehr als 10 Jahren, also schon bevor es sogenannte Desktopumgebungen wie Gnome oder KDE gab. Man kann also sagen, ich habe die rasante Entwicklung recht gut mitverfolgt und miterlebt. Die grafische Oberfläche KDE verwende ich seit der ersten Version und bis zur Version 3.5 mitgegangen, dann aber dort hängengeblieben. Der einfache Grund: KDE3 war über die Jahre ausgereift, das neue KDE4 dagegen wurde von Grund auf neu entwickelt und war dementsprechend instabil, geliebte Funktionen fehlten oder neue wurden dem Anwender aufgezwungen. Ich schloss mich also der (vermutlich nicht gerade kleinen) Gruppe der KDE4-Verweigerer an.

Linux-Desktop KDE 4.6.2

Seit der Veröffentlichung der ersten stabilen KDE4-Version sind inzwischen etwa drei Jahre vergangen, so dass ich mit der Anfang April veröffentlichten Version 4.6.2 einen neuen Versuch wagte. Erstaunt durfte ich feststellen, dass KDE4 zu einer attraktiven und stabilen Desktopumgebung herangewachsen ist, die neben tollen neuen Funktionen auch wieder dem Anwender ein umfassendes Wahlrecht zu sämtlichen Optionen gibt. Für mich sind die mit Abstand besten Neuerungen das aus Windows 7 bekannte Fensterverhalten beim Verschieben von Fenstern an den Seitenrand, der performante Dateimanager Dolphin sowie ein funktionierendes Drag- und Drop von Dolphin zu Firefox, was den Upload von Bildern in dieses Blog erheblich vereinfacht. Für mich steht damit fest: KDE 4.6.2 wird mein neuer Desktop.

Internet, Linux & IT

Neue Kamera: Canon Powershot S95

Knapp 4 Jahre und geschaetzt mehr als 20.000 Fotos hat meine alte Digitalkamera Canon Ixus 800 IS auf dem Buckel. Es wurde also Zeit fuer etwas Neues. Die Entscheidung zwischen Spiegelreflex- und Kompaktkamera fiel schwer, letztendlich setzte sich aber wieder ein Zwerg durch. Dieser hat es jedoch in sich - und kann - entsprechend den Testergebnissen der Fachpresse - mit gutem Gewissen als die beste Kamera ihrer Klasse bezeichnet werden: die Canon Powershot S95.

Canon Powershot S95 (Foto: Canon)

Die Anschaffung erfolgte bereits vor dem Urlaub in Suedamerika - von dem wir am vergangenen Sonntag uebrigens unbeschadet zurueckgekehrt sind - und durfte auf der Reise bereits mehr als 3500 Aufnahmen ausloesen. Die Ergebnisse werden hier sicher in einiger Zeit zu sehen sein...

Internet, Linux & IT

Weihnachtskalender für Informatiker

(*auch fuer Mathematiker geeignet)

Weihnachtskalender von T-Systems

Internet, Linux & IT

Macintosh IIvx und Apple II europlus

Ich raeume gerade den Boden auf bzw. aus, und dort haben sich ueber die Jahre (Jahrzehnte) zahlreiche Rechner angesammelt: Vom Commodore VC20 ueber C16 bis zum C128, Amiga 500, Atari 2600, Sega Konsolen und zahreiche PCs. Zwei der Geraete gehen an Ralf, den Apple-Maniac in meinem Freundeskreis: Ein Macintosh IIvx mit original verpackter Tastatur und Maus, sowie der wunderschoene Apple II europlus. Auch wenn der Abschied schwer faellt ... bei Ralf sind die Geraete gut aufgehoben!

Macintosh IIvx

Apple II europlus