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: