Как установить драйверы nVidia с помощью Bumblebee на Ubuntu 14.04

Ответы:

26

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 доступны для загрузки (не знаю, стабильны ли они).

Примечание: с последними версиями драйверов, он также устанавливается 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, добавив (все без кавычек)

  • Раздел [шмель]: после "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
tigerjack89
источник
1
Я следовал инструкциям на Ubuntu 14.04, но мой экран становится черным после заставки, и я не могу войти. Используя Dell xps l502x, nvidia gfrc gt540m.
DeepSidhu1313
1
Вы уверены, что с самого начала следовали всем инструкциям? В любом случае нажмите CTRL + ALT + F1, чтобы получить доступ к tty, затем введите свои учетные данные для входа и перезагрузите компьютер с самого начала.
tigerjack89
1
Хорошо, я решил проблему с помощью vblank_mode=0 primusrun ./glxgearsили мы можем использовать vblank_mode=0 optirun -b primus ./glxgears. спасибо :)
DeepSidhu1313
1
пожалуйста, обратите внимание, я должен был установить xorg-edgers ppa, чтобы получить пакеты virtualgl. Там не было доступно в чистой установке Ubuntu 14.04
Ubuntuser
1
Это, безусловно, самый актуальный урок, я голосую за это. Я проверил, и это работает на 17.10. Молодец.
Doodloo