ACPI Error: AE_NOT_FOUND — Причины и исправление ошибок ACPI в Linux
Архитектура ошибки и симптомы сбоя
Сообщение «ACPI Error: AE_NOT_FOUND, During name lookup/catalog parse» генерируется подсистемой ядра ACPI CA (ACPI Component Architecture) на этапе загрузки ОС или подключения нового оборудования. Ошибка указывает на то, что байткод AML (ACPI Machine Language), зашитый в таблицах DSDT или SSDT материнской платы, пытается обратиться к несуществующему объекту, методу или регистру устройства, которое не было инициализировано прошивкой UEFI/BIOS сервера.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| AE_NOT_FOUND | ACPI Exception Code | Символ, метод или устройство (Node) не найдены в дереве ACPI Namespace. |
| DSDT / SSDT | ACPI Firmware Tables | Таблицы описания аппаратной конфигурации системной платы от вендора. |
| Impact | Benign / Fan / Power Fail | Чаще всего безвредно, но может нарушать регулировку кулеров, энергосбережение CPU или спящий режим. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Проверка критичности ошибки ACPI
Определите, к какому именно устройству относится отсутствующий метод (например, \_SB.PCI0._OSC или \_TZ.THM0):
# Фильтрация ошибок ACPI в системном журнале:
dmesg -T | grep -i -E "(ACPI Error|ACPI Exception|AE_NOT_FOUND)"
# Проверка состояния сенсоров и вентиляторов:
sensorsСценарий 2: Эмуляция версии Windows для совместимости с таблицами BIOS
Большинство производителей тестируют ACPI-таблицы только под ОС Windows. Укажите ядру Linux притворяться Windows в запросах _OSI:
# Добавьте в /etc/default/grub параметр acpi_osi:
GRUB_CMDLINE_LINUX="acpi_osi='Windows 2021' acpi_osi=! 'acpi_osi=Linux'"
# Либо мягкий режим ACPI:
# GRUB_CMDLINE_LINUX="acpi=strict"
# Обновите загрузчик:
sudo update-grub
sudo rebootСценарий 3: Обновление BIOS / UEFI прошивки системной платы
Обновите прошивку BIOS до актуальной стабильной версии через IPMI/iDRAC/iLO или EFI Shell. Вендоры регулярно выпускают фиксы поврежденных DSDT таблиц.
ITSTM проводит аудит совместимости аппаратного обеспечения, обновление прошивок вендоров первого уровня (HPE, Dell, Lenovo) и оптимизацию управления электропитанием.
Частые вопросы (FAQ)
Приводит ли ошибка ACPI AE_NOT_FOUND к падению сервера?
В подавляющем большинстве случаев (95%) нет. Ядро Linux просто пропускает вызов неисправного AML-метода и продолжает нормальную работу. Опасность возникает только в случае, если метод отвечал за аварийное отключение CPU при перегреве.
Что такое таблицы DSDT и SSDT?
DSDT (Differentiated System Description Table) — главная таблица ACPI, описывающая аппаратные ресурсы материнской платы. SSDT (Secondary System Description Table) — дополнительные таблицы расширения, описывающие процессоры, шины PCIe и контроллеры питания.
Можно ли полностью отключить ACPI параметром acpi=off?
На современных серверах и ПК параметр acpi=off приведет к невозможности загрузки, так как ядро не сможет обнаружить контроллеры прерываний APIC, ядра многопроцессорных CPU и линии PCIe.
Как декомпилировать и просмотреть ACPI таблицы сервера?
Установите пакет acpica-tools (iasl) и выполните команды: sudo acpidump > acpi.dat && iasl -d acpi.dat. Это развернет читаемый исходный код ASL.