Драйвер видеокарты: Как выглядит одна критическая проблема практически любого дистрибутива Linux
реклама
Наверняка при попытке перейти на Linux многие слышали фразу вроде "выбрось НЕВИДИЮ, купи нормальную видеокарту от AMD", знакомо, не правда ли? Особенно иронично это звучало во времена, когда видеокарты AMD занимали плачевно малую долю рынка, да и сейчас они в меньшинстве, чего уж тут таить:
реклама
И такие "советы" от фанатиков Linux можно встретить даже сейчас (2023 год), неужели NVIDIA действительно такая плохая? Но как тогда они держат практически весь рынок видеокарт за собой?
реклама
Вообще NVIDIA не просто так лидирует на рынке видеокарт, может сами видеокарты и не идеальны, но поддержка у них на высшем уровне, и с этим невозможно спорить, достаточно просто открыть раздел загрузки драйверов...
Возьмём одну из крайне популярных серий видеокарт GeForce GTX 1000, драйверы есть для любой Windows начиная с 32 битной Windows 7, есть драйверы для 32/64 разрядных Linux, и даже для Linux под архитектуру ARM, этого мало? Держите драйверы для какого-то Solaris и даже FreeBSD!
Даже самая современная RTX 4090, причём в исполнении для ноутбуков, имеет драйверы для Windows 10/11 64-bit, Linux 64-Bit/aarch64 и FreeBSD x64, и кто-то после этого посмеет сказать, что у NVIDIA плохая поддержка?
![]() |
![]() |
Вот список драйверов для AMD Radeon RX 580, 32 битные версии ОС вообще не поддерживаются никак, да и среди линуксов поддержка лишь нескольких дистрибутивов в наличии, а с более старыми видеокартами у AMD вообще ещё печальнее бывают дела, как и с самым новым железом, как-то купили ноутбук с RX 5600M, а драйверов нет, и делайте что хотите.
реклама
Фанатики Linux наверняка всхлипнут, что для AMD не нужно устанавливать драйверы, ведь всё уже встроено в линуксах, и это уже критическая проблема, ведь у пользователя с какой-нибудь R9 290 есть только драйвер поставленный с дистрибутивом, причём весьма паршивый изначально, даже OpenCL не поддерживает, и другой выбрать невозможно:
Про паршивость AMD драйверов встроенных в Linux говорить особо нет смысла, всё и без лишних слов прекрасно видно:
![]() |
![]() |
реклама
Комбинация Linux и R9 290 + GTX 570 с двумя мониторами, зрелище весёлое:
А это установка драйвера для видеокарты NVIDIA GTX 1070 из официального репозитория дистрибутива Manjaro, установилось и сломалось:
Да, критическая проблема практически любого дистрибутива Linux это работа с драйверами! Причём важно заметить, линуксы ущербны не только при работе с драйвером видеокарты, но и со всеми драйверами в принципе, диспетчер устройств Windows тому доказательство, ибо в линуксах нет такого же удобного и функционального диспетчера для работы с устройствами и драйверами, если найдёте обязательно расскажите в каком "линуксе" такое существует:
Фанатики Linux гордятся тем фактом, что в линуксах все драйверы уже встроены в операционную систему, якобы пользователь просто устанавливает и пользуется без этой всей "вендузятной" возни с дровами, хотя на самом деле это серьёзная проблема, а не преимущество.
Вышеприведённые примеры выглядят неубедительно? У меня тут как раз появились новые примеры ущербности "линуксов" в плане работы с драйверами! На этот раз был взят MX Linux:
Ведь в рейтинге "distrowatch.com" он занимает первое место с большим отрывом! Ну точно теперь "проклятая" и "ужасная" Windows не нужна!
Конечно же дистрибутив отправился в виртуальную машину на проверку, и там же жидко обделался начав без моего разрешения интенсивно выкачивать из интернета всякое непонятное, причём делает это не сразу после запуска, а спустя некоторое время:
В общем дистрибутив ведёт себя не лучше Windows 10/11, ибо MX Linux без каких-либо предупреждений просто берёт и насасывает трафик из интернета, если Xfce версия MX Linux ещё так сяк, можно извратиться и выключить мусор насасывающий без разрешения обновления, то вот KDE версия этого дистрибутива вообще ужасна в этом плане...
Но сейчас не обзор дистрибутива, так что вернёмся к проблеме.
Производители видеокарт с давних времён поддерживают пользователей пакетами драйверов, у меня накопилось 57 гигабайт установочных пакетов, и все они для Microsoft Windows по очевидным причинам:
![]() |
![]() |
![]() |
Конечно, есть несколько пакетов и для Linux, почему так мало? Банально потому что "ЛИНУКС", даже несмотря на все труды NVIDIA, установить эти пакеты с драйверами не такая уж и простая задача:
Если в среде Windows достаточно запустить любой установочный пакет драйвера и установить нажимая кнопку "далее", то в линуксах всё гораздо сложнее, и проблем гораздо больше...
Прямо сейчас у меня установлен MX Linux 23 Xfce в качестве третьей ОС на ПК, и нормальный драйвер видеокарты от NVIDIA тоже установлен, для сравнения запущу ChimbaBench v2.5 в среде Windows 7 и MX Linux:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Что можно заметить сразу? Первое это производительность, MX Linux оказался явно медленнее Windows 7 в тесте GPU Heavy, но в тесте Simple Box наоборот, MX Linux показал гораздо больше FPS чем Windows.
О чём это говорит? Вообще сложно сказать пока не будут проведены тесты с разными версиями драйверов в среде Linux, а такие тесты провести настоящий геморрой на голову, это вам не Windows, где просто установил драйвер нужной версии и всё работает.
В линуксах просто установить нормальный драйвер это уже большая проблема, особенно если нужно сделать на тестовом ПК к которому просто нецелесообразно подключать интернет, чтобы удовлетворить типичный для линуксов ад зависимостей.
И сейчас я продемонстрирую что значит установить драйвер видеокарты в лучшем дистрибутиве Linux по рейтингу DistroWatch...
-
--
---
Установка драйвера видеокарты GeForce GTX 1070
Первым делом нужно переустановить линукс, ибо без этого действия не выйдет в полной мере показать насколько паршивая ситуация с драйверами в линуксах... Хотя сначала сделаю копию зависимостей и инструкций, без которых в принципе невозможно будет установить драйвер:
![]() |
![]() |
Почему именно MX Linux был выбран для примера? Вообще про это уже говорилось, по рейтингу DistroWatch это лучший дистрибутив Linux, но каким бы лучшим он ни был, в конечном итоге всё равно попал в статью:
![]() |
![]() |
![]() |
К слову, MX Linux меня даже порадовал настройками в процессе установки, здесь можно нормально настроить раскладки клавиатуры, что уже очень приятно после массы других дистрибутивов:
![]() |
![]() |
![]() |
Но больше всего меня порадовала возможность создать учётные записи без пароля, в том числе root, одним геморроем на голову меньше с бесконечными запросами пароля при любом движении в системе, видимо есть среди разработчиков дистрибутива адекватные люди:
![]() |
![]() |
После установки сразу же ползу в настройки "MX центр обновлений" и отключаю автоматический запуск этой гадости при старте системы, просто заранее позаботился об одной противной проблеме, так, на всякий случай:
Теперь можно приступать к установке драйвера видеокарты, вообще в приветственном окне есть "Инструменты", а там "Установщик драйверов Nvidia", казалось бы, всё уже сделано! Но увы, мы сейчас находимся в линуксах, а здесь всё сделано через жопу...
Конечно, если подключить интернет то и драйвер скорее всего без проблем загрузится из репозитория, а там может быть даже установится без проблем, хотя это уже не точно:
![]() |
![]() |
Почему я не подключу интернет и не позволю этим костылям установить драйвер видеокарты? На это есть ряд причин, начиная от медленного и нестабильного интернет канала (мобильная сеть), через который я буду вечность ждать пока всё загрузится, и заканчивая тем, что я сам хочу выбирать что устанавливать! Свобода выбора, знаете что это такое?
Вот есть у меня несколько драйверов в архиве, 466.47 версия и 466.77, на этих версиях у меня постоянно вылетали синие экраны при попытке поиграть в такую игру как Terraria:
Вот поэтому крайне важно, чтобы у пользователя была возможность установить любой драйвер, даже если он тестировался и разрабатывался под другую версию операционной системы, например драйвер от Windows Vista установить в Windows 7, порой это очень выручает, а "линуксы" как раз лишают пользователя такого выбора заставляя устанавливать именно то, что подсунули мейнтейнеры репозиториев.
Прежде чем начать установку драйвера разработанного компанией NVIDIA, нужно бы исправить очень раздражающий косяк дистрибутива, да, какие-то извращенцы сделали так, что в MX Linux по умолчанию всё открывается с помощью одинарного клика мышью:
![]() |
![]() |
Не знаю насколько сильно разработчики такого идиотизма продлили жизнь своей мышке за счёт одинарного клика для открытия файлов в проводнике, но скитаться в адских пучинах таким разработчикам, которые плевали на стандарты и привычки большинства людей... Одно радует, можно копировать файлы стандартным сочетанием ctrl+insert и shift+insert.
Устанавливать буду уже давно имеющийся в моём архиве драйвер NVIDIA версии 525.60.1, и я его не просто так скопировал в корневой каталог пользователя, на это есть одна серьёзная причина, но об этом позже.
Само собой просто запустить установочный пакет невозможно, это же линуксы, они могут открывать исполняемые файлы через архиватор, через блокнот, да и вообще как угодно, но не как исполняемые файлы, даже галочка в настройках файла не помогает:
Одним словом классика...
Но ничего, у меня же руки крюки, а значит лезу в терминал и колдую запуск установочного файла, но там идёт ругань на работающий X server, мол, его нужно закрыть прежде чем устанавливать драйвер:
![]() |
![]() |
![]() |
Логично, как установить драйвер, если предыдущий прямо сейчас используется? Но почему нельзя было сделать "как в Windows"? Чтобы этот самый X server закрывался в процессе установки драйвера, а после установки автоматически запускался? Вот фанатики Linux часто визжат, мол пользователи безосновательно хотят чтобы "всё" было как в Windows, ух вендузятники окаянные...
Ладно, у меня же руки крюки, что мне стоит самому всё сделать? Чтобы прямо всё было в духе линуксов! Запускаю диспетчер задач, понимаю что всё настроено, как всегда, дерьмово, настраиваю крюками вручную:
Нахожу процесс Xorg, но чтобы его убрать нужно избавиться от процесса lightdm, на что получаю запрет от дистрибутива, хотя пользователя создавал с правами администратора...
![]() |
![]() |
![]() |
Ну ничего страшного, руки крюки знают что делать! Убиваю нужный процесс через sudo kill, готово, теперь X server не будет мешать, правда теперь вообще ничего не видно...
![]() |
![]() |
Перехожу в первую консоль через сочетание ctrl+alt+f1, и любуюсь кривыми кодировками в терминале, о господи, будто вернулся в нулевые с Windows XP, хотя даже Windows XP так откровенно не страдала кривыми символами в терминале...
Теперь понимаете? Почему ранее я заострил внимание на том факте, что скопировал драйвер именно в корневой каталог пользователя, и никак иначе? Если скопировать драйвер в папку "Документы", то к нему просто невозможно было бы получить доступ, в эти "квадратики" невозможно войти через терминал:
![]() |
![]() |
![]() |
Запустив установочный пакет меня снова облепили ошибками и проблемами, теперь ругань на встроенный драйвер Nouveau, ох как же линуксоиды гордятся, что у них все драйверы уже давно встроены в дистрибутивы, мол, всё из коробки работает... Заставить бы этих линуксоидов пользоваться на постоянной основе тем самым Nouveau драйвером, со всеми артефактами и косяками, а так же производительностью на уровне 5-10% от возможностей видеокарты:
Обзор Wubuntu 11.3 (KDE): Дистрибутив Linux для игр
![]() |
![]() |
![]() |
Но в NVIDIA сидят не дураки, установщик сразу же предложил внести проблемный Nouveau драйвер в чёрный список, и даже показал где именно и какой файл был создан, правда это дело нужно завершить, увы, установщик от NVIDIA не может себе позволить регенерировать initramfs, без регенерации которого ничего не произойдёт, а регенерировать его нужно через "sudo dracut --force" / "sudo /sbin/mkinitrd" / "sudo update-initramfs -u" в зависимости от дистрибутива, само собой колдовать это всё нужно вручную:
![]() |
![]() |
![]() |
![]() |
Что поделать, снова запускаю lightdm, ибо мне нужно открыть текстовый файл с вышеперечисленными командами, в конце концов мне лень через смартфон лезть в интернет и искать инструкции как и что колдовать в терминале:
![]() |
![]() |
![]() |
Дело сделано, в ответ команда ничего не выдала, хорошо это или плохо непонятно, узнаем после перезагрузки системы:
![]() |
![]() |
![]() |
Чтобы перезагрузить систему, пришлось немного поколдовать в терминале, бывает, это же "линукс":
![]() |
![]() |
Наконец Nouveau драйвер был отключен, это видно по характерно низкому разрешению экрана, и вот здесь у меня появился нескромный вопрос, а на кой хрен вообще нужен кривой Nouveau драйвер, если и без него система вполне запускается и работает?
Очевидно есть какой-то базовый драйвер в системе на котором сейчас все и работает, уж извините, но я не скажу название текущего драйвера, что работает вместо Nouveau, у меня только руки кривые, а тут нужно чтобы ещё и мозги были кривыми...
Юмор юмором, но это реально паршивая ситуация, вот вроде фанатики гордятся встроенными в дистрибутивы драйверами, но по факту от этих встроенных драйверов только лишние проблемы, они мешают установить адекватные драйверы.
![]() |
![]() |
Ладно, пришло время наконец установить драйвер! Упс, нужно ведь сначала закрыть X server... Немного колдовства в терминале и погружаемся в пучину мрака, получилось не с первого раза, но что поделать:
Ура! Новые ошибки! Новые грабли! Теперь установщик ругается на отсутствующий инструмент "cc", что это вообще такое? Какого хрена... Но дальше разработчики из NVIDIA снова позаботились о пользователе и написали что нужно установить "gcc", боюсь представить если бы этот установщик делала не NVIDIA, а какая нибудь опенсорсная хрень работающая в стиле "угадай что и как колдовать":
![]() |
![]() |
Само собой я не смогу установить gcc, пока не подключу интернет, и не позволю "линуксу" насосать хренову кучу трафика из репозиториев, потому использую план "Б":
![]() |
![]() |
У меня уже есть в наличии недостающая зависимость, и знаете в чём прикол? Чтобы эту несчастную зависимость установить линуксоидными способами на которые так молятся фанатики, нужно предварительно выкачать 80-90 МБ списков (apt update), это нужно чтобы дистрибутив мог найти нужный пакет в репозиториях, и только после этого можно будет скачать и установить вот эту мелкую зависимость размером всего 5 килобайт! Э - эффективность!
![]() |
![]() |
Устанавливаю мелкую зависимость и снова запускаю установочный пакет драйвера, в который раз я уже его запускаю? Даже сбился со счёта:
![]() |
![]() |
![]() |
Аллилуйя! Наконец пошла установка драйвера! Компиляция, как же линукс и без компиляции всего подряд, у меня аж напряглась система охлаждения в ПК, компиляция это однозначно ресурсоёмкий процесс, а в линуксах нужно часто всякое компилировать, ну либо вертеться как получится, ибо недалёкие разработчики часто не доводят своё дело до ума и бросают всё на уровне исходного кода...
Где там экологи вечно недовольные выбросами из выхлопных труб автомобилей? Пора бы уже на линуксы начать обращать внимание, пока их популярность на уровне "плинтуса" проблем особо нет, но что если они наконец смогут стать популярнее Windows? Как быть с бесконечно забитыми интернет каналами загрузкой бесконечных зависимостей? Как быть с компиляцией софта на стороне клиента, вместо распространения уже готовых для использования приложений?
А ведь это всё электроэнергия, а она в свою очередь сжигание топлива на электростанциях в глобальных масштабах, одно дело один разработчик будет компилировать 10 часов приложение, но совсем другое дело когда это же приложение будут компилировать миллионы пользователей, и даже не 10 часов, а больше в зависимости от производительности и энергоэффективности ПК...
![]() |
![]() |
![]() |
А ведь если линуксы каким-то неведомым чудом станут популярны со всеми текущими проблемами... Ладно, это уже какие-то фильмы ужасов начинаются...
Что там с установкой драйвера? В общем выглядит страшно, какие-то предупреждения и ошибки постоянно вылазят, но руки крюки умело всё обходят нажимая кнопку "продолжить"!
![]() |
![]() |
![]() |
![]() |
Не знаю почему на вопросе обновления конфигов курсор установлен по умолчанию в положение "нет", но я поставил в положение "да" и так закончил установку драйвера:
![]() |
![]() |
![]() |
Колдую перезагрузку через команду "выключить":
![]() |
![]() |
И вуаля, система запустилась с новым драйвером! Теперь даже ChimbaBench правильно отображает название видеокарты:
![]() |
![]() |
![]() |
Запускаю GPU Heavy, и вижу 52 FPS, напомню, в среде Windows 7 производительность была около 57 FPS, а до переустановки MX Linux у меня было 54 FPS, хотя я понял в чём проблема:
![]() |
![]() |
Отключаю композитор рабочего стола в лабиринтах настроек:
![]() |
![]() |
И вот оно! Теперь у меня снова 54 FPS в тесте GPU Heavy как и было до переустановки линукса! Заодно задержки вывода стали явно более адекватными без композитора:
![]() |
![]() |
На этом вроде как и всё, вещи которые в Microsoft Windows можно сделать буквально двумя кликами мыши, в линуксах делаются как-то так, безобразно, долго, коряво, и с кучей проблем на ровном месте.
Да, я установил драйвер на видеокарту, теперь можно гордо вскрикнуть, что в линуксах можно сделать всё при желании! Ну или почти всё, ну или хотя бы некоторые вещи...
![]() |
![]() |
![]() |
Думали это всё? А хрен там плавал! Хочу я вот установить другую версию драйвера! Ожидаемо нужно снова ломать X servers, крюки на руках очень способствуют столь нелёгкому делу:
![]() |
![]() |
К счастью разработчики из NVIDIA позаботились о таком развитии событий, когда пользователь захочет установить другую версию драйвера для видеокарты, за что моё уважение им:
![]() |
![]() |
Процесс установки теперь действительно прост, нажимаю кнопку "далее" с увлечением смотря на предупреждения и ошибки, ну и колдую заклинание перезагрузки в конце через команду выключения:
![]() |
![]() |
![]() |
Ура! У меня получилось установить другую версию драйвера! Правда непонятно как это будет происходить если вдруг нужно будет установить не 530 версию, а допустим версию 396.54:
![]() |
![]() |
![]() |
Вот хочу я сравнить разные версии драйверов, посмотреть как там с производительностью, а то часто любят рассказывать как NVIDIA там занижает производительность с новыми версиями драйвера:
Думаю этим есть смысл заняться, главное иметь два линукса, один рабочий, второй запасной, ну и винду на всякий случай рядом...
В общем проверяю ChimbaBench и вижу даже небольшой рост FPS относительно более старой версии драйвера, хотя и едва заметно:
![]() |
![]() |
-
--
---
Заключение
Что можно сказать по поводу работы с драйверами в линуксах?
Кто-то скажет что линуксы развиваются, куча всякого нового разрабатывается, вулканы всякие, святые amdgpu драйверы и т.п., но где адекватная база? Почему мне вручную нужно ломать X server, когда в Microsoft Windows это всё происходит автоматически с бородатых времён? А линуксы точно развиваются? Или это просто красивые сказки от фанатиков?
В общем вы сами всё видели, мне больше нечего сказать по этому поводу, проблема есть, и она действительно серьёзная, ни один нормальный человек не будет столько извращаться пытаясь установить один несчастный драйвер для видеокарты, это просто не знаю как назвать без матерной ругани...
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
После "пингвина" рекомендуется открывать "форточку", иначе можно задохнуться...
реклама
Лента материалов
Интересные материалы
Возможно вас заинтересует
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила