Статьи

Шпаргалка по установке драйвера видекарт AMD на ubuntu

Установка драйверов для видеокарт AMD иногда предоставляет пользователю увлекательную возможность «потанцевать с бубном». Часто это связано с несовместимостью драйверов и установленного ядра.

Один из частных случаев установки драйвера 5.15.0-53 в (x)ubuntu 22.04 на ядре 5.15.0-53-generic описан в статье. К сожалению, не всегда получается повторить достигнутый успех описанным способом, поэтому, приступая к инсталляции новых видеокарт AMD в Linux, стоит быть готовым к преодолению трудностей.

Для упрощения действий по установке драйверов AMD в операционных системах на основе Debian (включая ubuntu и ее клоны) приводятся советы по установке, а также использующийся при этом список команд.

Главной целью является получение надежно работающей системы с драйверами, поддерживающими многопотоковые вычисления по технологии OpenCL.

На практике проверка производилась на компьютере под управлением xubuntu LTS-версий 18, 20 и 22 с видеокартой AMD Radeon RX5500XT.

Последовательность действий по установке драйверов AMD в Linux

Проверка наличия рабочей видеокарты в системе производится командой:

lspci | grep -E "VGA|3D"

или

sudo lshw -c video

Для работы/игр/майнинга на домашнем компьютере требуется наличие драйверов и компонентов runtime, отвечающих за выполнение opencl. Обычно все нужное для пользователя поставляется в одном флаконе комплекте с драйверами.

Если неизвестно, какая версия драйвера будет устанавливаться, есть желание инсталлировать самый новый драйвер (что не всегда оправдано), ищем на сайте AMD, какой самый новый пакет rocm поддерживает система (например, для xubuntu 18.04 (bionic) – это ROCm v5.2.3):

На странице с описанием релиза (rocm_v5.2.3_release_notes) указано, что это последняя версия, поддерживающая операционную систему ubuntu 18.04:

Support for Ubuntu 18.04 ends in this release. Future releases of ROCm will not provide prebuilt packages for Ubuntu 18.04.

Кроме того, указывается, что работоспособность пакета проверена на драйверах версии 22.20.1:

This release of ROCm is validated with the AMDGPU release v22.20.1.

Эту же информацию можно найти на ROCm Github.

Исходя из полученной информации, ищем инсталлятор (amdgpu-install) версии 22.20 на repo.radeon.com:

Для драйверов версии 22.20 самый новый релиз – это 22.20.5, качается по адресу:

Для операционной системы с ядром 20.04 выбирается инсталлятор из раздела focal, для ubuntu 22.04 — jammy:

Во всех случаях на сайте AMD необходимо проверять наличие поддержки конкретной видеокарты в устанавливаемом пакете драйверов.

На операционные системы более новой версии можно поставить и другие драйвера, например, для ubuntu 22.04 — rocm новейшей версии (на момент написания статьи 5.4.2):

Здесь же указывается версия совместимого ядра, хотя это на практике это не всегда соответствует действительности.

Далее ставим в систему deb-пакет, отвечающий за развертывание драйвера АМД. Например, для ubuntu 18.04:

sudo apt install ./amdgpu-install_22.20.50200-1_all.deb'

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

Уточняем, какие ядра имеются в системе:

dpkg --list | grep linux-image | grep ^ii

Например, для xubuntu 18.04:

ii linux-image-5.4.0-137-generic 5.4.0-137.154~18.04.1 amd64 Signed kernel image generic
ii linux-image-5.4.0-42-generic 5.4.0-42.46~18.04.1 amd64 Signed kernel image generic
ii linux-image-generic-hwe-18.04 5.4.0.137.154~18.04.112 amd64 Generic Linux kernel image
Операционная система xubuntu 22.04 после обновлений в январе 2022 года показывает наличие следующих ядер:

ii linux-image-5.15.0-43-generic 5.15.0-43.46 amd64 Signed kernel image generic
ii linux-image-5.15.0-58-generic 5.15.0-58.64 amd64 Signed kernel image generic
ii linux-image-generic 5.15.0.58.56 amd64 Generic Linux kernel image

После битья головой о стену нескольких неудачных попыток стало известно, что ядро 5.15.0-58 (оно же используется и в ubuntu 20.04) не совместимо с драйверами AMD.

Поэтому, при установке драйверов на (x)ubuntu версий 20.04 и 22.04 необходимо загрузиться на ядре linux-image-5.15.0-43-generic (переключить ядро, загружаемое по умолчанию, можно в grub-customizer, либо выбрать его на начальном этапе загрузки).

