Как активировать драйвер amdgpu

Видеокарты AMD имеют два драйвера, которые могут быть активированы по умолчанию в дистрибутивах Linux: 'Radeon' и 'Amdgpu'. Что определяет, какой из них активирован по умолчанию, так это модель вашего GPU. Очень старые GPU обычно совместимы только с драйвером 'Radeon', в то время как более новые модели используют 'Amdgpu'. Однако есть два семейства GPU AMD, которые совместимы с обоими драйверами. Я говорю о «Sea Islands» и «Southern Islands».

На этих GPU совместимость с 'Amdgpu' находится на экспериментальной стадии, поэтому по умолчанию она не активирована, и вам нужно активировать ее вручную с помощью простой и быстрой процедуры.

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

Ниже приведен список всех моделей GPU семейств 'Sea Islands' и 'Southern Islands'. Если ваш графический процессор есть в этом списке, то, вероятно, потребуется выполнить эту процедуру.

Tahiti, Bonaire, Hawaii, Pitcairn, Cape Verde, Oland.

Family Chipset name Microarchitecture ISA Product name
Southern Islands CAPE VERDE, PITCAIRN, TAHITI, OLAND, HAINAN GCN1.0+ DCE 6.x HD7750-HD7970, R9 270, R9 280, R9 370X, R7 240, R7 250
Sea Islands BONAIRE, KABINI, KAVERI, HAWAII, MULLINS GCN2.x DCE 8.x HD7790, R7 260, R9 290, R7 360, R9 390

Существует очень простая команда, которая скажет нам, совместим ли используемый в данный момент GPU с 'Amdgpu'. Просто скопируйте приведенную ниже команду, вставьте ее в терминал и нажмите 'Enter':

lspci -k | grep -e radeon -e amdgpu

На экране появятся две строки, похожие на эти:

Kernel driver in use: radeon  
Kernel modules: radeon, amdgpu

Драйвер, который отображается в строке «Kernel driver in use», - это тот, который активирован в данный момент, а содержимое строки «Kernel modules» - это драйверы, которые доступны для использования. Если приведенная выше команда не вывела 'amdgpu' , значит, ваш GPU совместим только с драйвером 'Radeon'.

Если в вашем случае используется драйвер 'Amdgpu', то вам больше ничего не нужно делать, лучший вариант уже активирован. Однако если используемый драйвер - 'Radeon', а 'Amdgpu' отображается как доступный, выполните процедуру для его активации.

Для начала узнаем какая конкретно карта у нас установлена и определим по вышеприведенной таблице к какому семейству она относится. Для этого введем следующую команду:

lspci | grep -E "VGA|3D"

В моем случае результат следующий:

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81)

Моя карта семейства Sea Islands, но у вас может быть Southern Islands, поэтому рассмотрим оба примера.

Самый простой способ активации amdgpu, это отредактировать файл настроек Grub так, чтобы при загрузке система знала, что ей следует использовать 'Amdgpu'.

sudo nano /etc/default/grub

Вы получите экран, похожий, но не обязательно идентичный приведенному ниже:

В конце строки «GRUB_CMDLINE_LINUX», перед закрывающей кавычкой, вставьте строку:

  • Для Southern Islands (SI):
radeon.si_support=0 amdgpu.si_support=1
  • Для Sea Islands (CIK):
radeon.cik_support=0 amdgpu.cik_support=1
  • Возможен и такой вариант:
radeon.si_support=0 amdgpu.si_support=1 radeon.cik_support=0 amdgpu.cik_support=1

Файл должен стать выглядеть примерно так:

Теперь для сохранения нажмите комбинацию клавиш «Control + O» и «Enter». Затем закройте текстовый редактор с помощью «Control + X».

Чтобы активировать новые настройки, необходимо обновить Grub с помощью следующей команды:

В Debian и его производных

sudo update-grub

В Fedora

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

В Arch и его производных

sudo grub-mkconfig -o /boot/grub/grub.cfg

Перезагрузите машину, и все!

Если вы снова выполните команду

lspci -k | grep amdgpu

, вы увидите, что теперь используется драйвер Amdgpu.