如何在 Ubuntu 14.04 上使用 Bumblebee 安装 nVidia 驱动程序

如何在 Ubuntu 14.04 上使用 Bumblebee 安装 nVidia 驱动程序

正如标题,如何在 Ubuntu 上正确设置 nvidia-optimus 技术?

答案1

注意:这篇文章是我花了很多天在网上阅读各种资料的结果,因此请自行承担风险。它是在 Ubuntu 12.04/12.10/13.04/13.10/14.04(均为 64 位)上使用 nVidia GT650M 显卡进行测试的。欢迎随时添加评论和建议


安装 nVidia 和 bumblebee

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 上工作。使用 CTRL+ALT+F1 打开 tty1 控制台,并使用您的用户名和密码登录。然后执行:

sudo service lightdm stop

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

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

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

注意:使用最新的驱动程序版本时,它也会nvidia-prime默认安装。该技术旨在自动在 Intel 和 nVidia 显卡之间切换,无需用户干预。为此,它会同时打开两个显卡。另一方面,Optimus 仅在用户明确要求时才打开 nVidia 显卡;这意味着与 prime 相比,功耗明显更低。

我个人更喜欢 optimus 而不是 prime,但如果你不介意浪费大量能源,就到此为止吧。否则,你有两个选择:

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

  • 将 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

然后,我们必须使用以下命令将我们的用户添加到 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 <something>未被注释(即它们不以 开头#)。

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 <application>运行时打开另一个终端,然后输入sudo lshw -c display | grep driver。结果应该是这样的。

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

另一方面,如果你关闭所有启动的应用程序,optirun它应该只显示英特尔驱动程序。就是这样!!


安装 Bumblebee UI

感谢 Pavak Paul 的回答,这里是关于在 Ubuntu 14.04 上添加大黄蜂用户界面来管理使用 nVidia 打开的应用程序的说明。

1.安装Python App Indicator:

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在命令框中插入并单击添加)。

6. 重新启动。


擎天柱

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

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

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

2. 这一点是最成问题的;它阻止 bumblebee 将 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 <application>

如果您想使用“Nvidia(性能)”配置文件,请从 nvidia-settings 中选择它,然后登录/注销,所有操作都应该自动进行。唯一的问题是,您不必在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

然后重启。在这种情况下,你可以在启动时让 bumblebeed 运行:

sudo rm /etc/init/bumbebeed.override

相关内容