Как найти причину, по которой ноутбук просыпается?

9

У меня проблема с зависанием моего ноутбука, но потом он просыпается, когда я этого не хочу (или сразу, или намного позже, когда в сумке - у меня здесь могут быть две проблемы). Но на данный момент этот вопрос касается устранения неполадок: есть ли команда, которую я могу запустить, которая скажет мне, каким был триггер для последнего resumeдействия? Например, была ли нажата клавиша или кнопка питания, был ли это сигнал пробуждения по локальной сети, переключался ли он с питания переменного тока на тесто и т. Д., И т. Д., И т. Д.

Похоже, что в Windows вы можете напечатать, powercfg -lastwakeчтобы узнать это. Поэтому я ищу Linux-эквивалент этой команды.

Если такой команды нет, что мне нужно искать, в каком файле журнала?

(Mint 16, xfce, Lenova Thinkpad, ядро ​​3.11.0-12-generic)

Даррен Кук
источник

Ответы:

3

Поскольку у вас есть ThinkPad, помимо других предложений (предварительная systemdподсказка), если вы используете thinkpad_acpiдрайвер, возможно, вы захотите взглянуть на него /sys/devices/platform/thinkpad_acpi/wakeup_reason. Этот файл содержит число, указывающее, разбудил ли встроенный контроллер ваш ноутбук по таким причинам, какнизкий заряд батареи (по крайней мере, я так думал), запрос на удаление док-станции и т. д.

Как Documentation/laptops/thinkpad-acpi.txtговорится:

wakeup_reason:
    Set to 1 if the system is waking up because the user
    requested a bay ejection.  Set to 2 if the system is
    waking up because the user requested the system to
    undock.  Set to zero for normal wake-ups or wake-ups
    due to unknown reasons.
Андреас Визе
источник
4

Системы с systemd

В системах, которые используют systemdвас, вы можете просмотреть журнал systemd с помощью journalctlкоманды.

пример

Вот, например, моя система перешла в спящий режим из-за закрытой крышки, а затем, когда я ее открыл, вы увидите события, связанные с этим, примерно так:

$ journalctl | less
...
May 19 09:04:47 greeneggs.bubba.net kernel: PM: Syncing filesystems ... done.
May 19 09:04:47 greeneggs.bubba.net kernel: PM: Preparing system for mem sleep
May 19 09:33:42 greeneggs.bubba.net kernel: Freezing user space processes ... (elapsed 0.002 seconds) done.
May 19 09:33:42 greeneggs.bubba.net systemd[1]: Time has been changed
May 19 09:33:42 greeneggs.bubba.net systemd-logind[772]: Lid opened.
...

Системы без systemd

Для систем, которые не используют, у systemdвас есть множество мест для поиска. Вы могли бы для начала заглянуть в dmesgжурнал. Вы также можете искать /var/log/syslogсообщения, связанные с управлением питанием или событиями, связанными с ACPI.

Я бы начал с того, чтобы заглянуть /var/log/pm_suspend.logвнутрь, предполагая, что оно существует. Особенно в таких дистрибутивах, как Linux Mint, вы, скорее всего, найдете такие сообщения:

Thu Feb 21 21:21:50 GMT 2013: Running hooks for hibernate.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate:
/usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate: success.
Running hook /usr/lib/pm-utils/sleep.d/00logging hibernate hibernate:
...

Ссылки

SLM
источник
Но systemd не используется по умолчанию в Mint или Debian. В настоящее время он включен только в качестве предварительного просмотра в Debian-stable.
Томас Хьюз
@GuyHughes - да, я знаю, я ищу способ сделать это в предыдущих версиях.
СЛМ
0

Вы можете начать с dmesgпроверки, man dmesgно вы можете попробовать dmesg -k.

Томас Хьюз
источник
dmesg -k | wc -lдает 3298 :-) Кстати, это говорит мне что-то другое, чтобы смотреть на /var/log/kern.log?
Даррен Кук
@DarrenCook просто определяет, когда произошло приостановление / возобновление, и анализирует этот раздел, что wc -lзначительно меньше.
Томас Хьюз