如何在Ubuntu 14.04上安装带有Bumblebee的nVidia驱动程序

作为标题,我如何才能在Ubuntu上正确设置nvidia-optimus技术?

注意:这篇文章是在网上阅读各种内容花了很多天的结果,所以请自担风险。 它在Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04(全部为64位)上使用nVidia GT650M显卡进行了测试。 随意添加评论和建议


安装nVidia和bumblebee

1.首先,我们必须删除计算机上的所有video驱动程序:

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 nvidiadpkg -l | grep bumblebee dpkg -l | grep bumblebee :它不应该返回任何东西。 对于dpkg -l | grep nouveau 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 

从现在开始,我们在tty上工作。 使用CTRL + ALT + F1打开tty1控制台,并使用您的用户名和密码登录。 然后执行:

 sudo service lightdm stop 

现在我们将安装驱动程序。 执行:

 sudo apt-get install nvidia-XXX-updates nvidia-settings 

其中XXX是最新的稳定驱动程序。 我正在使用331驱动程序,但我已经读过343可供下载的地方(不知道它们是否稳定)。

注意:使用最新的驱动程序版本,默认情况下它还会安装nvidia-prime 。 该技术旨在自动在英特尔和nVidia显卡之间切换,无需用户干预。 为此,它会使两张卡都打开。 另一方面,Optimus仅在明确的用户请求下打开nVidia显卡; 相对于素数而言,它的功耗显着降低。

我个人更喜欢优化而不是素数,但如果你不打扰浪费能源,就停在这里。 否则,您有两种选择:

  • 完全删除素数( sudo apt-get remove --purge nvidia-prime );

  • 留在那里; 在“Prime with optimus”一节中,我们将看到如何在安装了prime的情况下进行optirun工作

6.现在,我们必须安装bumblebee和virtualgl包

 sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386 

然后,我们必须在bumblebee组中添加我们的用户:

 sudo usermod -a -G bumblebee $USER 

然后重启电脑。

7.登录您的用户帐户,打开一个新的终端窗口并键入:

 cd /etc/bumblebee ls -Al 

在列出的各种文件中,特别应该有两个: bumblebee.confxorg.nvidia.conf 。 让我们制作两者的备份副本:

 sudo cp FILE_NAME FILE_NAME.bak 

您应该将FILE_NAME替换为文件的实际名称。 然后,让我们用sudo gedit bumblebee.conf修改第一个文件,添加(所有没有引号)

  • [bumblebeed]部分:在“Driver =”之后插入“nvidia”
  • [nvidia-driver]部分:在“KernelDriver =”之后插入“nvidia-XXX-updates”
  • [nvidia-driver]部分:在“LibraryPath =”之后插入“/ 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”

确保[nvidia-driver]下的“XorgConfFile”等于“/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 的行都没有被注释(即它们不以#开头)。

9.此时,运行以下命令

 sudo service bumblebeed start 

如果它返回错误,请尝试使用restart而不是start重新运行该命令。 如果您仍有错误,请执行以下操作:

 restart: Unknown job: bumblebeed 

bumblebee.conf文件中可能有问题; 所以,重新检查第7步。

相反,结果类似于:

 bumblebeed start/running, process XXXXX 

你很快就设置了大黄蜂!

10.现在我们可以简单地运行optirun glxspheresoptirun 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 运行时打开另一个终端,然后键入sudo lshw -c display | grep driver sudo lshw -c display | grep driver 。 结果应该是这样的。

 configuration: driver=nvidia latency=0 configuration: driver=i915 latency=0 

另一方面,如果关闭所有以optirun启动的应用程序,它应该只显示英特尔驱动程序。 而已!!


安装Bumblebee UI

感谢Pavak Paul的回答,以下是在Ubuntu 14.04上添加bumblebee用户界面以管理使用nVidia打开的应用程序的说明。

1.安装Python App指标:

 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 [单击添加,然后插入所需的名称和注释; 在命令框中插入bumblebee-indicator ,然后单击Add)。

6.重新启动。


与optimus合作

如果您希望有时也可以选择使用nvidia-prime ,请尝试按照以下说明操作。

1.为防止bumblebeed在启动时启动,请执行:

 echo "manual" | sudo tee /etc/init/bumblebeed.override 

这一点是最成问题的; 它可以防止大黄蜂将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 。 最后的情况是这样的:

如果在nvidia-settings中选择“Intel(节电)”,则默认情况下只打开Intel图形卡。 您仍然必须使用optirun运行应用程序才能使用nVidia图形卡

 sudo service bumblebeed start optirun  

如果您想要使用“Nvidia(性能)”配置文件,请从nvidia-settings中选择它,然后登录/注销,所有这些都应该自动运行。 唯一的事情是你不必选择这个配置文件来启动bumblebeed守护进程,因为它可能会导致麻烦。

如果您遇到问题:

1.如果你只想使用nvidia-prime

 sudo apt-get --purge remove bumblebee* 

然后重启。

2.如果要在不删除nvidia-prime的情况下仅使用optimus,请再次编辑上一个文件:

 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