- Linux не видит дискретную видеокарту
- Как включить дискретную видеокарту на Linux
- Установлен проприетарный драйвер NVIDIA, но видеокарта не используется
- И всё-таки драйвер NVidia работает
- Какую видеокарту, встроенную в центральный процессор или выделенную выбирает Linux?
- Как узнать, какая видеокарта используется в Linux
- Как проверить, используется ли видеокарта NVIDIA
- Как установить видео драйвер NVidia в Linux
- Как установить и пользоваться Bumblebee (как включить NVIDIA Optimus в Linux)
- Система зависает после установки Bumblebee
- Как пользоваться Bumblebee / NVIDIA Optimus в Linux
- Как проверить Bumblebee / NVIDIA Optimus в Linux
- Заключение
- БОНУС. Как сделать видеокарту NVidia используемой по умолчанию в Linux
Linux не видит дискретную видеокарту
Проблема в заголовке, если не в том разделе, извиняюсь. Стоит сказать, что в linux я новичок.
Пробовал следующее: lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
xrandr —listproviders Providers: number : 1 Provider 0: id: 0x48 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 5 associated providers: 0 name:Intel
lshw *-generic описание: Unassigned class продукт: Illegal Vendor ID производитель: Illegal Vendor ID физический ID: 0 сведения о шине: pci@0000:01:00.0 версия: ff разрядность: 32 bits частота: 66MHz возможности: bus_master vga_palette cap_list rom кофигурация: driver=radeon latency=255 maxlatency=255 mingnt=255 ресурсы: IRQ:44 память:d0000000-d7ffffff память:d8600000-d863ffff ioport:3000(размер=256) память:d8640000-d865ffff *-display описание: VGA compatible controller продукт: 3rd Gen Core processor Graphics Controller производитель: Intel Corporation физический ID: 2 сведения о шине: pci@0000:00:02.0 версия: 09 разрядность: 64 bits частота: 33MHz возможности: vga_controller bus_master cap_list rom кофигурация: driver=i915 latency=0 ресурсы: IRQ:43 память:d8000000-d83fffff память:c0000000-cfffffff ioport:4000(размер=64)
На борту стоит интегрированная intel 400 + дискретная ati radeon hd8750. Моя проблема, изначально, заключалась в том, что не получалось включить дискретную видеокарту, драйвера свободные стоят, если ставлю проприетарные, то не запускается Х-сервер. Через биос невозможно отключить интегрированную, можно лишь дискретку (сейчас включена, но все равно не видно)
Собственно вопрос, что сделать, чтобы ее наконец заметил linux? =================================================== UPD: теперь такая картина xrandr —listproviders Providers: number : 3 Provider 0: id: 0x68 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 5 associated providers: 2 name:Intel Provider 1: id: 0x3f cap: 0x6, Sink Output, Source Offload crtcs: 0 outputs: 0 associated providers: 2 name:radeon Provider 2: id: 0x3f cap: 0x6, Sink Output, Source Offload crtcs: 0 outputs: 0 a
Дистрибутив какой? Версия ядра и иксов, а также драйвера интел. Драйвер amd в системе установлен? Какой драйвер предпочитаешь использовать — catalyst или опенсорс?
И да, у тебя случаем каталист не установлен?
Linux mint 17.2 64bit Ядро линукс: 3.16.0-38 generic X.Org X Server 1.15.1 По поводу драйвера не очень понял, но в менеджере драйверов написано, что проприетарный не используется, а стоит рекомендованный xserver-xorg-video-ati
Вроде как не установлен, но если подскажете как проверить, скажу более точно
Хм. Видимо не установлен, но попробуй в терминале выполнить:
dmesg | grep fglrx
lsmod | grep fglrx
Если ничего не выдаст — значит так и есть.
В таком случае странно, что у тебя не видит карту.
Ноутбук? Какая модель?
Посмотрел немного информации. Вот ссылка на вики арча.
В общем, получается так, что на данный момент не работает динамическое переключение между интел и амд на опенсорс драйвере, нужно допиливать X-ы под это.
Таким образом есть 3 варианта: пробовать проект бамблби для амд (ссылки после ATI Dynamic Switchable Graphics), пробовать проприетарный драйвер (в арче предлагается нестандартный драйвер, по всей видимости с какими-то патчами) или забыть про дискретную карту и пользоваться интегрированной, пока не появится нормальная поддержка такой схемы.
Если бы были обе карты amd — никаких проблем.
В общем, получается так, что на данный момент не работает динамическое переключение между интел и амд на опенсорс драйвере, нужно допиливать X-ы под это.
А люди не знают, и запускают софт/игры на дискретке через DRI_PRIME=1.
Вот это — правильная картина, у меня типа того же:
Хорошо, тогда у меня, вероятно, очень глупый вопрос: как мне запустить любую из игр стим такой командой? Ведь не сам же стим нужно запустить так DRI_PRIME=1 steam
Вот со стимом я точно не помощник, не пользуюсь. Позовём специалиста, может он в курсе: sudo cast Novell-ch .
И еще есть пару вопросов: 1) Теперь всегда если запускаю какое-то приложение через дискретку, будь то стим или еще что-то, нужно прописывать DRI_PRIME=1? 2) При запуске того же стима через DRI_PRIME=1, он теряет свой главный интерфейс, словно становится прозрачным, но если свернуть ту программу, что под ним открыта, то видно, что он словно ее сфотографировал и использовал в качестве фона, но при всем этом кнопки на память могу найти и все нажимать так же могу, потому эта проблема не критична
3) При запуске приложения получаю ошибку CheckGlExtension: Requered Open GL Extension «GL_ARB_separate_shader_objects» is not supported. Please update your Open GL Driver. Пытался загуглить как обновить этот драйвер, не нашел адекватной статьи
Заранее спасибо за помощь, уже очень помогли 🙂
запускай стим на интеле а в свойствах нужной тебе игры уже прописывай DRI_PRIME=1 %command%
если не включен dri3 то дучше использовать какой-то композитный менеджер типа kwin, xcompmgr, compton
твоя дискретка может быть не vga-compatible. попробуй lspci | grep -i amd . по крайней мере, у меня именно так.
Вот что мне ответило lspci | grep -i amd 01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun PRO [Radeon HD 8570A/8570M] (rev ff)
Источник
Как включить дискретную видеокарту на Linux
В этой заметке мы рассмотрим следующие вопросы:
- Как узнать, какая видеокарта используется в Linux
- Как переключиться с интегрированной графики на видеокарту NVidia
- Как установить и пользоваться Bumblebee для автоматического переключения между интегрированной и дискретной видеокартами (как включить NVIDIA Optimus в Linux)
Установлен проприетарный драйвер NVIDIA, но видеокарта не используется
К сожалению, вопросы установки проприетарных драйверов для видеокарт на Linux до сих пор не так безболезненны, как на Windows. Но я столкнулся с ещё более запутанной ситуацией: после успешной установки драйверов, не получается задействовать, использовать видеокарту NVidia.
Симптомы проблемы следующие:
- драйвера для видеокарты NVidia успешно установились
- система загружается и прекрасно работает
- но используется видео ядро центрального процессора Intel, а видеокарта NVidia не используется
- попытки переключиться на NVidia либо не приносят успеха, либо приводят к чёрному экрану (когда иксы, графическая оболочка, не могут загрузиться)
- программы использующие CUDA (например, Hashcat) прекрасно работают
Чуть подробнее о последнем пункте. Для меня видеокарта представляет главный интерес для брут-форса (взлома) хешей паролей. И эта функция работает, видеокарта нагружена, Hashcat показывает устройство видеокарты как успешно используемое, высокая скорость брут-форса паролей. Именно по этой причине я уже полтора года (!) после установки проприетарного драйвера NVidia не догадывался, что у меня какие-либо проблемы.
И всё-таки драйвер NVidia работает
Я могу убедиться в этом, поскольку срабатывала команда
А также успешно работали приложения, использующие CUDA. Для всех других задач я не мог задействовать видеокарту NVidia.
Какую видеокарту, встроенную в центральный процессор или выделенную выбирает Linux?
Некоторые видеокарты от NVidia поддерживают технологию NVIDIA Optimus. Суть этой технологии в том, что программное обеспечение автоматически переключается на интегрированную (Intel) или выделенную (NVidia) видеокарту. На таких системах всё довольно просто — по крайней мере в теории. Нужная видеокарта может выбираться множество раз во время работы Linux.
Но на компьютерах без NVIDIA Optimus видеокарта выбирается настройками пользователя, либо по умолчанию используется графика Intel.
Как узнать, какая видеокарта используется в Linux
Есть несколько команд, которые покажут, какая видео карта используется:
Эта же самая команда, но запущенная через optirun из пакета Bumblebee:
Пример вывода, в котором показано, что задействована видеокарта NVIDIA:
Подробнее о optirun и Bumblebee будет позже.
Ещё одна команда, которая выводит информацию об используемой видеокарте (и прикольный треугольник в качестве бонуса):
С помощью команды lspci и определённых опций можно вывести информацию об устройствах, на конце строки с используемой видеокартой должно быть [VGA controller]. Команда для фильтрации данных:
Как проверить, используется ли видеокарта NVIDIA
Следующая команда покажет процессы, которые использует видеокарта NVIDIA (если процессов нет, значит видеоадаптер не используется):
Ещё одна команда, которая показывает процессы, потребляющие ресурсы видеокарты NVIDIA, а также уровень её загруженности, температуру и другие метрики:
Как установить видео драйвер NVidia в Linux
Для установки проприетарного драйвера NVidia в Kali Linux выполните команды:
Возможно, этот же способ будет работать и для Debain и других производных.
Для установки драйвера NVidia в Arch Linux, BlackArch и их производные выполните команду:
Кроме указанных, дополнительно будут установлены пакеты nvidia-utils и opencl-nvidia. Если вам не нужен CUDA, то не устанавливайте пакет cuda.
Как установить и пользоваться Bumblebee (как включить NVIDIA Optimus в Linux)
Пакет Bumblebee нужен для автоматического переключения между интегрированной и дискретной видеокартами. Ваша карта должна поддерживать технологию NVidia Optimus, список поддерживающих карт вы можете найти на этой странице: https://www.geforce.com/hardware/technology/optimus/supported-gpus
Если ваша карта там есть, то переходите к выполнению следующих команд. У вас уже должен быть установлен проприетарный драйвер NVIDIA, как это показано выше.
На Kali Linux, Debian и их производных выполните:
В ПРОЦЕССЕ ПОДГОТОВКИ
На Arch Linux, BlackArch и их производных выполните:
Система зависает после установки Bumblebee
Я столкнулся с проблемой, что Bumblebee в принципе работает, но при использовании некоторых команд, которые задействуют CUDA или обращаются к модулям ядра, система зависала. Чтобы проверить, есть ли у вас эта проблема, выполните команду lspci, например:
Если система полностью зависнет, то перезагрузитесь и удалите пакет bbswitch.
Вместо удаления bbswitch вы можете попробовать в опции загрузки ядра добавить строку:
Для этого создайте файл /etc/modprobe.d/options.conf:
и скопируйте в него:
Но у меня сработало только удаление bbswitch.
Как пользоваться Bumblebee / NVIDIA Optimus в Linux
Теперь любую программу, которая должна использовать видеокарту NVIDIA, можно запустить командой вида:
Когда optirun не используется, то карта NVIDIA должна находиться в отключённом состоянии, что должно сберегать электричество.
Как проверить Bumblebee / NVIDIA Optimus в Linux
Запустите тест видеокарты обычной командой:
А также с помощью optirun:
Обратите внимание, что FPS вырос примерно в 20 раз.
Ещё один вариант теста работы видеокарты:
А также с помощью optirun:
Вы должны увидеть прирост производительности при использовании optirun.
Во время работы этих тестов, выполните команду:
Вы должны увидеть процессы, которые используют дискретную видеокарту.
Если у вас установлен веб-браузер Chromium, то запустите его двумя способами:
В обоих случаях откройте вкладку:
Там вы увидите информацию об используемом графическом чипе:
Заключение
Даже после написания этой инструкции, после того, как я разобрался во многих вопросах, всё ещё осталось много непонятного.
Например, как использовать постоянно только карту NVidia? Ниже я покажу что именно пробовал — абсолютно всё не сработало.
Также открыт вопрос, как установить Bumblebee в Debian и производные дистрибутивы? Все команды, которые я пробовал, приводят к чёрному экрану, либо неработоспособности Bumblebee.
БОНУС. Как сделать видеокарту NVidia используемой по умолчанию в Linux
В этом разделе я перечислил то, что у меня не сработало — поэтому можете пропускать этот раздел.
Предупреждение: если после указанных в этом разделе действий вы не можете загрузиться — появляется чёрный экран, то во время неудачной загрузки нажмите Ctrl+Alt+F*, где вместо звёздочки пробуйте указать разные цифры, например, Ctrl+Alt+F1, Ctrl+Alt+F2 и т. д., пока не появится консоль. Введите ваш логин и пароль и откатите изменения, которые привели к неудачной загрузке. Для удаления пакетов используйте стандартные менеджеры пакетов вашего дистрибутива, а для редактирования файлов в командной строке используйте vim или nano. Если вы не знакомы с vim или nano, то пропустите этот раздел!
Если драйвер NVidia установлен, то, вроде бы, видеокарта NVidia должна использоваться по умолчанию. У меня это никогда не происходило, всегда используется интегрированная графика Intel.
Начните с проверки настроек БИОСа — там может быть возможность отключить одну из карт.
Для явного указания используемого драйвера можно создать файл /etc/X11/xorg.conf.d/20-nvidia.conf.
И скопировать в него примерно следующее:
Но у меня не происходит загрузка в графический интерфейс.
Если вы хотите отключить загрузку драйверов Intel, то создайте файл /etc/modprobe.d/blacklist-intel.conf:
И скопируйте в него примерно следующее (название модулей могут отличаться в зависимости от вашего центрального процессора):
Среди других советов встречаются добавить в опции загрузки ядра следующее:
Если у вас EFI (а не БИОС), то для изменения опций загрузки ядра нужно открыть файл вида /boot/loader/entries/*.conf. У меня этот файл называется /boot/loader/entries/arch.conf:
Также рекомендуют изменить файл /mkinitcpio.conf:
В котором вместо строки
нужно записать строку
Затем нужно пересобрать ядро, для этого в Debian и производных нужно выполнить команду:
а в Arch Linux и производных нужно выполнить такую команду:
Источник