Установка производилась на ноутбуке:
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. 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 работает постоянно и поглощая все ресурсы какие только можно.