Thinkpad Yoga schläft nicht ein

GunGun

New member
Registriert
12 Feb. 2010
Beiträge
24
Hallo zusammen,

ich habe ein gebrauchtes Thinkpad Yoga erworben und Ubuntu 16.04 auf eine M.2 SSD gespielt. Leider spielt Hibernate/Suspend verrückt: der Laptop geht (anscheinend) in den entsprechenden Zustand (Display dunkel, Lüfter aus etc.), wacht aber nach einem Bruchteil einer Sekunde bereits wieder auf.

Hier das Syslog: http://pastebin.com/swfxCLcA

Ich haben den Deckel also wohl bei 58s geschlossen. Die Zeile mit "ahci 0000:00:1f.2: port does not support device sleep" scheint nicht problematisch zu sein (https://lists.debian.org/debian-kernel/2015/01/msg00009.html). Bei den anderen Meldungen bin ich irgendwie nicht weiter gekommen.

Kernelupgrade auf 4.4.8 hat auch nix geändert.

/var/log/pm-* enthalten keine aktuellen Meldungen.

Hat jemand 'ne Idee, was da los sein könnte?

Danke im Voraus,
GunGun

PS: FunFact: Nach dem (verfehlten) Suspend funktioniert die Auto-Rotation out-of-the-box!
 
mal hier nachsehen:
/etc/systemd/logind.conf
ob folgendes aus kommentiert ist:
#HandleLidSwitch=suspend,
falls nicht, auskommentieren.
"suspend" kann auch durch "poweroff" ersetzt werden.
Vielleicht funktioniert es auf diesem Wege, wenn nicht vielleicht in Richtung eines neueren Kernels orientieren.
 
Hallo!

HandleLidSwitch hatte ich schon auskommentiert. Das Problem tritt allerdings auch auf, wenn ich z.B. pm-suspend aufrufe...sollte dann also nix mit LidSwitch zu tun haben - oder?


Wie "neu" sollte der Kernel denn am besten sein? Hatte ja bereits den LTS-Kernel 4.4.8 ausprobiert und bin mir nicht sicher, wie ich am besten einen anderen aktuellen Kernel in Ubuntu integriere...

Vielen Dank schon Mal,
GunGun
 
Unter 16.04 lautet der Befehl
Code:
sudo systemctl suspend
@linrunner,

macht bei mir - bezogen auf das Nicht-Wirklich-Einschlafen - leider keinen Unterschied :-(. Ruft pm-suspend denn was anderes auf als systemctl suspend?

@anjuna: Neuere Kernel haben leider nix gebracht.

Ärgerlicherweise scheint es manchmal :)-( ) zu klappen - versuche gerade herauszufinden, welche Systematik da ggf. zugrundeliegt...
 
pm-utils sind veraltet und werden in vielen Distributionen nicht mehr genutzt. systemd nutzt eine völlig andere Implementierung.
 
fährt das Yoga eigentlich runter, wenn in der logind.conf "suspend" durch "poweroff" ersetzt wird bzw. passiert nichts wenn es durch "ignore" ersetzt wird ?
btw: was erscheint bei
Code:
systemctl status acpid.service
?

Edit: ".service" unterschlagen....
 
Zuletzt bearbeitet:
Jetzt wird's spannend: Ich habe ein paar Kernel (4.4,4.5,4.6,4.7) durchprobiert und beim 4.7 (dieser dann aber ohne tlp support) klappt zwar systemctl suspend nicht, aber manchmal (!) geht pm-suspend (ohne allerdings das GNOME-Login beim Aufwachen zu verwenden, sondern mit direktem Zugriff auf das System nach dem Aufwachen).

Anbei mal die beiden entsprechenden Logfiles. Am Anfang scheinen nur Timing-Unterschiede zu bestehen (obwohl ich den Unterschied für vboxdr von ~12s vs. ~34s ziemlich krass finde...).
Beim Standby ist der erste Unterschied in den Zeilen 803/802. Spielt mir da das WLAN einen Streich?

Hier hat's geklappt: http://pastebin.com/ZUGGgWgv
Hier nicht: http://pastebin.com/0fpR2u1k

Any ideas?

- - - Beitrag zusammengeführt - - -

Okay...habe jetzt auch einen Erfolg mit systemctl suspend gehabt. Es liegt also nicht am Kommando. Beim Test hatte ich das WLAN ausgeschaltet - eine anschließende Wiederholung unter gleichen Bedingungen war wieder erfolglos.

Hier noch das Log vom erfolgreichen Versuch via systemctl suspend: http://pastebin.com/AuUVvJU8
Erfolglos (ebenfalls mit deaktiviertem WLAN): http://pastebin.com/br3Zrr2T

Wo könnte ich da noch stöbern?

- - - Beitrag zusammengeführt - - -

fährt das Yoga eigentlich runter, wenn in der logind.conf "suspend" durch "poweroff" ersetzt wird bzw. passiert nichts wenn es durch "ignore" ersetzt wird ?
btw: was erscheint bei
Code:
systemctl status acpid.service
?

Code:
systemctl status acpid.service
● acpid.service - ACPI event daemon
   Loaded: loaded (/lib/systemd/system/acpid.service; disabled; vendor preset: e
   Active: active (running) since Sa 2016-09-17 00:02:04 CEST; 9min ago
 Main PID: 867 (acpid)
   CGroup: /system.slice/acpid.service
           └─867 /usr/sbin/acpid

Sep 17 00:02:04 guntram-ThinkPad-S1-Yoga systemd[1]: Started ACPI event daemon.
Sep 17 00:02:04 guntram-ThinkPad-S1-Yoga acpid[867]: starting up with netlink an
Sep 17 00:02:04 guntram-ThinkPad-S1-Yoga acpid[867]: 9 rules loaded
Sep 17 00:02:04 guntram-ThinkPad-S1-Yoga acpid[867]: waiting for events: event l
Sep 17 00:02:04 guntram-ThinkPad-S1-Yoga acpid[867]: client connected from 1203[
Sep 17 00:02:04 guntram-ThinkPad-S1-Yoga acpid[867]: 1 client rule loaded
Sep 17 00:02:20 guntram-ThinkPad-S1-Yoga acpid[867]: client connected from 1529[
Sep 17 00:02:20 guntram-ThinkPad-S1-Yoga acpid[867]: 1 client rule loaded

- - - Beitrag zusammengeführt - - -

fährt das Yoga eigentlich runter, wenn in der logind.conf "suspend" durch "poweroff" ersetzt wird bzw. passiert nichts wenn es durch "ignore" ersetzt wird ?

Bei poweroff wird heruntergefahren, bei ignore nix gemacht. An der logind.conf liegt's also wahrscheinlich nicht.

- - - Beitrag zusammengeführt - - -

Ich habe noch ein wenig geforscht.
Wenn ich die Kerneloptionen aus dem ubuntuusers-Wiki verwende (https://wiki.ubuntuusers.de/Energiesparmodi_mit_ACPI/#ACPI-Kernelparameter), dann geht zwar der suspend - er wacht aber nicht wieder auf (muss ihn mit langem Druck auf den Powerknopf abschiessen).

Dann habe ich mal nach diesem Hinweis hier (http://askubuntu.com/questions/509017/desktop-wakes-from-suspend-at-random-14-04) das XHC als Aufwecker disabled und siehe da - suspend funktioniert (Deckel auf und Deckel zu als Auslöser)! Jetzt würde ich natürlich gerne wissen, welches Gerät das nun genau ist, das hier Ärger macht.

Im Log sind die einzigen Einträge mit der entsprechenden pci-Adresse die folgenden:
Code:
[    0.581373] pci 0000:00:14.0: [8086:9c31] type 00 class 0x0c0330
[    0.581392] pci 0000:00:14.0: reg 0x10: [mem 0xf0600000-0xf060ffff 64bit]
[    0.581459] pci 0000:00:14.0: PME# supported from D3hot D3cold
[    0.581605] pci 0000:00:14.0: System wakeup disabled by ACPI
[    0.817899] pci 0000:00:14.0: can't derive routing for PCI INT A
[    0.817901] pci 0000:00:14.0: PCI INT A: no GSI
[    1.946611] xhci_hcd 0000:00:14.0: can't derive routing for PCI INT A
[    1.946615] xhci_hcd 0000:00:14.0: PCI INT A: no GSI
[    1.946641] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    1.946649] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[    1.947831] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x0004b810
[    1.947837] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    1.947946] usb usb1: SerialNumber: 0000:00:14.0
[    1.951121] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    1.951127] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[    1.951176] usb usb2: SerialNumber: 0000:00:14.0
[   12.205043] input: ELAN Touchscreen as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/0003:04F3:0254.0001/input/input18
[   12.205459] hid-multitouch 0003:04F3:0254.0001: input,hiddev0,hidraw1: USB HID v1.10 Device [ELAN Touchscreen] on usb-0000:00:14.0-5/input0
[   12.343625] input: Integrated Camera as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input20

Also irgendwas USBiges! Aber was genau? Ich habe ja fast meine M.2 SSD im Verdacht (ist das einzige nicht-standardmäßige am Gerät) - kann ich aber schlecht entfernen, weil da ja das Betriebssystem drauf ist ;-)..

PS: Hier ist noch ein ähnliches Problem beschrieben - bin mir aber nicht sicher, ob das auch für systemctl suspend taugt?

- - - Beitrag zusammengeführt - - -

Okay - ich habe den Verursacher eingrenzen können.
Wenn ich den USB-Hub, welcher Accelerometer und Wacom enthält abstelle, funktioniert der Suspend wie gewünscht. Bleibt die Frage: warum?

Code:
lsusb
Bus 001 Device 004: ID 056a:00ec Wacom Co., Ltd 
Bus 001 Device 003: ID 0483:91d1 STMicroelectronics Sensor Hub
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 04f2:b39f Chicony Electronics Co., Ltd 
Bus 002 Device 003: ID 04f3:0254 Elan Microelectronics Corp. 
Bus 002 Device 002: ID 8087:07dc Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@guntram-ThinkPad-S1-Yoga:~# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
    |__ Port 4: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 4: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 5: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 6: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 6: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 7: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 8: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M

echo '1-1'> /sys/bus/usb/drivers/usb/unbind
systemctl suspend

Und jetzt wird's wieder mystisch: Wenn ich anschließend den Hub wieder anstelle (bind anstatt unbind in obiger Anweisung), dann gehen sowohl Suspend also auch Digitizer (nur Rotation im Vergleich zu den vorhergehenden Versuchen nicht mehr).

Hängt's jetzt an einem von beiden oder am internen Hub? Habe sowohl Kernel 4.4.0 als auch 4.7 probiert!
 
Okay...habe jetzt das Problem erst mal temporär gelöst, indem ich Accelerometer und Touchscreen aus der Aufwachliste entfernt habe:
Code:
sudo sh -c "echo XHC > /proc/acpi/wakeup"
Damit das ganze permanent bleibt, habe ich dann noch einen kleinen service kreiert:
Code:
cat /etc/systemd/system/disableXHCwakeupFromSuspend.service
[Unit]
Description=disable the instant resume on suspend due to USB-Hub with wacom and accelerometer attached

[Service]
ExecStart=/bin/bash -c "echo XHC >> /proc/acpi/wakeup"

[Install]
WantedBy=multi-user.target

Ich habe leider nicht genauer rausfinden können, wer jetzt genau den Ärger macht und warum die beiden Geräte nicht eh per default keine Weckung ermöglichen...
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben