tig*_*k89 12 nvidia nvidia-optimus bumblebee 14.04 nvidia-prime
作为标题,如何在 Ubuntu 上正确设置 nvidia-optimus 技术?
tig*_*k89 27
注意:这篇文章是在网上阅读了很多天的结果,所以风险自负。它在 Ubuntu 12.04/12.10/13.04/13.10/14.04(全部 64 位)和 nVidia GT650M 显卡上进行了测试。随意添加评论和建议
1.首先,我们要删除电脑上所有的显卡驱动:
sudo apt-get remove --purge nvidia*
Run Code Online (Sandbox Code Playgroud)
如果您以前安装过大黄蜂,请执行以下操作:
sudo apt-get remove --purge bumblebee*
Run Code Online (Sandbox Code Playgroud)
我们还必须删除所有 nouveau 驱动程序:
sudo apt-get --purge remove xserver-xorg-video-nouveau
Run Code Online (Sandbox Code Playgroud)
为了确保删除了所有内容,请尝试输入dpkg -l | grep nvidia
and 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)
Run Code Online (Sandbox Code Playgroud)
3.接下来要做的是将剩余的nouveau驱动程序和其他一些可能导致问题的软件包列入黑名单:
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
sudo gedit /etc/modprobe.d/blacklist.conf
Run Code Online (Sandbox Code Playgroud)
在文件末尾添加以下几行:
# 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
Run Code Online (Sandbox Code Playgroud)
只需保存并退出。
4. 现在,运行最熟悉的 ubuntu 命令
sudo apt-get update && sudo apt-get dist-upgrade -y
Run Code Online (Sandbox Code Playgroud)
5. 从现在开始,我们在 tty 上工作。使用 CTRL+ALT+F1 打开 tty1 控制台并使用您的用户名和密码登录。然后执行:
sudo service lightdm stop
Run Code Online (Sandbox Code Playgroud)
现在我们将安装驱动程序。执行:
sudo apt-get install nvidia-XXX-updates nvidia-settings
Run Code Online (Sandbox Code Playgroud)
其中 XXX 是最新的稳定驱动程序。我正在使用 331 驱动程序,但我在某处读到 343 可以下载(不知道它们是否稳定)。
注意:使用最新的驱动程序版本,它也会nvidia-prime
默认安装。该技术旨在无需用户干预即可在 Intel 和 nVidia 显卡之间自动切换。要做到这一点,它会让两张卡都打开。另一方面,Optimus 仅在用户明确请求时才打开 nVidia 显卡;它转化为相对于素数而言显着减少的功耗。
我个人更喜欢 optimus 而不是 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
Run Code Online (Sandbox Code Playgroud)
然后,我们必须将我们的用户添加到 bumblebee 组中:
sudo usermod -a -G bumblebee $USER
Run Code Online (Sandbox Code Playgroud)
然后重启电脑。
7. 登录您的用户帐户,打开一个新的终端窗口并输入:
cd /etc/bumblebee
ls -Al
Run Code Online (Sandbox Code Playgroud)
在列出的各种文件中,特别应该有两个:bumblebee.conf
和xorg.nvidia.conf
. 让我们制作两者的备份副本:
sudo cp FILE_NAME FILE_NAME.bak
Run Code Online (Sandbox Code Playgroud)
您应该将 FILE_NAME 替换为文件的实际名称。然后,让我们去修改第一个文件sudo gedit bumblebee.conf
,添加(全部不带引号)
确保 [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
Run Code Online (Sandbox Code Playgroud)
如果返回错误,请尝试使用重新启动而不是启动再次运行该命令。如果您仍然有错误,例如:
restart: Unknown job: bumblebeed
Run Code Online (Sandbox Code Playgroud)
可能是 bumblebee.conf 文件有问题;所以,重新检查第 7 步。
如果相反,结果类似于:
bumblebeed start/running, process XXXXX
Run Code Online (Sandbox Code Playgroud)
您很快就完成了大黄蜂的设置!
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
....
Run Code Online (Sandbox Code Playgroud)
要仔细检查我们是否确实在使用 nvidia-drivers,请在optirun <application>
运行时打开另一个终端,然后输入sudo lshw -c display | grep driver
. 结果应该是这样的。
configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您关闭所有以optirun
它启动的应用程序,则应仅显示英特尔驱动程序。就是这样!!
感谢 Pavak Paul 的回答,这里是在 Ubuntu 14.04 上添加 bumblebee 用户界面以管理要使用 nVidia 打开的应用程序的说明。
1. 安装 Python 应用指示器:
sudo apt-get install python-appindicator
Run Code Online (Sandbox Code Playgroud)
2. 安装 Git:
sudo apt-get install git
Run Code Online (Sandbox Code Playgroud)
3. 为 git 创建一个目录:
mkdir git && cd git
Run Code Online (Sandbox Code Playgroud)
4. 查看存储库:
git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
sudo ./INSTALL
Run Code Online (Sandbox Code Playgroud)
5. 转到启动应用程序并添加 bumblebee-indicator [单击添加,然后插入所需的名称和注释;bumblebee-indicator
在命令框中插入并单击添加)。
6. 重新启动。
如果您希望nvidia-prime
有时也可以使用,请尝试按照以下说明进行操作。
1. 要防止bumblebeed
在引导时启动,请执行:
echo "manual" | sudo tee /etc/init/bumblebeed.override
Run Code Online (Sandbox Code Playgroud)
2、这个点是最有问题的;它可以防止大黄蜂将 nVidia 驱动程序列入黑名单,并应导致图形会话冻结。尝试风险自负!跑:
sudo gedit /etc/modprobe.d/bumblebee.conf
Run Code Online (Sandbox Code Playgroud)
并注释包含您的 nVidia XXX 驱动程序的行。它应该导致这样的事情。
# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
Run Code Online (Sandbox Code Playgroud)
3. 重新启动系统并启动nvidia-settings
。最后的情况是这样的:
如果您在 nvidia-settings 中选择“Intel (Power save)”,则默认情况下您只会打开 Intel 显卡。您仍然需要运行应用程序optirun
才能使用 nVidia 显卡
sudo service bumblebeed start
optirun <application>
Run Code Online (Sandbox Code Playgroud)
如果您想使用“Nvidia(性能)”配置文件,请从 nvidia-settings 中选择它,然后登录/注销,所有这些都应该自动运行。唯一的问题是您不必在bumblebeed
选择此配置文件的情况下启动守护程序,因为它可能会导致麻烦。
1. 如果您只想使用nvidia-prime
:
sudo apt-get --purge remove bumblebee*
Run Code Online (Sandbox Code Playgroud)
然后重启。
2. 如果你只想使用 optimus 而不删除 nvidia-prime,再次编辑之前的文件:
sudo gedit /etc/modprobe.d/bumblebee.conf
Run Code Online (Sandbox Code Playgroud)
从先前修改的行中取消注释(删除 # 字符):
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
Run Code Online (Sandbox Code Playgroud)
并重新启动。在这种情况下,您可以在启动时让 bumblebeed 运行:
sudo rm /etc/init/bumbebeed.override
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38355 次 |
最近记录: |