Ноутбук не может зависнуть или перевести в спящий режим (просыпается через 2-5 секунд без участия пользователя)

Все это начало происходить после обновления до 13.10, сейчас я работаю 14.04 и все еще имею ту же проблему.

Когда я закрываю крышку или я делаю sudo pm-suspend ноутбук переходит в режим ожидания на 2-5 секунд и просыпается сам собой.

То же самое происходит, если я пытаюсь сделать спящий режим.

У меня есть ощущение, что что-то просыпается / выводит процессор из режима ожидания, но я не могу понять, что.

Любая помощь в устранении этой раздражающей проблемы?

Редактировать:

Благодаря @Fabian я смог выяснить, что похоже, что карта Ethernet работает неправильно, и даже после того, как я установил карту, чтобы она не просыпалась по локальной сети (либо делаю acpitool -W 3 или же echo disabled > /sys/bus/pci/devices/0000:00:19.0/power/wakeup или же echo IGBE > /proc/acpi/wakeup, ноутбук продолжает просыпаться и показывать это, когда я acpitool -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

Есть идеи, как действовать дальше?

Сетевой драйвер, который использует IGBE, e1000e

5 ответов

Решение

У меня ядро ​​13.13 и материнская плата на базе Intel Z77X, и у меня работает следующая команда:

sudo sh -c "echo EHC1 > /proc/acpi/wakeup;echo EHC2 > /proc/acpi/wakeup;echo XHC > /proc/acpi/wakeup"

У меня сработало следующее:

cat /proc/acpi/wakeup

Ищите любые предметы с включенным статусом, которые выглядят так, как будто они там не принадлежат (для меня все, кроме LID0). Затем отключите их, сказав, например:

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

Убедитесь, что соответствующие записи действительно отключены, отправьте ноутбук в режим ожидания и надейтесь на лучшее:)

Испытывает точно такую ​​же проблему (ThinkPad T530, Ubuntu 14.04, но также 13.10 и 13.04, после пары приостановок, компьютер возобновляет работу сразу после приостановки).

Отключение IBGE из пробуждения совсем не помогло.

По предложению Романо, я попытался удалить модуль e1000e, и вуаля приостановить, как ожидалось.

Так:

sudo rmmod e1000e

до приостановки решает проблему.

Интересно, что проблема снова появляется сразу после установки модуля обратно (sudo modprobe e1000e) и приостановить без его удаления. Должно быть, это было что-то, связанное с оборудованием.

Чтобы автоматизировать это, я создал два простых сценария приостановки / пробуждения (протестировано на вышеупомянутом оборудовании, Ubuntu Trusty 14.04): sudo gedit /etc/pm/sleep.d/99_e1000e_remove:

#!/bin/sh

# Remove e1000e kernel module prior to suspend
rmmod e1000e

а такжеsudo gedit /etc/pm/power.d/99_e1000e_probe:

#!/bin/sh

# Modprobe e1000e kernel module after resume
modprobe e1000e

Скрипты должны быть исполняемыми (sudo chmod +x /etc/pm/sleep.d/99_e1000e_remove /etc/pm/power.d/99_e1000e_probe).

Заметки:

  • Я предполагаю, что сценарии довольно безопасны в использовании, даже если они не решают вашу проблему.
  • Я не использую пробуждение по локальной сети, поэтому я не знаю, как оно ведет себя с исправлением.

У меня это сработало (взято из другой ветки на аскубунту):

Ubuntu 14.04 просыпается сразу после приостановки

Вы можете попытаться отключить его с помощью сценария Upstart при каждом запуске автоматически:

Создать файл etc/init/disable-XHC.conf

Содержание:

start on started dbus
stop on stopping dbus

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

Решение systemd заключается в создании инструкции для systemd-tmpfiles записать что-либо в файл при его вызове.

Создать файл в /etc/tmpfiles.dнапример, /etc/tmpfiles.d/disable-network-wake.confсо следующим содержимым, в зависимости от того, для какого устройства вы хотите отключить пробуждение.

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

Смотрите также systemd-tmpfiles(8) и tmpfiles.d(5).

Ссылка: https://wiki.archlinux.org/index.php/Systemd

Другие вопросы по тегам