Форум русскоязычного сообщества Xubuntu

Установка и настройка => How-To и FAQ => Тема начата: dev3java от октября 29, 2019, 15:34:19

Название: Установка nvidia на Xubuntu/Ubuntu 18.04.3 LTS x64 + bumblebee
Отправлено: dev3java от октября 29, 2019, 15:34:19
Установка производилась на ноутбуке:
Motherboard: Asus F552C/X550CL
Kernel: Linux 5.0.0-32-generic (x86_64)
Processor: Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
Memory: 5533MB
VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M]

Итак, для начала удалим все пакеты что установлены в системе связанные с драйвером nvidia и bumblebee:
sudo apt autoremove --purge nvidia* bumblebee* primusОбновим систему. Выполнив команду:
sudo apt update && sudo apt upgradeЖдем окончания процесса обновления, если оно есть и перезагружаемся.
Теперь посмотрим какие видео-карты у нас имеются:
lspci -k | grep -EA3 'VGA|3D'Видим две карты, одна встроенная VGA compatible controller: Intel, другая дискретная 3D controller: Nvidia. Т.к. у нас изначально задействован драйвер nouveau поставляемый из коробки при установке системы, то нам необходимо установить другой драйвер для nvidia карты. Добавляем репозиторий и устанавливаем nvidia:
sudo apt-add-repository ppa:graphics-drivers/ppaЖмем enter
sudo apt install nvidia-driver-390 nvidia-primeКогда завершится установка драйвера nvidia перезагружаемся.
Проверяем в каком режиме сейчас prime:
sudo prime-select queryЕсли nvidia, то значит все хорошо. Теперь поменяем этот режим на intel:
sudo prime-select intelПерезагружаемся и проверяем снова в каком режиме prime:
sudo prime-select queryЕсли intel, тоже хорошо, это означает, что драйвер подходит для дальнейших манипуляций с bumblebee.
Для установки bumblebee нам необходимо удалить prime:
sudo apt autoremove --purge nvidia-primeДобавляем репозиторий и устанавливаем bumblebee:
sudo apt-add-repository ppa:neon1ks/bumblebeeЖмем enter
sudo apt install bumblebee-nvidia primusПосле установки делаем настройку bumblebee:
sudo nano /etc/bumblebee/bumblebee.confИзменяем строчки:
Driver=nvidia
Bridge=primus  #virtualgl мы не будем использовать, не лучший вариант.
LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input
Сохраняем и закрываем комбинациями Ctrl+x, жмем y и enter
Далее:
sudo nano /etc/bumblebee/xorg.conf.nvidia
sudo nano /etc/bumblebee/xorg.conf.noveau
В этих файлах установите BusID с тем значением которое покажет эта команда:
lspci -k | grep -EA3 'VGA|3D'Далее создайте файл:
sudo nano /etc/modprobe.d/blacklist-nvidia.confИ запишите в него модули:
blacklist nouveau
blacklist nvidia
blacklist nvidia-drm
blacklist nvidia-modeset
alias nouveau off
alias nvidia-drm off
alias nvidia-modeset off
Отредактируем загрузчик:
sudo nano /etc/default/grubИзмените строку:
GRUB_CMDLINE_LINUX_DEFAULT="nogpumanager quiet splash"В драйвере nvidia есть библиотека glvnd, которая мешает работе bumblebe - libglvnd (https://github.com/NVIDIA/libglvnd). Bumblebe запускает отдельный экземпляр xorg на отдельном экране, который glvnd не может обработать. Поэтому нам необходимо это отключить.
В директории домашнего пользователя ~/.profile добавьте эти строки:
export __GLVND_DISALLOW_PATCHING=1
export PRIMUS_libGL=/usr/lib/x86_64-linux-gnu/libGL.so.1
И добавьте их в систему окружения, введите в терминале:
__GLVND_DISALLOW_PATCHING=1
PRIMUS_libGL=/usr/lib/x86_64-linux-gnu/libGL.so.1
Также нам надо исправить пути primusrun для загрузки библиотеки libGL:
sudo nano /usr/bin/primusrunИзмените строчку:
PRIMUS_libGL=${PRIMUS_libGL:-'/usr/$LIB/x86_64-linux-gnu'}Запускаем bumblebee сервис:
sudo systemctl enable bumblebeedПерезапускаем сервис командой и убеждаемся, что все в порядке:
sudo systemctl restart bumblebeed.serviceПри установке bumblebee у вас могли быть удалены пакеты для клавиатуры, мыши и тачпада. Все это дело можно исправить их установкой. Запустите команду:
sudo apt install --reinstall xserver-xorg-input-evdev xserver-xorg-input-mouse xserver-xorg-input-synaptics xserver-xorg-input-libinputПосле всех изменений обновляем grub и initramfs:
sudo update-grub && sudo update-initramfs -u -k allПерезагружаемся.
Теперь когда все наладили, устанавливаем mesa пакеты для тестов:
sudo apt install mesa-utils mesa-utils-extraЗапускаем два терминала и выполняем команду:
Первый терминал:
optirun glxgearsВторой терминал:
cat /proc/acpi/bbswitchВо втором терминале должно быть значение ON при запущенном приложении glxgears.
Теперь закройте glxgears из первого терминала кнопкой ESC на клавиатуре, либо нажав крестик на окне glxgears
и во втором терминале повторите команду:
cat /proc/acpi/bbswitchЗначение должно быть OFF, это означает, что nvidia карта работает исправно и работает именно так как мы хотели. Мы на то и отключали модуль nvidia-drm.
Теперь вы можете запускать отдельные приложения с помощью команды optirun:
optirun ВАШЕ_ПРИЛОЖЕНИЕЧто бы посмотреть настройки видео-карты nvidia выполните команду:
optirun nvidia-settings -c :8На мой взгляд это лучший вариант пользования системой с bumblebee в целом, чем жестко эксплуатировать ваш ПК когда nvidia работает постоянно и поглощая все ресурсы какие только можно.