Подробный гайд: Настройка параметров ядра Linux с драйвером AMDGPU

Настройка параметров ядра Linux для драйвера AMDGPU: оптимизация игр, стабильность системы, диагностика проблем видеокарт Radeon

2026.05.18                  


Подробный гайд: Настройка параметров ядра Linux с драйвером AMDGPUПодробный гайд: Настройка параметров ядра Linux с драйвером AMDGPU

Важно:

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


Оглавление

  1. Введение: что такое параметры ядра
  2. Проверка текущего драйвера и оборудования
  3. Способы настройки параметров ядра
  4. Основные параметры AMDGPU
  5. Параметры для старых карт (SI/CIK)
  6. Оптимизация для игр и производительности
  7. Устранение неполадок
  8. Полезные команды для диагностики

Введение: что такое параметры ядра

Параметры ядра (kernel parameters) — это настройки, передаваемые ядру Linux при загрузке. Они позволяют управлять поведением драйверов, включая amdgpu — открытый драйвер для видеокарт AMD Radeon серии GCN (Graphics Core Next) и новее.

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


Проверка текущего драйвера и оборудования

Перед настройкой определите, какой драйвер используется и какая у вас видеокарта:

# Проверка активного драйвера
lspci -k | grep -EA3 'VGA|3D|Display'

# Пример вывода:
# 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] ...
#     Kernel driver in use: amdgpu
#     Kernel modules: radeon, amdgpu

# Проверка версии ядра и модуля
modinfo amdgpu | grep -E 'filename|version'

