Как заголовок, как я могу правильно настроить технологию nvidia-optimus в Ubuntu?
Как заголовок, как я могу правильно настроить технологию nvidia-optimus в Ubuntu?
Ответы:
NB: этот пост является результатом многих дней, проведенных за чтением различных материалов в Интернете, поэтому рискуйте им. Он был протестирован на Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (все 64-битные) с графической картой nVidia GT650M. Не стесняйтесь добавлять комментарии и предложения
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 доступны для загрузки (не знаю, стабильны ли они).
Примечание: с последними версиями драйверов, он также устанавливается nvidia-prime
по умолчанию. Эта технология предназначена для автоматического переключения между графической картой Intel и nVidia без вмешательства пользователя. Для этого он оставляет обе карты включенными. Optimus, с другой стороны, включает графическую карту nVidia только с явным запросом пользователя; это переводит в значительно меньшую потребляемую мощность по сравнению с премьер.
Лично я предпочитаю «Оптимус», а не «Прайм», но если вы не беспокоитесь об огромных потерях энергии, остановитесь здесь. В противном случае у вас есть два варианта:
полностью удалить Prime ( 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
, добавив (все без кавычек)
Убедитесь, что «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. Это оно!!
Благодаря этому ответу от Павака Пола, вот инструкция по добавлению пользовательского интерфейса шмеля в 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
vblank_mode=0 primusrun ./glxgears
или мы можем использовать vblank_mode=0 optirun -b primus ./glxgears
. спасибо :)