Меню

Как переключить видеокарту на ноутбуке с intel на nvidia ubuntu



Как включить дискретную карту на 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 выполните команды:

Читайте также:  Дрова для видеокарты ax6670

Возможно, этот же способ будет работать и для 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, то пропустите этот раздел!

Читайте также:  Видеокарта gt 750m можно ли заменить

Если драйвер 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 и производных нужно выполнить такую команду:

Источник

Электрический блогнот

мои заметки на полях

как установить NVIDIA на ноутбуке с Linux

На современных ноутбуках с процессором Intel часто идут две видеокарты, одна интегрированная на чипсете Intel, вторая дискретная — в основном NVIDIA. Производители объясняют это тем, что интегрированная карта Intel сильно экономит заряд батареи и позволяет значительно увеличить время работы ноутбука в автономном режиме. Не так сильно греется (нет необходимости в дополнительном теплоотводе). Поддерживает OpenGL инструкции и все современные игры можно запускать на видеокарте Intel.

Почему не устраивает Intel

Казалось бы, сплошные плюсы у Intel, но в чем же подвох? А подвох в том, что на дешевых ноутбуках (не знаю как на дорогих) интегрированная Intel видеокарта дает плохое изображение. Проявляется это в мерцании экрана и как следствие усталости глаз. Попытка поменять частоту ШИМ ни к чему не привела. Изображение стало стабильнее, но потом все равно глаза уставали. Не понято, почему это происходило в Linux, ведь под Windows на том же ноутбуке не было проблем с интеловской видеокарточкой. Нужно было как-то задействовать дискретную NVIDIA карту.

В современных ноутбуках видео-подсистема устроена так, что основной видеотрафик (десктоп, офис, терминал) идет через Intel видеокарту, а через NVIDIA шел видеопоток только с приложений специально привязанных к этой карте, например, игры. А вот, чтобы пустить весь видеосигнал через NVIDIA никак не получалось. Пробовал множество дистрибутивов Linux и нигде не мог найти ответа на этот вопрос. Все было заточено под энергосбережение, т.е. основной видеокартой шел Intel, а NVIDIA для экстремальных нагрузок. А хотелось, чтобы NVIDIA работала все время.

Читайте также:  Возможен ли sli режим для разных видеокарт

Как перейти на NVIDIA

После гугления и курения форумов пришел к выводу, что вопрос настройки NVIDIA на ноутбуках интересует многих людей. Но четкого руководства по полному переходу на NVIDIA не было. Все зависело от конкретного дистрибутива Linux и то, что у кого-то получилось при полном повторении всех шагов не приводило к результату на твоем ноутбуке.

В итоге, после нескольких попыток с Ubuntu, OpenSuSe, CentOS у меня получилось сделать NVIDIA основной видеокартой в Ubuntu 17.10 на моем ноутбуке ASUS 540.

Установка

Рассмотри установку NVidia на чистой Ubuntu 17.10 (из коробки).

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

Затем ставим драйвера и вспомогательные утилиты:

Здесь стоит обратить внимание на версию пакета nvidia. Не всегда самая последняя является лучшей. Надо смотреть отзывы на форумах.

Подгружаем драйвер в модуль:

Проверяем, как установился драйвер:

Командой glxinfo определяем карту, которая будет выполнять OpenGL инструкции:

Вывод этой команды должен содержать название дискретной видеокарты:

Теперь воспользуемся замечательной утилитой nvidia-settings, которую мы поставили вместе с драйверами. Nvidia-settings предоставит исчерпывающую информацию о параметрах дискретной видеокарты и позволит сделать изменения в ряде настроек.

Главное окно nvidia-settings

Параметры дискретной видеокарты

Датчик температуры на дискретной видеокарте

Если вы хотите, чтобы за отрисовку всей графики (декстоп, терминал, браузер, игры) полностью отвечала карта NVIDIA, то выберете ее в списке GPU. Если необходимо экономить энергию батареи ноутбука, то выбирайте встроенную видеокарту Intel.

Режим работы всей графической системы ноутбука

Тесты

После того, как NVIDIA драйверы были успешно установлены, нужно провести ряд тестов показывающих, что дискретная видеокарта NVIDIA выполняют всю работу по обсчету сцены. Для этого запустим 3D тест посмотрим на датчик температуры дискретной карты. Если температура будет повышаться, значит вся вычислительная нагрузка идет на дискретную видеокарту.

glxgears

Самый простой и эффективный тест для видеокарты. Вращаются три шестеренки. Тест glxgears входит в пакет mesa-utils:

запускается тест командой:

Смотрим на шестеренки, консольку, куда выводится текущий FPS и заранее приготовленное окно nvidia-settings с датчиком температуры.

GL Mark

В отличие от glxgears — это продвинутый тест, который проверяет несколько режимов работы Open GL.

Unigine

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

Выводы

Приведены рекомендации по установке драйвера для NVIDIA карты под Linux (Ubuntu). Показано, как перевести весь видеотрафик на дискретную карту NVIDIA. Описаны способы проверки корректности установки драйверов.

Источник