tig*_*k89 27

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


安装 nVidia 和大黄蜂

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 nvidiaand 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.confxorg.nvidia.conf. 让我们制作两者的备份副本:

sudo cp FILE_NAME FILE_NAME.bak
Run Code Online (Sandbox Code Playgroud)

您应该将 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
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 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
....
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它启动的应用程序,则应仅显示英特尔驱动程序。就是这样!!


安装 Bumblebee 用户界面

感谢 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)