la computadora portátil no se suspende o hiberna (se despierta después de 2-5 segundos sin interacción del usuario)

22

Todo comenzó a suceder después de actualizar a 13.10, ahora estoy ejecutando 14.04 y todavía tengo el mismo problema.

Cuando cierro la tapa o lo hago, sudo pm-suspendla computadora portátil se suspende por 2-5 segundos y se despierta sola.

Lo mismo sucede si trato de hibernar.

Tengo la intuición de que algo está despertando / sacando la CPU del modo de suspensión, pero no puedo entender qué.

¿Alguna ayuda para solucionar este molesto problema?

Editar:

Gracias a @Fabian, yo era capaz de darse cuenta de que parece que la tarjeta Ethernet se está portando mal e incluso después de configurar la tarjeta para no despertar en LAN (ya sea haciendo acpitool -W 3o echo disabled > /sys/bus/pci/devices/0000:00:19.0/power/wakeup, o echo IGBE > /proc/acpi/wakeup, la computadora portátil guarda despertar y mostrando este cuando lo hagaacpitool -w

Device  S-state   Status   Sysfs node
---------------------------------------
1. LID    S3    *enabled 
2. SLPB   S3    *disabled
3. IGBE   S4    *enabled   pci:0000:00:19.0
4. EXP1   S4    *disabled  pci:0000:00:1c.0
5. EXP2   S4    *disabled  pci:0000:00:1c.1
6. EXP3   S4    *disabled
7. EXP4   S4    *disabled
8. EXP5   S4    *disabled  pci:0000:00:1c.4
9. EHC1   S3    *disabled  pci:0000:00:1d.0
10. EHC2      S3    *disabled  pci:0000:00:1a.0
11. HDEF      S4    *disabled  pci:0000:00:1b.0

¿Alguna idea de cómo proceder desde allí?

El controlador de red que utiliza IGBE es e1000e

feniix
fuente
3
use dmesgpara ver los últimos mensajes del kernel, algo allí podría darle una pista de lo que está sucediendo.
roadmr
¿Ha deshabilitado la función Wake-On-Lan en el BIOS?
Mitch
Sí, eso fue lo primero que intenté.
feniix

Respuestas:

10

Tengo el kernel 13.13 y la placa base basada en Intel Z77X, y el siguiente comando me funciona:

sudo sh -c "echo EHC1 > /proc/acpi/wakeup;echo EHC2 > /proc/acpi/wakeup;echo XHC > /proc/acpi/wakeup"
huésped
fuente
11

Lo siguiente funcionó para mí:

cat /proc/acpi/wakeup

Busque cualquier elemento con estado habilitado que parezca que no pertenece allí (para mí, cualquier cosa excepto LID0). Luego deshabilítelos diciendo, por ejemplo:

sudo sh -c "echo XHC0 > /proc/acpi/wakeup"

Verifique que las entradas correspondientes hayan sido deshabilitadas, envíe la computadora portátil a suspender y espere lo mejor :)

fabianista
fuente
Muy buena ventaja, ahora tengo que averiguar por qué la tarjeta Ethernet integrada mantiene despierta a pesar de que me puse el despertador modo para que personas con discapacidad
feniix
1
Buena suerte con eso :)
Fabian
1
¿Has probado rmmodel controlador antes de suspender? (Solo un tiro en la oscuridad)
Rmano
El mismo problema molesto en Ubuntu 16.04.1. Esta respuesta no ayudó desafortunadamente.
Dan Dascalescu
+1 Esta es la única solución que funcionó para mí.
Bandi Kishore
7

Experimentando exactamente el mismo problema (ThinkPad T530, Ubuntu 14.04, pero también 13.10 y 13.04, después de un par de suspensiones, la computadora se reanuda inmediatamente después de la suspensión).

Desactivar IBGE desde el despertar no ayudó en absoluto.

Según lo sugerido por Romano, he intentado eliminar el módulo e1000e, y listo suspender como se esperaba.

Asi que:

sudo rmmod e1000e

antes de suspender resuelve el problema.

Curiosamente, el problema reaparece inmediatamente después de instalar el módulo back ( sudo modprobe e1000e) y suspenderlo sin su eliminación. Entonces, debe haber sido algo relacionado con el hardware.

Para automatizarlo, he creado dos scripts simples de suspensión / activación (probado en el hardware mencionado anteriormente, Ubuntu Trusty 14.04) sudo gedit /etc/pm/sleep.d/99_e1000e_remove:

#!/bin/sh

# Remove e1000e kernel module prior to suspend
rmmod e1000e

y sudo gedit /etc/pm/power.d/99_e1000e_probe:

#!/bin/sh

# Modprobe e1000e kernel module after resume
modprobe e1000e

Los scripts deben ser ejecutables ( sudo chmod +x /etc/pm/sleep.d/99_e1000e_remove /etc/pm/power.d/99_e1000e_probe).

Notas:

  • Supongo que los scripts son bastante seguros de usar, incluso cuando no resuelve su problema.
  • No estoy usando la activación de LAN, así que no sé cómo se comporta con la solución.
sopvkore
fuente
La computadora portátil tiene el mismo problema al usar Windows (acabo de instalar Windows 7 para mi esposa en la computadora porque obtuve una nueva) y hace exactamente lo mismo. Por lo tanto, puede estar relacionado con el hardware / firmware
feniix
1
Hola. Estoy usando Ubuntu 14.04 LTS con un Thinkpad X201s. Esta solución que eliminó e1000e con los pequeños scripts de ayuda ayudó a que la suspensión volviera a funcionar. Muchas gracias !
apos
1
Puedo confirmar que la misma solución funciona en un Thinkpad T540p y Ubuntu 14.04. Algo parece salir mal dentro del e1000emódulo. Para empezar, esto solo sucede ocasionalmente, la mayoría de las veces la suspensión funciona bien. Si aparece el problema rmmod e1000e, entonces puedo suspenderlo con éxito. Sin embargo, si modprobelo vuelvo a hacer después de reanudar, la próxima suspensión funcionará incluso con el módulo presente. Así que "reiniciar" el e1000emódulo parece hacer el truco para mí.
mindriot
1

Esto funcionó para mí (tomado de otro hilo en askubuntu):

Ubuntu 14.04 se despierta inmediatamente después de suspender

Puede intentar deshabilitarlo con un script Upstart cada inicio automáticamente:

Crear un archivo etc/init/disable-XHC.conf

Contenido:

start on started dbus
stop on stopping dbus

script
   sudo -u root sh -c "echo 'XHC' > /proc/acpi/wakeup"
end script
Ilian
fuente
0

La solución systemd es crear una instrucción para systemd-tmpfiles para escribir algo en un archivo cuando se invoca.

Cree un archivo /etc/tmpfiles.d, por ejemplo /etc/tmpfiles.d/disable-network-wake.conf, con el siguiente contenido, según el dispositivo para el que desee deshabilitar la activación.

w /proc/acpi/wakeup - - - - XHC

Vea también systemd-tmpfiles (8) y tmpfiles.d (5).

Ref: https://wiki.archlinux.org/index.php/Systemd#Temporary_files

FichteFoll
fuente