Где находится журнал для событий ACPI?

Вопрос или проблема

Использую Mint 14. Иногда я могу приостановить работу компьютера нормально, но после того, как он работает некоторое время, он больше не переходит в режим ожидания. Он просыпается через секунду или около того без внешних сигналов.

Думаю, что я отслеживаю что-то, что мне не нужно отслеживать:

>cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
LID       S4    *enabled   
SLPB      S3    *enabled   
IGBE      S4    *enabled   pci:0000:00:19.0
EXP3      S4    *disabled  
XHCI      S3    *enabled   pci:0000:00:14.0
EHC1      S3    *enabled   pci:0000:00:1d.0
EHC2      S3    *enabled   pci:0000:00:1a.0
HDEF      S4    *disabled  pci:0000:00:1b.0

Эти устройства довольно загадочны. Хотя было бы интересно узнать, что это за устройства, мне на самом деле важно только то, какое из них вызывает пробуждение компьютера (чтобы я мог отключить мониторинг этого устройства). Существует ли где-то журнал, который отслеживает события ACPI и может подсказать, какое устройство разбудило мой компьютер?

Все записи журнала во время событий ACPI фиксируются здесь:

 /var/log/acpid.log

Откройте терминал и наберите:

tail -f /var/log/acpi.log

это покажет вам содержимое файла журнала ACPI.

надеюсь, это поможет.

Рассмотрите возможность использования sudo acpi_listen

Он содержится в пакете acpid, который вы можете захотеть удалить после отладки. Я не уверен, использует ли/нуждается ли в нем Mint, и он может мешать другим системам энергосбережения, например, в systemd.

acpitool -e также полезен, вы можете увидеть вещи, которые могут вызывать события.

Некоторые события acpi находятся здесь (linux mint 18 sarah)

 grep -i acpi /var/log/kern.log |head

На ПК с процессорами x86 BIOS записывает в DMI, какое событие вызвало включение ПК. DMI (Desktop Management Interface) — это таблица, которая описывает аппаратные компоненты системы, но также содержит временные данные, такие как то, что вызвало пробуждение ПК. Запустите эту команду в командной строке:

sudo dmidecode -t system

На моем текущем ПК вывод выглядит так:

# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: To Be Filled By O.E.M.
    Product Name: To Be Filled By O.E.M.
    Version: To Be Filled By O.E.M.
    Serial Number: To Be Filled By O.E.M.
    UUID: 03000200-0400-0500-0006-000700080009
    Wake-up Type: Power Switch
    SKU Number: To Be Filled By O.E.M.
    Family: To Be Filled By O.E.M.

Handle 0x0009, DMI type 32, 20 bytes
System Boot Information
    Status: No errors detected

Ищите строку, которая начинается с Wake-up Type. В данном случае ПК был включен нажатием кнопки питания.

Обратите внимание, что, к сожалению, dmidecode может не работать на всех ПК. Таблицы DMI также могут быть неполными или даже неправильными, и вы можете всегда получать “Power Switch” в качестве типа пробуждения независимо от того, что на самом деле разбудило ПК.

Ответ или решение

Вопрос о том, где можно найти лог событий ACPI, весьма актуален для управления энергосбережением и устранения неполадок при переходе компьютера в режим сна. В данном конкретном случае пользователь замечает, что на Linux Mint 14 его система иногда не может корректно выйти в режим сна, а после включения компьютер просыпается примерно через секунду без видимых причин.

Теория

ACPI (Расширенный интерфейс конфигурации и питания) — это стандарт, который позволяет операционной системе управлять энергопотреблением компьютера и некоторыми аспектами его работы. ACPI события могут включать включение и выключение питания, переход в спящий режим, контроль за состоянием батареи и многое другое.

В системе Linux, причины пробуждения от режима сна могут варьироваться от аппаратных сигналов (например, клавиатура или мышь) до сетевых подключений и сигналов от других устройств. Чтобы эффективно управлять этими событиями и диагностировать проблемы, следует обратиться к лог-файлам и утилитам, которые отлавливают эти события.

Пример

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

  1. Лог-файл ACPI: В большинстве систем события ACPI записываются в файл /var/log/acpid.log. Для отслеживания свежих событий в реальном времени можно использовать команду:

    sudo tail -f /var/log/acpid.log

    Это позволит вам наблюдать за изменениями в логах по мере их появления, чтобы выявить какие события происходят незадолго до пробуждения системы.

  2. Утилита acpi_listen: Данная утилита может быть использована для мониторинга ACPI-событий в реальном времени:

    sudo acpi_listen

    Она показывать вам какие события ACPI зарегистрированы вплоть до уровня конкретного сигнала от устройства.

  3. Использование dmidecode: На x86 ПК можно воспользоваться утилитой dmidecode, чтобы получить данные о том, что именно инициировало пробуждение системы:

    sudo dmidecode -t system

    В результате выполнения этой команды будет предоставлен вывод, в котором вы можете найти строку, начинающуюся с "Wake-up Type", в которой указано какое событие инициировало пробуждение. Однако стоит отметить, что данная информация может быть неточной или некорректной в некоторых системах, так как зависит от добросовестности производителей в заполнении DMI таблиц.

  4. Фильтрация ядра через kern.log: Скрипты и сообщения от ядра, касающиеся ACPI, могут быть найдены при помощи фрагмента кода:

    grep -i acpi /var/log/kern.log | head

    Эта команда отфильтрует записи ядра, которые упоминают ACPI, и может предоставить некоторую полезную информацию относительно проблем, с которыми сталкивается ваша система.

Применение

Исходя из вышеприведенной информации, можно сделать следующие шаги для диагностики проблемы:

  • Проверьте /var/log/acpid.log: Постарайтесь поймать момент, когда система выходит из сна. Это может указать на конкретное событие или устройство, спровоцировавшее пробуждение.
  • Используйте acpi_listen: Запустите эту утилиту перед тем, как попытаться отправить машину в спящий режим. Это поможет определить активные сигналы ACPI.
  • Проверьте dmidecode и вывод kern.log: Возможно, вы выявите дополнительные подсказки о специфике оборудования или неправильных настройках конфигурации системы.

Заключение

Диагностика ACPI-событий требует некоторой прозорливости в работе с логами и утилитами Linux. Правильная интерпретация данных из журналов поможет выявить корень проблемы и создать более стабильную и эффективную систему энергосбережения. Хотя система может предоставлять устаревшую или недостоверную информацию, использование нескольких методов в комплексе обычно приводит к результату.

Оцените материал
Добавить комментарий

Капча загружается...