Как включить IOMMU и защиту Kernel DMA

Опубликовано

Чтобы блокировать DMA-устройства — платы расширения, которые читают память игры напрямую через PCIe, без запуска какого-либо софта на вашем компьютере, — античит GameGuard требует, чтобы в прошивке материнской платы был включён IOMMU. У Intel эта функция называется VT-d, у AMD — AMD-Vi или просто IOMMU.

Её поддерживают практически все процессоры, выпущенные с 2015 года, и на большинстве компьютеров достаточно изменить одну настройку в UEFI. В этой статье описано, как её включить и как с этим связана функция Windows Kernel DMA Protection.

Шаг 1. Проверьте текущее состояние

Нажмите клавишу Windows, введите msinfo32 и нажмите Enter. Откроется окно «Сведения о системе». Найдите три строки:

  • Режим BIOS — должно быть UEFI. Если указано Устаревший (Legacy), смотрите шаг 4.
  • Состояние безопасной загрузки — должно быть Вкл.
  • Защита DMA ядра (Kernel DMA Protection) — Вкл или Откл. Прежде чем беспокоиться об этом пункте, прочитайте шаг 3.

Заодно запишите значение поля Модель основной платы — это модель вашей материнской платы. Инструкция производителя именно для неё всегда точнее любого общего руководства.

Шаг 2. Включите IOMMU в UEFI

Перезагрузите компьютер и сразу при включении несколько раз нажмите Delete или F2 до того, как начнёт загружаться Windows. Если не получилось — выключите компьютер и попробуйте ещё раз, у некоторых производителей используется другая клавиша.

Далее найдите настройку для вашего процессора:

Intel

  1. Перейдите в Advanced → System Agent (SA) Configuration. На некоторых платах раздел находится в Chipset или CPU Configuration.
  2. Установите VT-d (иногда называется Intel Virtualization Technology for Directed I/O) в значение Enabled.
  3. Убедитесь, что Intel Virtualization Technology (VT-x) тоже Enabled — без неё VT-d не работает.

AMD

  1. Перейдите в Advanced → AMD CBS → NBIO Common Options. На некоторых платах опция находится прямо в Advanced или в разделе North Bridge.
  2. Установите IOMMU в значение Enabled.
  3. Убедитесь, что SVM Mode также включён.

Важно: выбирайте именно Enabled, а не Auto. На многих платах значение Auto оставляет функцию выключенной.

Сохраните настройки и выйдите — обычно это клавиша F10 — и дождитесь загрузки Windows.

Шаг 3. О функции Kernel DMA Protection

Kernel DMA Protection — это функция Windows, которая использует IOMMU, чтобы ограничить доступ подключённых устройств к памяти. Вы могли видеть её в msinfo32 на шаге 1.

Включить её напрямую нельзя. Windows активирует её самостоятельно на тех компьютерах, которые её поддерживают; ни в настройках Windows, ни в реестре, ни в групповых политиках нет переключателя для неё. Получите вы её или нет, зависит от прошивки материнской платы — производитель должен указать поддержку в таблицах прошивки.

Что можно сделать:

  1. Выполнить шаг 2 — сначала должен быть включён IOMMU.
  2. Загружаться в режиме UEFI, а не Legacy/CSM.
  3. Обновить BIOS материнской платы до последней версии: иногда производители добавляют поддержку в обновлении.
  4. Если в UEFI есть любая из этих опций, включите их: DMA Protection, Pre-boot DMA Protection, DMAr Support, Control IOMMU Pre-boot behavior, OS Kernel DMA Support, Memory Access Protection. Обычно они находятся на вкладке Security или Advanced.

Если после всего этого Защита DMA ядра по-прежнему показывает Откл, значит ваша материнская плата её просто не поддерживает. Это не проблема: требуется именно IOMMU из шага 2, а множество вполне нормальных плат никогда не предоставляют Kernel DMA Protection. Менять оборудование не нужно.

Шаг 4. Если режим BIOS — Legacy

И Kernel DMA Protection, и безопасная загрузка требуют режима UEFI. Переключение с Legacy/CSM на UEFI обычно требует предварительной конвертации системного диска из MBR в GPT: если отключить CSM, не сделав этого, Windows не загрузится и вы снова окажетесь в UEFI.

В Windows для такой конвертации есть встроенная утилита MBR2GPT. Сначала сделайте резервную копию данных, а если не уверены в своих силах — безопаснее не трогать эту настройку и просто включить IOMMU по шагу 2, он работает и в режиме Legacy.

Шаг 5. Проверка

После перезагрузки снова откройте msinfo32. На правильно настроенном компьютере должно быть Режим BIOS: UEFI и Состояние безопасной загрузки: Вкл. Защита DMA ядра может показывать как Вкл, так и Откл — в зависимости от платы, как описано в шаге 3.

GameGuard считывает состояние IOMMU при следующем запуске, поэтому просто запустите античит заново — подтверждать ничего не нужно.

Если такой опции нет вообще

Если в UEFI нигде нет настройки VT-d или IOMMU, сначала проверьте наличие обновления BIOS. На небольшом числе старых или OEM-плат (особенно в готовых офисных сборках) производитель так и не вывел эту настройку. В этом случае обратитесь в техническую поддержку на платформе FASTCUP.NET и укажите модель материнской платы из поля Модель основной платы, приложив скриншот окна msinfo32.

Смотрите также, как исправить ошибку «Secure Boot is disabled»:

gameguard.ac/help/ru-secure-boot-is-disabled

Поделиться

Still need help?

Contact support