# Проверка текущих параметров модуля
cat /sys/module/amdgpu/parameters/*

Способы настройки параметров ядра

Способ 1: Через GRUB (универсальный)

1. Откройте конфигурационный файл:
sudo nano /etc/default/grub

2. Найдите строку GRUB_CMDLINE_LINUX_DEFAULT и добавьте параметры:
# Пример:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.ppfeaturemask=0xffffffff amdgpu.dpm=1"

3. Обновите GRUB и перезагрузитесь:
# Для Debian/Ubuntu:
sudo update-grub

# Для Fedora/RHEL:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# Для Arch Linux:
sudo grub-mkconfig -o /boot/grub/grub.cfg

sudo reboot

Способ 2: Через modprobe (для параметров модуля)

Создайте файл конфигурации модуля:

sudo nano /etc/modprobe.d/amdgpu.conf

Добавьте параметры:

# Пример:
options amdgpu ppfeaturemask=0xffffffff
options amdgpu si_support=1

Примените изменения:

# Обновите initramfs (обязательно для загрузки параметров с раннего этапа)
# Debian/Ubuntu:
sudo update-initramfs -u

# Fedora:
sudo dracut --force

# Arch Linux:
sudo mkinitcpio -P

sudo reboot

Способ 3: Временная настройка (для тестирования)

При загрузке в меню GRUB нажмите e, найдите строку linux и добавьте параметры в конец строки перед ---. Нажмите Ctrl+X или F10 для загрузки.


Основные параметры AMDGPU

Общие параметры

Параметр Тип Описание Значение по умолчанию
vramlimit int Ограничение объёма VRAM в МБ (для тестов) 0 (полный объём)
dpm int Управление динамическим питанием (0=выкл, 1=вкл) -1 (авто)
runpm int Runtime PM для дискретных GPU (0=выкл, -1=авто) -1
aspm int Управление ASPM PCIe (0=выкл, 1=вкл) -1 (авто)
audio int Включить/выключить HDMI/DP аудио -1 (включено)

Параметры производительности и питания

Параметр Описание Рекомендация
ppfeaturemask=0xffffffff Включает все функции PowerPlay, включая разгон Для разгона/мониторинга
ppfeaturemask=0xffff7fff Отключает GFXOFF (стабильность при зависаниях) При проблемах с зависаниями
vm_update_mode=3 Обновление таблиц VM через CPU При ошибках "gmc_v8_0 is hung"
sg_display=0 Отключить S/G display на APU При мерцании экрана

Параметры дисплея

Параметр Описание Значения
dc Включить/выключить Display Core -1=авто, 0=выкл, 1=вкл
abmlevel Уровень Adaptive Backlight Management 0-4 (0=выкл)
freesync_video Оптимизация для FreeSync 0=выкл, 1=вкл
virtual_display Виртуальные дисплеи для headless-систем 0000:26:00.0,4

Параметры безопасности и отладки

Параметр Описание
ras_enable Включение RAS (Reliability, Availability, Serviceability)
tmz Trusted Memory Zone (защита данных в памяти)
debug_mask Бинарная маска отладки (0x1=VM, 0x4=сброс и т.д.)

Параметры для старых карт: Southern Islands и Sea Islands

Для карт GCN 1.0 (Southern Islands, 2012) и GCN 1.1/2.0 (Sea Islands, 2013) может потребоваться явное включение поддержки в amdgpu:


Для Southern Islands (HD 7000, R7 240/250, R9 280):

# В GRUB_CMDLINE_LINUX_DEFAULT:
radeon.si_support=0 amdgpu.si_support=1

Для Sea Islands (R7 260, R9 285/380, R9 290/390):

# В GRUB_CMDLINE_LINUX_DEFAULT:
radeon.cik_support=0 amdgpu.cik_support=1

Если возникают проблемы с загрузкой:

# Отключите динамическое управление питанием:
radeon.dpm=0

Совет:Проверьте dmesg | grep amdgpu — система может подсказать нужные параметры:

Use radeon.cik_support=0 amdgpu.cik_support=1 to override

Оптимизация для игр и производительности

Максимальная производительность (для игр)

# В /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash \
amdgpu.ppfeaturemask=0xffffffff \
amdgpu.dpm=1 \
amdgpu.runpm=0 \
pcie_aspm=off \
iommu=pt"
Параметр Эффект
ppfeaturemask=0xffffffff Разблокировка всех функций разгона
dpm=1 Принудительное включение DPM
runpm=0 Запрет отключения GPU в простое
pcie_aspm=off Отключение энергосбережения PCIe (стабильность)
iommu=pt Улучшение производительности DMA

Энергосбережение (для ноутбуков)

# В /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash \
amdgpu.ppfeaturemask=0xffffbfff \
amdgpu.abmlevel=2 \
amdgpu.runpm=-1"
Параметр Эффект
abmlevel=2 Умеренное снижение яркости для экономии
runpm=-1 Авто-управление питанием

Стабильность при проблемах

Если наблюдаются зависания, артефакты или "белый экран":

# Отключение GFXOFF (частая причина зависаний на RDNA)
amdgpu.ppfeaturemask=0xffff7fff

# Отключение S/G display при мерцании
amdgpu.sg_display=0

# Фиксация уровня производительности
# (устанавливается через sysfs, не параметр ядра)
echo "high" > /sys/class/drm/card0/device/power_dpm_force_performance_level

Устранение неполадок

Чёрный экран при загрузке

# Добавьте в параметры ядра:
nomodeset  # временно, для загрузки
# Затем настройте amdgpu.dc=1 или amdgpu.dc=0 в зависимости от карты

Мерцание/артефакты на высоких частотах

# Отключите DPM или зафиксируйте уровень:
amdgpu.dpm=0
# или
amdgpu.ppfeaturemask=0xfffd7fff  # отключает GFXOFF и stutter

Зависания с ошибкой "gmc_v8_0 is hung"

# Принудительное обновление VM через CPU:
amdgpu.vm_update_mode=3

Проблемы с HDMI 4K@60Hz / аудио

# Попробуйте отключить аудио драйвер amdgpu:
amdgpu.audio=0
# Или используйте параметр для дисплея:
amdgpu.dcdebugmask=0x10

Карта не определяется / используется radeon вместо amdgpu

  1. Проверьте, что в ядре включена поддержка CONFIG_DRM_AMDGPU_SI / CONFIG_DRM_AMDGPU_CIK
  2. Добавьте параметры si_support=1 / cik_support=1 как описано выше
3. Убедитесь, что radeon не загружается первым:
   echo "blacklist radeon" | sudo tee -a /etc/modprobe.d/blacklist.conf

Полезные команды для диагностики

# Проверка загрузки модуля и параметров
lsmod | grep amdgpu
cat /sys/module/amdgpu/parameters/*

# Мониторинг GPU в реальном времени
watch -n 1 'cat /sys/kernel/debug/dri/0/amdgpu_pm_info'

# Частоты GPU и памяти
cat /sys/class/drm/card0/device/pp_dpm_sclk   # GPU clock
cat /sys/class/drm/card0/device/pp_dpm_mclk   # Memory clock

# Температура
cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input

# Загрузка GPU (%)
cat /sys/class/drm/card0/device/gpu_busy_percent

# Использование VRAM
cat /sys/class/drm/card0/device/mem_info_vram_used
cat /sys/class/drm/card0/device/mem_info_vram_total

# Проверка активного драйвера
lspci -k -d ::0300

# Логи ядра, связанные с GPU
dmesg | grep -i amdgpu
journalctl -k | grep -i amdgpu

Дополнительные ресурсы

  • ArchWiki: AMDGPU: wiki.archlinux.org/title/AMDGPU
  • AMD Instinct: Kernel Parameters Guide: instinct.docs.amd.com/projects/system-acceptance/en/latest/common/kernel-parameters.html
  • Утилита CoreCtrl для настройки AMD GPU: gitlab.com/corectrl/corectrl

Предупреждение:

Экспериментальные параметры (особенно ppfeaturemask=0xffffffff) могут привести к нестабильности системы или повреждению оборудования при неправильном разгоне. Используйте на свой страх и риск и всегда тестируйте изменения в безопасном режиме.