Как установить драйверы nVidia с помощью Bumblebee на Ubuntu 14.04
Как заголовок, как я могу правильно настроить технологию nvidia-optimus в Ubuntu?
1 ответ
NB: этот пост является результатом многих дней, проведенных за чтением различных материалов в Интернете, поэтому рискуйте им на свой страх и риск. Он был протестирован на Ubuntu 12.04/12.10/13.04/13.10/14.04 (все 64-битные) с графической картой nVidia GT650M. Не стесняйтесь добавлять комментарии и предложения
Установите nVidia и шмель
1. Прежде всего, мы должны удалить все драйверы видео на компьютере:
sudo apt-get remove --purge nvidia*
Тогда шмель на случай, если вы установили его ранее:
sudo apt-get remove --purge bumblebee*
Мы также должны удалить все драйвера nouveau:
sudo apt-get --purge remove xserver-xorg-video-nouveau
Чтобы быть уверенным, что удалили все материалы, попробуйте набрать dpkg -l | grep nvidia
а также dpkg -l | grep bumblebee
: это не должно ничего возвращать. За dpkg -l | grep nouveau
вполне вероятно, что он возвращает несколько строк, говорящих libdrm-nouveauXXXXX
; сейчас просто игнорируйте их.
2. Затем мы должны убедиться, что все заголовки набирают:
sudo apt-get install linux-source && sudo apt-get install linux-headers-$(uname -r)
3. Следующее, что нужно сделать, это занести в черный список оставшиеся драйверы nouveau и некоторые другие пакеты, которые могут вызвать проблемы:
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
sudo gedit /etc/modprobe.d/blacklist.conf
Добавляем следующие строки в конец файла:
# Necessary to install nvidia drivers
blacklist nouveau
blacklist lbm-nouveau
blacklist nvidia-173
blacklist nvidia-96
blacklist nvidia-current
blacklist nvidia-173-updates
blacklist nvidia-96-updates
alias nvidia nvidia_current_updates
alias nouveau off
alias lbm-nouveau off
options nouveau modeset=0
Просто сохраните и выйдите.
4. Теперь запустите лучшие команды Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
5. С этого момента мы работаем на tty. Откройте консоль tty1 с помощью сочетания клавиш CTRL+ALT+F1 и войдите под своим именем пользователя и паролем. Затем выполните:
sudo service lightdm stop
Теперь мы установим драйверы. Выполнение:
sudo apt-get install nvidia-XXX-updates nvidia-settings
где XXX - последние стабильные драйверы. Я использую 331 драйвер, но я где-то читал, что 343 доступны для загрузки (не знаю, стабильны ли они).
NB: с последними версиями драйверов, он также устанавливает nvidia-prime
по умолчанию. Эта технология предназначена для автоматического переключения между графической картой Intel и nVidia без вмешательства пользователя. Для этого он оставляет обе карты включенными. Optimus, с другой стороны, включает графическую карту nVidia только с явным запросом пользователя; это переводит в значительно меньшем энергопотреблении по сравнению с премьер.
Я лично предпочитаю "Оптимус", а не "Прайм", но если вы не беспокоитесь об огромных потерях энергии, остановитесь здесь В противном случае у вас есть два варианта:
полностью удалить премьер (
sudo apt-get remove --purge nvidia-prime
);оставьте премьер там; в разделе "Prime with optimus" мы увидим, как заставить optirun работать и с установленным Prime
6. Теперь мы должны установить пакеты bumblebee и virtualgl с
sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386
Затем мы должны добавить нашего пользователя в группу шмелей с помощью:
sudo usermod -a -G bumblebee $USER
А затем перезагрузите компьютер.
7. Войдите в свою учетную запись, откройте новое окно терминала и введите:
cd /etc/bumblebee
ls -Al
Среди различных перечисленных файлов должно быть два, в частности: bumblebee.conf
а также xorg.nvidia.conf
, Давайте сделаем резервную копию обоих:
sudo cp FILE_NAME FILE_NAME.bak
Вам следует заменить FILE_NAME реальным именем файла. Затем давайте перейдем к изменению первого файла с sudo gedit bumblebee.conf
, добавив (все без кавычек)
- Раздел [шмель]: после "Driver=" вставить "nvidia"
- Раздел [nvidia-driver]: после "KernelDriver=" вставить "nvidia-XXX-updates"
- Раздел [nvidia-driver]: после "LibraryPath=" insert "/usr/lib/nvidia-XXX-updates, /usr/lib/nvidia-331-updates:/usr/lib32/nvidia-XXX-updates"
- Раздел [nvidia-driver]: после "XorgModulePath=" вставьте "/usr/lib/nvidia-XXX-updates/xorg,/usr/lib/xorg/modules"
Убедитесь, что "XorgConfFile" в [nvidia-driver] равен "/etc/bumblebee/xorg.conf.nvidia" (опять же, без кавычек), затем сохраните и закройте gedit.
Теперь мы должны отредактировать другой файл с sudo gedit xorg.conf.nvidia
(в этом случае мы также должны вставить кавычки!!). замещать Option "ConnectedMonitor" "DFP"
с Option "UseDisplayDevice" "none"
, Сохранить и выйти.
8. Беги gedit /etc/modprobe.d/bumblebee.conf
и убедитесь, что все строки, содержащие blacklist <something>
не комментируются (т.е. они не начинаются с #
).
9. На этом этапе выполните следующую команду
sudo service bumblebeed start
Если он возвращает ошибку, попробуйте снова запустить команду с перезагрузкой, а не с запуском. Если у вас все еще есть ошибки, что-то вроде:
restart: Unknown job: bumblebeed
Возможно, что-то не так в файле bumblebee.conf; итак, перепроверьте шаг 7.
Если вместо этого результат похож на:
bumblebeed start/running, process XXXXX
Вы скоро закончили настраивать шмель!
10. Теперь мы можем просто запустить optirun glxspheres
или же optirun glxspheres64
, Если все работает, как ожидалось, у вас есть вывод, подобный этому:
$ optirun glxspheres64
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
182.253407 frames/sec - 203.394802 Mpixels/sec
182.940725 frames/sec - 204.161849 Mpixels/sec
....
Чтобы перепроверить, что мы на самом деле используем nvidia-drivers, откройте другой терминал, пока optirun <application>
работает, затем введите sudo lshw -c display | grep driver
, Результат должен быть примерно таким.
configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0
Если, с другой стороны, вы закрываете все приложения, запущенные с optirun
он должен показывать только драйвер Intel. Это оно!!
Установить интерфейс Bumblebee
Благодаря этому ответу от Павака Пола, вот инструкции по добавлению пользовательского интерфейса шмеля в Ubuntu 14.04 для управления приложениями, которые будут открываться с помощью nVidia.
1. Установите индикатор приложения Python:
sudo apt-get install python-appindicator
2. Установите Git:
sudo apt-get install git
3. Создайте каталог для git:
mkdir git && cd git
4. Проверьте хранилище:
git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
sudo ./INSTALL
5. Зайдите в "Автозагрузка приложений" и добавьте шмель-индикатор [нажмите "Добавить", затем введите желаемое имя и комментарий; вставить bumblebee-indicator
в командной строке и нажмите кнопку Добавить).
6. Перезагрузка.
Премьер с Оптимусом
Если вы хотите иметь возможность также использовать nvidia-prime
иногда старайтесь следовать инструкциям ниже.
1. Чтобы предотвратить bumblebeed
начиная с загрузки во время загрузки, выполните:
echo "manual" | sudo tee /etc/init/bumblebeed.override
2. Этот пункт является наиболее проблематичным; он не позволяет шмелю занести в черный список драйверы nVidia и должен привести к зависанию графической сессии. Попробуйте на свой страх и риск! Бежать:
sudo gedit /etc/modprobe.d/bumblebee.conf
И прокомментируйте строку, содержащую ваши драйверы nVidia XXX. Это должно привести к чему-то подобному.
# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
3. Перезагрузите систему и запустите nvidia-settings
, Конечная ситуация такова:
Если вы выберете "Intel (Энергосбережение)" в настройках nvidia, по умолчанию у вас будет включена только графическая карта Intel. Вы все еще должны запустить приложение с optirun
использовать графическую карту nVidia
sudo service bumblebeed start
optirun <application>
Если вместо этого вы хотите использовать профиль "Nvidia (Performance)", выберите его в настройках nvidia, затем войдите / выйдите из системы, и все должно работать автоматически. Единственное, что вам не нужно запускать bumblebeed
демон с этим профилем выбран, потому что это может вызвать проблемы.
Если у вас есть проблемы:
1. Если вы хотите использовать только nvidia-prime
:
sudo apt-get --purge remove bumblebee*
Затем перезагрузите компьютер.
2. Если вы хотите использовать только optimus без удаления nvidia-prime, снова отредактируйте предыдущий файл:
sudo gedit /etc/modprobe.d/bumblebee.conf
Раскомментирование (удаление символа #) из ранее измененных строк:
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
И перезагрузка. В этом случае вы можете оставить запуск шмеля во время загрузки:
sudo rm /etc/init/bumbebeed.override