Как активировать драйвер amdgpu
Драйверы для графического процессора AMD в Linux
Видеокарты AMD имеют два драйвера, которые могут быть активированы по умолчанию в дистрибутивах Linux: 'Radeon' и 'Amdgpu'. Что определяет, какой из них активирован по умолчанию, так это модель вашего GPU. Очень старые GPU обычно совместимы только с драйвером 'Radeon', в то время как более новые модели используют 'Amdgpu'. Однако есть два семейства GPU AMD, которые совместимы с обоими драйверами. Я говорю о «Sea Islands» и «Southern Islands».
На этих GPU совместимость с 'Amdgpu' находится на экспериментальной стадии, поэтому по умолчанию она не активирована, и вам нужно активировать ее вручную с помощью простой и быстрой процедуры.
Если вы хотите узнать больше о типах драйверов, существующих для графических процессоров AMD в Linux, прежде чем выполнять описанные ниже процедуры, прочитайте эту статью.
Определение графического процессора AMD и используемого драйвера
Ниже приведен список всех моделей 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' отображается как доступный, выполните процедуру для его активации.
Как активировать 'Amdgpu' на 'Sea Island' или 'Southern Island'?
Для начала узнаем какая конкретно карта у нас установлена и определим по вышеприведенной таблице к какому семейству она относится. Для этого введем следующую команду:
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.