Почему видеокарты AMD Radeon это худший выбор для Linux
Наверняка многие слышали байку о том, что вот берёте видеокарту от AMD и с линуксами всё будет прекрасно! Ага, конечно...
реклама
Давайте начнём с небольшой истории, из-за предубеждений относительно NVIDIA, я с давних времён предпочитал видеокарты AMD, у меня были и такие старые видеокарты как Radeon 9600, X800 GTO, HD 4870, и такие, как HD 7850, 7870XT, R9 280, R9 290, R9 390X (быстро умерла из-за короткого замыкания в чипе AMD), RX 560, Vega 56 (вернулась в магазин из-за артефактов), RX 5600M (до сих пор доставляет проблемы), и это далеко не весь список видеокарт, с которыми я имел дело.
Но однажды у меня встал выбор, купить RX580/590 или GTX 1070, в итоге купил GTX 1070, вот тогда я понял, что значит нормально пользоваться компьютером, а не танцевать над вечно кривыми драйверами и видеокартами с напильником, исправляя бесконечные косяки "лучшего" производителя "красного лагеря" в лице Sapphire, ведь именно от них я обычно брал видеокарты, и практически у каждой были серьезные косяки с системами охлаждения, да и биосами тоже...
Доходило до того, что приходилось перепаивать радиатор Sapphire HD 7870XT паяльным феном, ведь там была пластина крепления кожуха, что препятствовала охлаждению цепей питания, от чего они настолько сильно грелись, что текстолит потемнел ещё до того, как видеокарта попала в мои руки.
реклама
В общем, благодаря GTX 1070 я забыл о бесконечных проблемах с драйверами и самими видеокартами, она просто нормально работала, да и работает по сей день, но уже в среде Linux, спасибо NVIDIA за выпуск адекватных драйверов.
Но мне захотелось снова "прикоснуться" к ужасному AMD Radeon, ведь я же сейчас использую Linux, если верить байкам про AMD и Linux - всё должно быть прекрасно!
Однако покупать полноценную видеокарту мне не хотелось, слишком много места занимает, тем более я был уверен в том, что она будет валяться мусором, ведь нет надежды на то, что AMD каким-то чудом исправились, и вдруг начали выпускать нормальные драйверы...
Мне нужен был компактный вариант, чтобы занимал минимум места, потому посмотрел в сторону процессоров, и так был заказан AMD Athlon 200GE примерно за ~20$ (~68р, ~2000рр):
реклама
Изначально думал купить Ryzen 3 2200GE за ~45$, но мне не хотелось тратить больше ~30$ на хлам от AMD, которым вероятно даже не буду пользоваться, а Athlon 3000G стоил неадекватные ~60-80$, потому был куплен Athlon 200GE:
Только одна ножка оказалась погнута, но совсем незначительно, так что всё отлично:
реклама
Ну что же, сохранив настройки приступаю к разборке своего компактного ПК в самодельном корпусе:
Ничего сложного, снимаю крышку, а там радиатор процессора доступен для демонтажа:
Отлично, новый процессор установлен:
А старый извлечён, одно лишь забавно, дата на R7 2700X указана 2017 год, когда на Athlon 200GE указан 2016 год, ну да ладно, сейчас нужно сделать небольшую доработку радиатора:
Для начала посмотрим на пылевые отложения, и они уже есть, хотя радиатор не проработал даже месяц с момента обзора, как я и предполагал - классический радиатор придётся чистить гораздо чаще, чем модифицированную 2U башню:
Главная доработка состоит в разгибании рёбер, чтобы улучшить продуваемость радиатора, ведь под радиатором практически нет свободного пространства для эффективного проветривания, таким образом я уменьшил сопротивление воздушному потоку открыв боковые направления, это так же должно уменьшить скорость отложения пылевых наростов, ибо радиаторы с меньшим сопротивлением воздушному потоку, как показывает практика, забиваются гораздо медленнее:
Отлично, процессор установлен, радиатор прикручен, можно собирать:
Монитор подключаю в HDMI системной платы, чтобы сразу проверить работоспособность процессора:
Настройки BIOS сбросились, ожидаемо, но моё внимание сразу привлекла частота памяти, она ограничена частотой 2666 МГц, спасибо AMD за искусственные ограничения установленные процессору Athlon 200GE:
Далее отмечу новые настройки, появилась настройка частоты встроенного ГП, от 200 до 3000 МГц, так же есть настройка напряжения от 0.00625 до 1.55 вольт:
Но неизвестно, работают ли эти они, ведь память тоже можно выставить более 2666 МГц, в любом случае выставлю профиль настроек от 2700X, ибо лень вручную настраивать память и кривые системы охлаждения:
Проверяю, настройки ядер процессора пока оставляю на "авто", замечаю тот факт, что пропали настройки частоты ГП при применении профиля, но они появятся после перезагрузки, особенность оболочки BIOS:
Перезагружаю, стартует довольно долго, слышно что система пытается несколько раз загружаться, и частота памяти не установилась на уровне 3333 МГц, увы, но AMD жёстко ограничили частоту памяти для процессора, из интересного ещё нашлась настройка встроенной графики, позволяет что-то заблокировать или форсировать, вероятно это относится к самому ГП:
Вполне возможно долгий запуск происходит из-за того, что процессор отказывается работать с установленными параметрами памяти, и постепенно откатывается до рабочих значений при частоте 2666 МГц, максимальной разрешённой для процессора...
Ну что же, пришло время загрузить линукс, говорят линуксы лучше использовать с AMD, и на первый взгляд всё выглядит нормально, рабочий стол показался, разрешение экрана полное 2560x1440:
Проверяю диспетчер задач, 4 "ядра" на месте, память показывает 2666 МГц, увы, но в биосе не обман зрения был с текущей рабочей частотой:
Далее проверяю вкладку GPU, и там всё разнесло по линуксоидски, неужели так и должно быть с AMD? Впрочем, я не удивлён, но уже насторожен, особенно отсутствием датчика Tdie, его просто нет, а ведь именно датчик Tdie показывал реальную температуру процессора у Ryzen 7 2700X...
Наконец запускаю ChimbaBench для проверки встроенной графики, но увы, работает драйвер llvmpipe вместо Radeon, то есть обычные ядра процессора рисуют картинку вместо ГП:
Иду проверять glxinfo, и да, в наличии только "программный" llvmpipe, lspci говорит о том, что за Radeon Vega отвечает хвалёный AMDGPU, то есть всё вроде и нормально, но не работает полноценно, а сколько сказок в интернете про божественное "амуде" под линуксом...
Ещё в списке не видно видеокарты GeForce GTX 1070, на что я обратил внимание позже...
Тут мне захотелось вернуться на видеокарту здорового человека, GeForce GTX 1070, но увы, не получил никакой картинки:
В итоге я остался только со встроенной нефункциональной графикой AMD, хотя нормальная видеокарта установлена и подключена, но не подключена при этом, короче возвращаюсь к Radeon:
Ну хорошо, любой пользователь Windows скажет - установи драйверы на ГП от AMD, но увы, AMD не выпускает для Linux драйверов, а если быть точнее - выпускает непригодный для нормального использования мусор под видом драйверов, убогие линуксоидные пакеты зависимостей абсолютно непригодные для использования без интернета:
Я уже молчу про вариант танцев с терминальными командами, AMD на полном серьёзе предлагает людям заниматься этим идиотизмом терминальным, а потом искренне не понимают, почему это большинство предпочитают видеокарты NVIDIA:
Может мне и нужно было вручную остановить графический сервер линукса, чтобы установить драйвер для GTX 1070, но понимаете в чём дело, в случае NVIDIA я могу взять любой желаемый драйвер и установить на любом компьютере с линуксом, хоть там Debian, хоть SUSE, да хоть FreeBSD и Solaris, NVIDIA даже для такой редкости выпускает драйверы:
Тем временем AMD поддерживает в основном только отвратительную Ubuntu, и ещё несколько не очень популярных дистрибутивов Linux, при этом не предоставляет нормальных установочных пакетов, лишь мракобесие весом 14 КБ зависимое от репозиториев! Это называется "почувствуйте разницу в поддержке".
Чисто теоретически, можно залезть в репозиторий AMD, и стащить пакеты молясь, что они заработают в линуксах помимо ужасной и нефункциональной Ubuntu:
И там даже можно найти драйвер amdvlk известный тем, что в нём постоянно вырезают поддержку "устаревших" видеокарт, например RX 580 и Vega 56/64, и что характерно для линуксоидных репозиториев - старые версии пакетов тут не найти, в которых еще была поддержка "устаревших" RX 500 / Vega, судя по всему, их удалили в классическом жанре линуксоидных репозиториев:
Но самое печальное в том, что этим всем идиотизмом придётся заниматься вручную, либо использовать 14 КБ мусор от AMD, но он втихаря всё сделает будучи зависимым от интернета, а значит я, как пользователь, оказываюсь тотально зависимым от репозиториев AMD в сети.
Это очень плохо, ведь как известно - репозитории в любой момент могут исчезнуть, как и владельцы репозиториев могут в любом момент удалить "устаревшие" пакеты, таким образом принуждая "обновлять" оборудование, ведь "устаревшее" не сможет работать без драйверов...
В общем с AMD нет варианта чтобы оно просто установилось и работало, можно только страдать, и страдать, людям из AMD не хватило мозгов сделать нормальные установочные пакеты драйверов, как это постоянно делает NVIDIA, увы.
Даже Intel UHD 600 работала в том же линуксе, где AMD не заработала, ибо Mesa3D не подружилась с Radeon Vega 3...
Кстати, совсем забыл посмотреть на характеристики процессора в CPU-X, сокет FP5 (BGA-1140), забавно:
Ну а вкладка графики пуста, причём название ГП настолько длинное, что вылезло за пределы окна, ох уж этот линуксоидный софт, вечно какие-то косяки на ровном месте:
Ладно, делать нечего, загрузимся в Windows, по крайней мере AMD не настолько ещё обнаглели, чтобы для Windows не выпускать драйверы, или обнаглели...
Решил заранее загрузить последнюю адекватную версию драйвера (22.6.1), и последний доступный, но тут же выяснилось, что AMD уже бросила "устаревшие" видеокарты поколения RX 500 / Vega, последняя версия драйвера 24.9.1, то есть NVIDIA до сих пор поддерживает GeForce 900 серии, выпущенные во времена R9 300 / Fury (2015 год), и даже GeForce 600 серии для Linux (2012 год), а AMD уже бросила поддержку RX 500 / Vega (2017-2018 год), просто отвратительное отношение к потребителям:
К слову, сейчас у AMD последняя версия драйвера 24.10.1, и они действительно бросили всех пользователей видеокарт старее RX 5000 серии:
Впрочем, раньше помню AMD уже бросали пользователей с драйверами, тогда вроде кинули людей с видеокартами старее RX 400 серии, потому я не удивлён, что AMD бросила и обладателей RX 500 / Vega.
...
Ладно, загружаемся в Windows:
Правда выяснилось, что Athlon 200GE не видит полноценную видеокарту на шине PCI-E x16, потому под линуксом и не работала GTX 1070, ведь она просто "не подключена" (второй скриншот уже после установки драйвера AMD):
Ну ладно, устанавливаю драйвер AMD для Windows:
И даже перезагружать не пришлось, Windows сразу запустила драйвер видеокарты:
Но дальнейший материал по теме Windows оставим для следующей статьи, просто чтобы не перегружать материалом за один раз...
Да, кстати, чтобы не сидеть под линуксом без драйверов, было решено установить подходящие официальные драйверы AMD через пакетный менеджер, заранее подключил репозиторий конечно же, обратите внимание на указание пакетному менеджеру "trusted=yes", это сделано чтобы APT не ругался на подписи, и как я понимаю, 14 КБ пакет с сайта AMD это всё подписывает автоматически, без ведома пользователя, а ещё линуксоиды заикаются про мнимую безопасность в линуксах и репозиториях, пф:
Но увы, amdgpu-dkms не установился, ошибка "dependency problems", то есть случился характерный для линуксов "ад зависимостей":
Кто виноват? Конечно же ядро Linux ветки 6.9, драйверы AMD, как и драйверы NVIDIA, оказались несовместимы с более новыми ядрами "дряхлого пингвина", чем под которые они разрабатывались, что там линуксоиды верещали про крутость драйверов AMD, мол, у них всё прекрасно и открыто, можно обновлять ядра линукса и якобы не будет никаких проблем?
По сути сейчас раскрылась очередная ложь ярых фанатов линукса, мол, это только у NVIDIA проблемы с модулями ядра для Linux, нет! У AMD тоже с этим ровно такие же проблемы, как и у NVIDIA, ибо источник проблемы не драйвер, а сам Linux, разработчики которого постоянно ломают обратную совместимость:
Ну да ладно, удалю DKMS модули AMD, что конфликтуют с линуксом версии 6.9, и попытаюсь перезагрузить систему с установленными остальными пакетами AMDGPU / MESA-AMDGPU, ибо без перезагрузки за API отвечает процессор, а не видеокарта.
Но увы, всё равно используется llvmpipe вместо видеокарты, потому остался последний вариант - официальный убогий пакет AMD с сайта размером 14 КБ:
Никаких ярлыков в меню, никакой дружелюбности к пользователю, так что иду в терминал и колдую заклинания, но AMD драйвер отказывается устанавливаться ссылаясь на неподдерживаемую операционную систему на основании ID из файла os-release:
Ладно, последняя надежда в использовании DKMS модулей от более новой Ubuntu 24.04 вместо 22.04, я стянул репозитории из интернета, благо он весил меньше гигабайта, вместо обычных 200+ ГиБ... Но и тут облом полнейший:
Так что нет смысла пытаться обманывать утилиту amdgpu-install, она не сможет установить полноценно драйвер видеокарты, ведь DKMS модули это часть пакета amdgpu...
Но давайте попробуем, вдруг произойдёт чудо?
Подменил значит записи в os-release файле, но увы, "ад зависимостей" передал привет ошибками:
Пробую руками установить зависимости, но они ругаются на версию libc6, требуется версия GLIBC 2.38 и новее, а у меня установлена далеко не самая старая 2.36:
Ладно, попробуем Ubuntu 20.04 выставить в os-release, вдруг прокатит, хотя и не должно, ведь у меня Debian 12, а Ubuntu "focal" гораздо старее... Впрочем, там даже показывать нечего, все такие же проблемы зависимостей.
Тут я почувствовал неладное, и да, в списке репозиториев автоматический установщик добавил дополнительный репозиторий, и там Ubuntu 24.04 в качестве источника (noble), то есть AMD мало того размазала свои драйверы по репозиторию как говно по сортиру, но и сделали это размазав драйвер сразу на два разных репозитория! Просто феноменальный идиотизм...
Вручную задал jammy (Ubuntu 22.04), и оно начало качать недостающие зависимости, однако всё снова упёрлось в злополучный DKMS модуль драйвера, что не работает по вине разработчиков Linux, постоянно ломающих обратную совместимость с каждой новой версией "дряхлого пингвина"...
Короче у меня слишком новый линукс, с которым драйверы AMD не могут работать из-за поломанной обратной совместимости в ядре, а драйвер от Ubuntu 24.04, вероятно совместимый с условно новым ядром линукса, не может быть установлен по вине характерного для линуксов ада зависимостей...
Похоже у меня есть только один вариант установить драйверы AMD, это откатить ядро на старые версии и молиться, чтобы на этом линуксоидные AMD проблемы закончились...
Не знаю что именно оно компилирует при установке ядра Linux 6.7, но это похоже на драйвер AMD, оно наверное уже больше 10 минут компилирует что-то там... Просто ужасно долго, в среде Windows у меня за минуту драйверы установились и были готовы к работе, а тут мало того процессор грузит на полную, так ещё и так долго:
Даже драйвер NVIDIA так долго не собирался под ядро 6.7, как это было с каким-то "amd.YC...":
И да, DKMS модули AMD таки выдали ошибку, но неизвестно к какому ядру она относится, ведь помимо 6.7 установлено 6.9:
Хотя ладно, установим еще линукс версии 6.4, уж с ней то обязано заработать! Просто чтобы не тратить лишний раз время на дополнительные загрузки, если вдруг с ядром 6.7 драйверы AMD не заработают:
Но увы, пляски с ядрами Linux не привели к успеху, даже наоборот, почему-то исчезло из загрузочного списка ранее использовавшееся ядро Linux 6.1, неужели опять нужно переустанавливать линукс? Или оно исчезло ещё до установки драйверов AMD? Непонятно, но факт есть факт:
Ну а если вручную запустить Linux 6.1... Ничего не вышло, странно, ведь раньше это ядро точно работало, я его устанавливал ради тестов, и всё работало отлично когда-то:
Всё, у меня больше нет идей, как заставить этот мусор от AMD под названием Radeon нормально работать...
Вот и установили драйверы AMD... Кто-нибудь мне объяснит, почему только с AMD такое мракобесие происходит? Почему с NVIDIA такого мракобесия нет? Почему даже с Intel такого мракобесия не было? Предложите установить отвратную Ubuntu, которая создана для издевательства над людьми? А не проще ли вернуться в Windows, которая действительно сделана для людей...
А потом ещё не понимают, почему NVIDIA является железобетонным лидером в своей области, а от видеокарт AMD воротят нос, почему бы не воротить нос от таких отвратительных драйверов и "поддержки"... Тьфу, мусор, просто мусор драйверы видеокарт AMD для Linux.
Продолжение истории:
Почему AMD Radeon это худший выбор для Linux, или как пришло время переустанавливать линукс
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила