如何在Ubuntu 18.04上安装NVIDIA驱动程序

时间:2020-03-05 15:28:04  来源:igfitidea点击:

在本教程中,将介绍如何从终端安装Ubuntu 18.04桌面上的最新NVIDIA驱动程序。
可能发生的是,Ubuntu为显卡中包含的图形驱动程序不完全调整。
在这种情况下,使用制造商的司机可能会很有意思。

有一些视频卡和驱动程序可用,我们必须知道我们需要使用哪一个:

  • NVIDIA NOUVEAU驱动程序:它是NVIDIA驱动程序的开源实现。它与官方司机不适合,但发展速度和进步使得这是拥有和促进的选择。对于每个新的发布,驱动程序会变得越来越好,但更新比PPA更频繁地提供
  • Ubuntu默认推荐驱动程序:Ubuntu做了一个惊人的作业,弄清楚你需要的NVIDIA驱动程序,具体取决于我们使用的卡。但与官方或者PPA相比,这不是最新的。
  • NVIDIA PPA驱动程序:通过使用PPA中包含的驱动程序,它提供了一些很好的表现,并为大多数卡片出来的盒子。它还提供最新的驾驶时间/天官方发布后,安装是通过终端或者GUI。
  • NVIDIA驱动程序来自官方:这是PPA中的官方驱动程序,但不同的是它们不会自动升级,并且在更新,卸载和安装时,我们可以面临一些问题。

检测NVIDIA图形卡模型

要检测NVIDIA图形卡的模型是很重要的,以便安装所需的驱动程序。
为此,终端中有一个简单的方法:

$ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
model    : GF117M [GeForce 610M/710M/810M/820M/GT 620M/625M/630M/720M]
vendor   : NVIDIA Corporation
modalias : pci:v000010DEd00001140sv0000103Csd000021BBbc03sc02i00
driver   : nvidia-340 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

我们可以看到NVIDIA卡的型号,推荐的驱动程序是NVIDIA-340。

使用PPA安装NVIDIA驱动程序

现在我们可以安装哪个卡,我们现在可以通过PPA安装。
首先,如果我们已经安装了旧的NVIDIA驱动程序,请将其删除

# apt purge nvidia*

现在,我们可以在Ubuntu 18.04上添加PPA,请注意,在Ubuntu 18.04上添加PPA不需要先前版本的Update命令。
你会看到一些有用的信息

# add-apt-repository ppa:graphics-drivers/ppa
 Fresh drivers from upstream, currently shipping Nvidia.
## Current Status
Current short-lived branch release: `nvidia-396` (396.24)
Dropped support for Fermi series (https://nvidia.custhelp.com/app/answers/detail/a_id/4656)
Current long-lived branch release: `nvidia-390` (390.48)
Old long-lived branch release: `nvidia-384` (384.130)
For G8x, G9x and GT2xx GPUs use `nvidia-340` (340.106)
For NV4x and G7x GPUs use `nvidia-304` (304.137) End-Of-Life!
...
...

现在安装推荐的驱动程序

# apt install nvidia-340
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  bbswitch-dkms gnome-screensaver indicator-session lib32gcc1 libaccount-plugin-1.0-0
  libaccount-plugin-generic-oauth libaccount-plugin-google libc6-i386 libcgmanager0
  libcuda1-340 libjansson4 libnih-dbus1 lightdm mountall nvidia-opencl-icd-340
  nvidia-prime nvidia-settings ocl-icd-libopencl1 screen-resolution-extra
  signon-keyring-extension signon-plugin-oauth2 unity-control-center-signon
  unity-greeter upstart
Suggested packages:
  bumblebee bindfs lightdm-remote-session-freerdp lightdm-remote-session-uccsconfigure
  remote-login-service graphviz upstart-monitor

现在我们安装了驱动程序。
如果我们想手动安装,我们可以看到所有最新的NVIDIA驱动程序。

安装并选择混合卡的NVIDIA驱动程序

我们可以看到有两张图形卡的计算机:英特尔和NVIDIA。
在这种情况下,我们可以安装两个并切换以选择要使用的操作。
NVIDIA Optimus是双显卡拆分的代码名称,由具有"专用"图形的各种"游戏"笔记本电脑享受。
要检查我们是否有混合卡,可以使用以下命令:

lspci | egrep 'VGA|3D'
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M/GT 620M/625M/630M/720M] (rev a1)

我们可以看到英特尔和NVIDIA卡礼物。
要轻松管理两张卡,可以安装nvidia-prime或者bumblebee。
我们应该注意到,当我们有混合卡时,即使安装NVIDIA驱动程序,它也不是系统使用的,我们需要NVIDIA-PRIME或者BumbleBee打开NVIDIA并默认使用它。
nvidia-prime和bumblebee软件包没有一起工作。
我们需要选择其中一个:

  • NVIDIA-Prime:NVIDIA在Linux上实施Optimus可用性的解决方案。所说的是,NVIDIA Prime是封闭来源的。它还具有令人讨厌的倾向,可以排出笔记本电脑电池,因为离散卡通常保持在窗口上缺少每次应用程序切换,因此保持启用。
# apt install nvidia-prime
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  bbswitch-dkms gnome-screensaver indicator-session libaccount-plugin-1.0-0 
.........

它能够在配置文件级别决定哪个卡,例如:当用户登录时。
该决策可在NVIDIA X Server设置控制面板上调整

  • BumbleBee:它是开源软件社区,试图通过创建大黄蜂项目来解决此问题。 BumbleBee而不是使用始终开启或者始终关闭的素数,而是创建了一个名为"Optirirun"的实用程序,允许我们指定程序是否应使用离散显卡加载。
# apt install bumblebee linux-headers-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  bbswitch-dkms libbsd0:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386 libffi6:i386 libgl1-mesa-dri:i386
.............

现在使用NVIDIA启动应用程序使用以下命令

# optirun playonlinux