На ubuntu 18.04 драйвера AMD версии 22.20.5 успешно установились на ядро 5.4.0-42.

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

uname -r

Установку драйверов запускаем командой:

sudo amdgpu-install -y --accept-eula --usecase=opencl --opencl=rocr,legacy

Во время установки можно добавить текущего пользователя в группы video и render:

sudo usermod -a -G video $LOGNAME && sudo usermod -a -G render $LOGNAME

Проверить успешность установки можно программой clinfo, например:

Полную информацию об установленном драйвере AMD, связанных модулях и наличии каких-либо проблем с его работой, можно командой:

sudo dmesg | grep -i amdgpu

После успешной установки перезагружаемся на нужном ядре, делаем его основным (например, в grub-customizer), проверяем наличие в системе несовместимых ядер и удаляем ненужные kernel:

sudo apt remove --purge linux-image-5.15.0-58-generic
sudo apt remove --purge linux-image-unsigned-5.15.0-58-generic

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

Для удаления неудачно установленного драйвера и очистки системы используют команды:

sudo amdgpu-uninstall -y
sudo rm /var/crash/amdgpu-dkms.0.crash
sudo apt-get purge amdgpu-install
sudo apt autoremove && sudo apt clean && sudo apt-get autoremove && sudo apt clean

P.S. Драйвер amdgpu 22.20.50205-1 успешно ставиться на ядра 5.15.0-43 и 5.15.0-60 в (x)ubuntu.

8 комментариев

  • Сергей

    Похоже, что я становлюсь Вашим постоянным читателем. И оценил тезис о битии головой об стену.
    Иногда мне кажется, что Linux-а пишут целенаправленно для этого бития, для интеллектуалов-любителей )).
    Недавно я писал об установке последних драйверов АМД RX580 на свежей ubuntu-22.04.2-desktop. Ваша инструкция помогла увидеть OpenСl – платформы командой clinfo. Но, похоже, не все необходимые.
    Для начала скажу, что переход на ubuntu-22.04.2-desktop со старого 16.04-server вызвана необходимостью майнинга дерьмокоинов на алгоритмах, которые не даёт Феникс и Gminer, а последние версии Lol, T-rex, Nbr и Bzminer требовали библиотеки Libc.co.6 v.25 и выше, каковых, как выяснилось, для 16.04 нет вообще (даже если в описании майнера написано, что для 16.04) … Десктоп – в надежде подтянуть библиотеки, хотя работаю всё равно через SSH – привык.
    …так вот, драйвер у меня 5.4.50403-1 – один из последних , по Вашей инструкции встал, на удивление, без особой ругани, также ровно встал rocm-5.4.3. Но rocm-smi видит только одну из 7 амд-карт.
    … Bzminer на алгоритме Blake3 завёлся, карты увидел, майнинг запустил, хешрейт адекватный, но управление кулерами – совершенно невнятное, с трудом догоняет до 35%, хотя в конфиг – файле пробовал и фиксированный процент ставить и зависимость от нагрева – реакции нет.

    в 16.04 я этот вопрос закрывал сборным костылём из утилит Wolfamdctrl rocm-smi, здесь же Wolfamdctrl помогает только в установке Pow_lim, а rocm-smi – работает не адекватно. С кулерами нужно плясать и биться об стенку.

  • cryptoprofi

    Для управления вентиляторами Polaris-ов и более старых карт используйте atitool (репозиторий Github пользователя heavyarms2112, либо вытащите из дистрибутива RaveOS). Пример команды для нулевой карты по установке 55% скорости вращения:
    sudo ./atitool -i=0 -fancontrol=55 -logtoconsole

  • Сергей

    Благодарю Вас.
    atitool – сработало.
    Очень рад, что есть еще такие профи и одновременно альтруисты, как Вы.
    Дай Вам Бог здоровья и удачи.

  • cryptoprofi

    Спасибо! И Вам желаю здоровья, добра и благополучия.
    Все в мире связано… Есть такое очень важное не просто физическое/электрическое/волновое явление, как РЕЗОНАНС – проще говоря, что посеешь, то и пожнешь… Наша жизнь такова, какой ее мы сами делаем, привлекая те или иные энергии… Давайте мыслить позитивно и жизнь вокруг станет лучше…

  • Сергей

    Вы правы !
    Еще не раз обращусь к Вашему сайту. Много полезного и работающего.

  • Сергей

    А может из опыта подскажете еще одну вещь ?
    В своё время, для добычи эфира, я менял биосы на картах Амд.
    Для других алгоритмов это тоже полезно или лучше вернуть родные тайминги ?

  • cryptoprofi

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *