Fedora 30@ThinkPad T490s: Suspend Error

Nach der Installation von Fedora 30 und TLP auf dem Lenovo ThinkPad T490s funktioniert der Wechsel in den Standby (Suspend to RAM; STR) beim Schließen des Notebookdeckels oder Nutzung des Suspend-Buttons nicht. Stattdessen gibt es nur eine Fehlermeldung im Journal:

pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
dpm_run_callback(): pci_pm_suspend+0x0/0x170 returns -16
PM: Device 0000:00:14.0 failed to suspend async: error -16
PM: Some devices failed to suspend, or early wake event detected

Um diesen Fehler im xhci Controller zu beheben, muss nur eine Datei, etwa mit dem Namen „xhci.sh“, im Verzeichnis „/usr/lib/systemd/system-sleep/“ mit dem folgenden Inhalt angelegt werden:

#!/bin/sh

if [ "${1}" == "pre" ]; then
  # Do the thing you want before suspend here, e.g.:
  echo "Disable broken xhci module before suspending at $(date)..." > /tmp/systemd_suspend_test
  grep XHC.*enable /proc/acpi/wakeup && echo XHC > /proc/acpi/wakeup
elif [ "${1}" == "post" ]; then
  # Do the thing you want after resume here, e.g.:
  echo "Enable broken xhci module at wakeup from $(date)" >> /tmp/systemd_suspend_test
  grep XHC.*disable /proc/acpi/wakeup && echo XHC > /proc/acpi/wakeup
fi

Anschließend die Datei noch ausführbar machen:

sudo chmod +x /usr/lib/systemd/system-sleep/xhci.sh

Im Anschluss sollte sich das ThinkPad T490s normal in den Standby versetzen lassen. Der Batterieverbrauch liegt dann etwa bei 15% innerhalb von 24 Stunden, was zu einer Standbyzeit von etwa 6,7 Tagen führt.

Quellen:

Licht und Schatten beim Samsung C34J791W UltraWide WQHD-Monitor

Der Samsung C34J791W vereint einige nette Features: eine UltraWide WQHD Auflösung von 3440 x 1440 Pixel (21:9) auf 34 Zoll (und damit etwa 109 PPI), zwei Thunderbolt 3 Anschlüsse (davon einer mit 85 Watt PowerDelivery und der andere mit 15 Watt) sowie ein von Haus aus höhenverstellbares Curved-Display mit 100Hz Bildwiederholfrequenz und Freesync-Funktionalität (die prinzipiell auch mit G-Sync-Compatible funktioniert).

Leider gibt es aber auch einige Schattenseiten. Vor dem Kauf bekannt: das Display hat nur ein C-Rating in der Energiebilanz. Außerdem gibt es keinen „alten“ USB-Uplink-Port für den im Monitor verbauten USB-Hub. Der Uplink funktioniert also nur über die beiden Thunderbolt 3/ USB-C Ports. Der Anschluss eines „normalen“ Computers erfoldert auf dessen Seite also einen USB-C Anschluss. Dafür den Virtual-Link-Port der GeForce RTX Grafikkarten zu nutzen, ist möglich – allerdings bei mir nur für entweder USB oder Bild per DisplayPort-Alt-Modus. Zum Betrieb nutze ich also den normalen DisplayPort-Anschluss für das Bild und den Virtual-Link-USB-C-Port für den Hub.

Nervig wird es, wenn man zwei oder mehr Geräte mit dem Monitor verbindet und häufiger zwischen diesen wechseln möchte.

Problem 1: Der Samsung hat für die Bedienung nur ein Steuerkreuz, das vier Positionen und einen Mittelklick kennt. Eine einfacher Druck auf einen dezidierten Knopf für den gerade gewünschten Eingangs ist also nicht möglich.

Problem 2: Auch im OnScreenMenü gibt es keine Auswahloption für den gewünschten Eingang. Der Monitor schaltet entweder automatisch mit einigen Sekunden Verzögerung zyklisch alle Eingänge durch, bis er den nächsten gefunden hat, an dem ein Signal anliegt. Oder man kann manuell drücken, damit er zum nächsten Eingang springt.

Problem 3: Der Aufruf des OnScreenMenüs (über den Mittelklick) funktioniert nicht immer. Zum Beispiel nicht, wenn der Monitor gerade ein Signal sucht. Generell scheint sich das Menü nur bei erkanntem und anliegenden Bildsignal anzeigen zu lassen.

