正如标题,如何在 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.conf
和xorg.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 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
它应该只显示英特尔驱动程序。就是这样!!
安装 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