Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

Баг в BIOS ASUS превращает ноутбуки за $3000 в «глючное нечто» на уровне бюджетников

Новости

Все дело в неуместном Sleep() в коде BIOS

255 открытий3К показов
Баг в BIOS ASUS превращает ноутбуки за $3000 в «глючное нечто» на уровне бюджетников

Пользователи ноутбуков серии ASUS ROG (Strix, Zephyrus, Scar и др.) уже несколько лет жалуются на постоянные микрофризы: мышка «подвисает» на доли секунды, аудио в Discord трещит, YouTube лагает.

Эти проблемы затрагивают даже топовые модели с RTX 4080 и Core i9. Обновления драйверов, переустановка Windows и переход на Linux — ничего не помогает.

Профилировщик LatencyMon показывает конкретного виновника: ACPI.sys — компонент Windows, который исполняет код из BIOS. И именно этот код, как показало расследование, устроен катастрофически неправильно.

Что не так: прерывания, которые засыпают

Расследование показало, что примерно каждые 30–60 секунд BIOS запускает метод _GPE._L02, вызываемый при аппаратных событиях. Его задача — опросить статус батареи и питания.

Но он делает это внутри обработчика прерывания, вызывая Sleep() прямо в контексте ядра. То есть прошивка буквально приказывает процессору «поспать» на 25–100 мс — в момент, когда он должен работать максимально быстро.

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

Вишенка на торте: попытка отключить единственный активный GPU

Еще один баг прошивки: она регулярно пытается отключить дискретную видеокарту (dGPU), даже когда та — единственный источник вывода изображения (в режиме MUX/Ultimate).

Это приводит к циклическим попыткам «погасить» и «включить» видеокарту, на что драйвер NVIDIA отвечает зависанием, а в худшем случае — синим экраном (WIN32K_POWER_WATCHDOG_TIMEOUT).

Что говорит код

Декомпиляция ACPI-таблиц BIOS показала:

  • Код нарушает базовые принципы: использует Sleep() внутри прерываний.
  • Метод ECLV не завершает прерывание быстро, а задерживает его до 100 мс.
  • Система искусственно переинициирует прерывания, создавая бесконечный цикл.
  • Нет проверки текущего состояния MUX-переключателя — прошивка не понимает, что dGPU нельзя выключать.

Масштаб: страдают миллионы устройств

Симптомы описаны в сообщениях пользователей с 2021 года. Проблема затрагивает десятки моделей ROG и TUF: от G15 до Zephyrus M16.

Даже на свежих моделях 2023–2024 года пользователи фиксируют те же баги, и они документированы в логах LatencyMon и трассировках Windows Performance Analyzer.

ASUS пока молчит

На момент публикации ASUS не прокомментировала результаты технического расследования. Ошибка, по сути, заключается в одной строке кода, и легко исправляется в будущих версиях BIOS.

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

Следите за новыми постами
Следите за новыми постами по любимым темам
255 открытий3К показов