Problem 4: Es gibt keine Möglichkeite, den USB-Hub mit den Signal-Eingängen zu koppeln. Sprich: Wenn ich das per Thunderbolt 3 angeschlossenen MacBook, das die Tastatur/Maus nutzt die über dem Monitor-Hub angeschlosssene sind, in den Ruhemodus versetzte und den Monitor-Eingang auf den am DisplayPort angeschlossenen Computer wechsel, bleiben Tastatur/Maus weiterhin mit dem MacBook verbunden. Erst wenn ich kurz das Thunderbolt 3 Kabel abziehe, wechselt der Monitor den USB-Hub mit Tastatur/Maus (der Hub läuft dann über den parallel zum DispalyPort per USB-C mit dem zweiten Thunderbolt Anschluss verbundenen Computer).

Dieses Problem ließe sich vermutlich umgehen, wenn der Virtual-Link-USB-C Anschluss der GeForce sowohl USB als auch DisplaPort-Signale übertragen würde (dann bliebe nur noch das Problem, dass über USB-C nur 60Hz Bildwiederholfrequenz möglich sind).

Folgeproblem: Wenn dann der Computer mit Hub läuft, ist bei laufendem Rechner kein Wechsel zurück zum MacBook möglich. Das MacBook wird bei der Signalsuche des Monitors nicht aufgeweckt, weil der Hub und damit Tastatur/Maus weiterhin mit dem Computer verbunden sind.

Problem 5: Der Monitor besitzt keinen physikalischen Ausschalter, lässt sich aber zumindest über das OnScreenMenü abschalten. Leider werden beim Abschalten auch die Thunderbolt 3 Ports ausgeschaltet, so dass ein verbundenes Notebook in diesem Zustand nicht mehr geladen wird. Das wirklich Problem ergibt sich aber dadurch, dass der alternative Standby nicht wirklich funktioniert. Denn wenn ich das MacBook in den Ruhezustand versetze, wacht der Samsung Monitor etwa alle 30 Sekunden auf, zeigt einen schwarzen Bildschirm mit dem Eingangsnamen und durchsucht alle Eingänge nach anliegenden Signalen. Ausschalten kann ich den Bildschirm dann aber auch nicht, weil dann ja das MacBook nicht mehr geladen wird.

GeForce RTX Virtual Link: USB-C bedingt einsatzfähig

Mit der NVIDIA GeForce RTX 20-Serie hält bei vielen Grafikkartenherstellern eine USB-C Schnittstelle neben den gewohnten DisplayPort und HDMI-Anschlüssen Einzug. Gedacht ist das gute Stück eigentlich für den einkabeligen Anschluss von – der Name deutet es ja bereits an – Virtual Reality Headsets. Gibt bislang zwar noch kein Headset dafür, aber irgendeine Seite muss das Henne-Ei-Problem ja als erste angehen. Aber so ein USB-C Anschluss ist ja auch für andere Dinge gut. Golem hat damit beispielsweise Smartphones geladen oder eine SSD angeschlossen. Ich hätte damit lieber meinen Monitor bespielt und gleichzeitig dessen Anschlussfreudigkeit genossen. Leider hat sich das als weniger erquicklich herausgestellt.

Aber erstmal zur genutzten Hardware (unter Windows 10): Auf der Rechnerseite kam eine KFA2 GeForce RTX 2080 OC zum Einsatz, die den USB-C Anschluss vom NVIDIA-Referenzdesign beibehalten hat. Den Monitor stellte Samsung mit dem C34J791W mit zwei Thunderbolt 3/ USB-C Anschlüssen. Die Verbindung habe ich mit dem monitorbeiligenen Thunderbolt 3 Kabel und alternativ mit einem Standard-USB-C-Kabel getestet. Was kam dabei heraus? Zumindest ein Bild.

Der Monitor ließ sich dabei zwar mit seiner vollen Auflösung von 3440 x 1440 Pixel ansprechen. Allerdings nur bei maximal 60Hz. Die dem Monitor möglichen 100Hz ließen sich dem USB-C Anschluss nicht entlocken (G-Sync Compatible->Freesync geht ohnehin nur über DisplayPort). Der Monitor hat auch noch einen integrierten USB-Hub, der bei einem per USB-C angeschlossenen Notebook problemlos funktioniert. Der über NVIDIA Virtual Link angeschlossen Rechner erkannt aber leider die angeschlossene Peripherie (Tastatur) bzw. den USB-Hub nicht. Letzten Endes funktionierte also nur die Übertragung des Bilder über DisplayPort-Alt-Mode.

Prinzipiell müsste eigentlich aber auch der USB-Hub funktionieren, denn auch eine VR-Brille müsste ja ihre Tracking-Daten per USB an den Rechner schicken können (und das Peripherie generell geht, zeigt ja auch der Bericht von Golem). Keine Ahnung, ob es also nur bei meiner spezifischen Hardwarekonfiguration nicht funktioniert.