Ubuntu 14.04 16.04 Linux nvidia 驱动下载与安装

Ubuntu 14.04 16.04 nvidia 驱动安装

最简单直观的方式是在如下的对话框中直接选择驱动安装即可

但是有时候,驱动不够新,比如14.04用的是340.98版本,如果手动安装驱动可以参考官网指南。

在这个网址下载驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn

注意默认是看不到Linux版本驱动,需要额外点击一下显示全部驱动!

这时候点击下载,完成后即可安装。

在这个网址可以查看详细的安装说明:http://us.download.nvidia.com/XFree86/Linux-x86_64/340.101/README/index.html

下面是详细安装说明:

安装NVIDIA驱动程序

目录

在你开始之前启动安装程序安装内核接口使用DKMS注册NVIDIA内核模块签名NVIDIA内核模块将预编译的内核接口添加到安装程序包安装程序的其他功能

本章提供了安装NVIDIA驱动程序的说明。需要注意的是在安装后,但在此之前使用的驱动程序,您必须完成所描述的步骤第6章,配置X的NVIDIA驱动程序。中提供的可能是新的Linux用户有帮助的其他细节附录I, 新Linux用户提示

在你开始之前

在开始安装之前,退出X服务器并终止所有OpenGL应用程序(注意,即使X服务器已停止后,一些OpenGL应用程序也可能会保留)。您还应该设置系统上的默认运行级别,以便它将引导到VGA控制台,而不是直接到X。这样做将使安装过程中出现问题时更容易恢复。见附录I, 新Linux用户提示的详细信息。

如果要在设置为使用Nouveau驱动程序的系统上安装,则应先禁用它,然后再尝试安装NVIDIA驱动程序。见Q&A 8.1“,与nouveau驱动互动”的详细信息。

启动安装程序

你下载的文件后NVIDIA-Linux-x86_64-340.101.run,改为包含下载文件的目录,并作为 root用户运行的可执行文件:

    #CD yourdirectory 
    #SH NVIDIA-Linux-x86_64-340.101.run

.run文件是一个自解压存档。在执行时,它提取的归档文件的内容,并运行所包含的nvidia-installer 工具,它提供了一个人机交互界面,引导您完成安装。

nvidia-installer也将自身安装到/usr/bin/nvidia-installer,这可能会在一段时间后用于卸载驱动程序,自动下载更新的驱动程序,等使用这种工具是在本章后面详细介绍。

您也可以提供命令行选项的.run文件。下面列出了一些更常见的选项。

常用.run 选项

--info

打印有关嵌入信息.run 文件并退出。

--check

检查归档的完整性并退出。

--extract-only

提取的内容./NVIDIA-Linux-x86_64-340.101.run,但不运行nvidia-installer

--help

打印常用命令行选项的使用信息并退出。

--advanced-options

打印常用命令行选项的使用信息以及高级选项,然后退出。

安装内核接口

NVIDIA内核模块有一个内核接口层,必须为每个内核专门编译。NVIDIA将源代码分发到此内核接口层。

当安装程序运行时,它将检查系统所需的内核源代码并编译内核接口。您必须为您的内核安装的源代码编译工作。在大多数系统上,这意味着您将需要找到并安装正确的kernel-source,kernel-header或kernel-devel包; 在一些发行版上,不需要额外的软件包。

在编译正确的内核接口之后,内核接口将与NVIDIA内核模块的闭源部分链接。这需要您在系统上安装了链接器。链接器,通常/usr/bin/ld,是binutils的软件包的一部分。您必须在安装NVIDIA驱动程序之前安装链接器。

使用DKMS注册NVIDIA内核模块

安装程序将检查系统上是否存在DKMS。如果找到DKMS,您将可以选择使用DKMS注册内核模块,并使用DKMS基础架构构建和安装内核模块。在大多数具有DKMS的系统上,DKMS将在安装不同的Linux内核时自动重建注册的内核模块。

如果nvidia-installer无法通过DKMS安装内核模块,安装将被中止,没有内核模块将被安装。如果发生这种情况,应该再次尝试安装,而不使用DKMS选项。

需要注意的是版本nvidia-installer与司机装运前释放304不与DKMS交互。如果您选择注册DKMS了NVIDIA内核模块,请确保模块从DKMS数据库中使用的非DKMS感知版本删除之前nvidia-installer安装的旧驱动程序; 否则,可能会删除模块源文件,而无需先注销模块,从而可能导致DKMS数据库处于不一致状态。运行nvidia-uninstall安装使用旧的安装程序会调用正确的驱动程序之前,dkms remove命令清理安装。

由于缺乏对于可以通过自动化方法如DKMS利用私钥的安全的存储空间,这是不可能结合使用DKMS与内置于模块签名支持nvidia-installer

签名NVIDIA内核模块

一些内核可能需要内核模块被由内核信任的密钥加密签名以便加载。特别地,许多分发要求模块在加载到在启用了安全引导的UEFI系统上运行的内核时被签名。nvidia-installer 包括支持在安装之前签署内核模块,以确保其可以在这样的系统上加载。请注意,并非所有UEFI系统都启用了安全启动,并且并非所有在UEFI安全启动系统上运行的内核都需要签名的内核模块,因此如果您不确定您的系统是否需要签名的内核模块,您可以尝试安装驱动程序,内核模块,看看是否可以加载unsigned内核模块。

为了签署内核模块,您将需要一个私有签名密钥和对应的公钥的X.509证书。在加载模块之前,内核必须信任X.509证书:我们建议在开始安装驱动程序之前确保签名密钥受信任,以便可以立即使用新签名的模块。如果您没有适合使用模块签名的密钥对,则必须生成一个密钥对。有关适用于模块签名的密钥类型以及如何生成密钥的详细信息,请参阅您的分发文档。nvidia-installer可以在安装时为您生成密钥对,但是最好在安装开始之前有一个内核生成和信任的密钥对。

一旦你有一个密钥对准备好了,你可以使用该密钥对中 nvidia-installer传递的钥匙,安装与在命令行--module-signing-secret-key--module-signing-public-key选项。作为示例,可以通过运行以静默模式(即,非交互地)来安装带有签名的内核模块的驱动程序:

#SH ./NVIDIA-Linux-x86_64-340.101.run -s \ 
--module签名秘密密钥= /路径/要/ signing.key \ 
--module签名,公钥= /路径/要/ signing.x509

在上面的例子中,signing.key 并且signing.x509是公/私钥对,公钥已经报名参加了内核的可信模块签约主要来源之一。

在启用安全引导的UEFI系统上,nvidia-installer将显示一系列交互式提示,以指导用户完成模块签名过程。作为在命令行上设置键路径的替代,可以响应于提示交互地提供路径。当针对其配置中启用了CONFIG_MODULE_SIG_FORCE的内核构建NVIDIA内核模块时,或者如果安装程序在专家模式下运行时,也会出现这些提示。

核心信任的关键源

为了将内核模块加载到需要模块签名的内核中,必须使用内核信任的密钥对模块进行签名。有几个源,内核可以利用它来构建其信任的密钥池。如果您已生成密钥对,但它尚未被内核信任,则必须先将公钥的证书添加到受信任的密钥源,然后才能用于验证签名的内核模块的签名。这些可信来源包括:

嵌入内核映像的证书

与内核CONFIG_MODULE_SIG 集,公钥证书用于签署的树内核模块嵌入,以在生成时提供的任何附加的模块签名证书,到内核图像一起。由对应于嵌入式公钥证书的私钥签名的模块将被内核信任。

由于密钥是在构建时嵌入的,添加新公用密钥的唯一方法是构建新内核。在启用了安全启动的UEFI系统上,内核映像将需要由引导加载程序信任的密钥签名,因此用户使用自定义嵌入式密钥构建自己的内核应该有一个计划,以确保引导加载程序将加载新的内核。

存储在UEFI固件数据库中的证书

上的内核与CONFIG_MODULE_SIG_UEFI,除了嵌入到内核图像的任何证书,内核可以使用存储在证书dbKEKPK计算机的UEFI固件的数据库来验证内核模块的签名,只要它们不是在UEFI dbx黑名单。

谁拥有的安全引导私钥的任何用户 PK或任何在键的 KEK清单应该能够添加可通过与内核使用新的密钥CONFIG_MODULE_SIG_UEFI,并用该计算机的物理访问的任何用户应能够删除任何现有的安全引导密钥,并安装他或她自己的密钥。有关如何管理UEFI安全启动密钥的详细信息,请参阅基于UEFI的计算机系统的文档。

存储在辅助密钥数据库中的证书

一些发行版包括允许在与内核的内置密钥列表以及UEFI固件中的密钥列表分开的数据库中安全存储和管理密钥的实用程序。一个突出的例子是某些版本中使用的莫(机器所有者密钥)数据库shim引导程序,和相关的管理工具,mokutilMokManager

这样的系统允许用户注册附加密钥,而不需要构建新内核或管理UEFI安全启动密钥。有关此类辅助密钥数据库是否可用的详细信息,以及如何管理其密钥,请参阅分发的文档。

在nvidia-installer中生成签名密钥

nvidia-installer可以生成可用于模块签名的密钥,如果现有密钥不容易获得的话。注意,由新生成的密钥签名的模块不能加载到需要签名的模块的内核中,直到其密钥被信任,并且当这样的模块安装在这样的系统上时,安装的驱动器将不会立即可用,即使安装成功。

nvidia-installer生成一个密钥对,并使用它来签一个内核模块,含公钥的X.509证书将被安装到磁盘上,因此,它可以添加到内核的可信的主要来源之一。nvidia-installer将报告已安装证书的位置:记下此位置以及证书的SHA1指纹,以便在安装完成后,您可以注册证书并验证其是否正确。

默认情况下,nvidia-installer将尝试与安全删除生成的私钥 shred -u模块签订后。这是为了防止密钥被利用来签署恶意内核模块,但这也意味着相同的密钥不能再次用于安装不同的驱动程序,或者甚至在不同的内核上安装相同的驱动程序。nvidia-installer可以选择将私钥签名密钥安装到磁盘,如同对公共证书一样,以便将来可以重用密钥对。

如果您选择安装私钥,请确保采取适当的预防措施,以确保其不会被盗。您可能希望采取的预防措施的一些示例:

防止密钥被没有物理访问计算机的任何人读取

一般来说,需要物理访问来安装Secure Boot密钥,包括在标准UEFI密钥数据库之外管理的密钥,以防止远程攻击操作系统安全的攻击者安装恶意启动代码。如果远程用户可以使用受信任的密钥,甚至是root用户,那么攻击者可以在不首先进行物理访问的情况下签署任意内核模块,使系统不太安全。

确保密钥对远程用户不可用的一种方式是将其保持在可移动存储介质上,除了在对模块进行签名时,其与计算机断开连接。

不要存储未加密的私钥

加密私钥可以添加额外的安全层:除非可以成功解密密钥,否则密钥将不会用于签名模块。在不使用时(例如,使用或者使用易失性存储器(如RAM磁盘),或安全删除键的任何未加密的副本:确保不存储在持久性存储密钥的加密副本shred代替rm)。注意,使用shred可能不足以完全从一些存储设备清除数据,特别是某些类型的固态存储器。

安装程序模块签名支持的替代方法

可以在需要签名模块的系统上加载NVIDIA内核模块,而无需使用安装程序的模块签名支持。根据您的具体使用情况,您可能会发现这些替代品比签约模块更适合之一nvidia-installer

禁用UEFI安全引导(如果适用)

在某些内核上,只有在启用了安全启动的UEFI系统上启动时,才需要签名的模块。这种内核的一些用户可能会发现禁用安全启动更加方便; 但是,请注意,这将通过使恶意用户更容易安装潜在有害的启动代码,内核或内核模块,从而降低系统的安全性。

使用不需要签名模块的内核

内核可以配置为不检查模块签名,或者检查模块签名,但允许加载没有可信签名的模块。安装以这种方式配置的内核将允许安装未签名的模块。请注意,在安全引导系统上,您仍然需要确保内核使用引导加载程序和/或引导固件信任的密钥进行签名,并且不强制执行模块签名验证的内核可能比一个这是。

将预编译的内核接口添加到安装程序包

nvidia-installer运行时,它会搜索目标内核的预编译的内核接口层:如果找到,则完整的内核模块可通过预编译的接口链接生成的nv-kernel.o,而不是需要编译目标系统上的内核接口。nvidia-installer包括允许用户向安装程序包添加预编译接口的功能。这在许多使用情况下是有用的; 例如,大组类似配置的计算机的管理员可以准备具有用于在那些计算机上运行的内核的预编译接口的安装程序包,然后部署定制安装程序,其将能够安装NVIDIA内核模块,而不需要内核开发头或者目标系统上安装的编译器。(仍然需要链接器。)

要使用此功能,只需调用.run安装程序包的--add-this-kernel选项; 例如

 #sh ./NVIDIA-Linux-x86_64-340.101.run --add-this-kernel

这将解包NVIDIA-Linux-x86_64-340.101.run,编译内核接口层为当前运行的内核(使用 --kernel-source-path--kernel-output-path选项来指定比当前运行的另一个目标内核),并创建一个新的安装程序包与内核接口层增加。

大集团同样配置的计算机时,结合配置为需要受信任的签名,以加载内核模块可能会发现这个功能特别有用的管理员内置的模块支持签名 nvidia-installer。打包带预编译的内核接口层,加上链接模块分离模块签名.RUN文件,只需使用--module-signing-secret-key--module-signing-public-key选项旁边的 --add-this-kernel选项。除了可以在目标系统上没有内核头或编译器的情况下,所得到的软件包还具有能够生成签名模块而不需要访问安装目标系统上的私钥的附加好处。请注意,分离的签名才有效,如果预编译接口连接的结果nv-kernel.o在目标系统上是完全相同这两个文件链接被用于创建定制安装在系统上的结果。为了确保最佳兼容性,在软件包准备系统和安装目标系统上使用的链接器应该相同。

安装程序的其他功能

如果没有选择,.run文件解压后执行安装程序。安装者可以如在过程的单独步骤来运行,或可在稍后的时间运行,以获得更新等一些比较重要的命令行选项 nvidia-installer是:

nvidia-installer 选项

--uninstall

在安装过程中,安装程序将对任何冲突文件进行备份,并记录新文件的安装。卸载选项将撤消安装,将系统恢复到其预安装状态。

--latest

连接到NVIDIA的FTP站点,并报告最新的驱动程序版本和url到最新的驱动程序文件。

--update

连接到NVIDIA的FTP站点,下载最新的驱动程序文件,并安装它。

--ui=none

如果安装程序能够找到正确的ncurses库,则使用基于ncurses的用户界面。否则,它将回退到一个简单的命令行用户界面。此选项禁用ncurses库的使用。

NVIDIA Accelerated Linux图形驱动程序自述文件和安装指南

NVIDIA 公司

版权所有©2006 - 2013 NVIDIA Corporation

所有NVIDIA设计规范,参考板,文件,图表,诊断,列表和其他文档(合并和独立,“材料”)“按原样”提供。NVIDIA不对这些材料做出任何明示,暗示,法定或其他方面的担保,并明确否认所有暗含的对非特定用途,适销性和适用性的担保。提供的信息被认为是准确和可靠的。但是,NVIDIA公司对使用此类信息的后果或由于其使用可能导致的任何侵犯第三方专利或其他权利的行为不承担任何责任。未经NVIDIA公司的任何专利或专利权利暗示或以其他方式授予许可。本出版物中提及的规格如有更改,恕不另行通知。本出版物取代并取代以前提供的所有信息。NVIDIA Corporation产品未经NVIDIA公司明确书面批准,不被授权用作生命支持设备或系统中的关键组件。

NVIDIA,NVIDIA徽标,NVIDIA nForce,GeForce,NVIDIA Quadro,Vanta,TNT2,TNT,RIVA,RIVA TNT和TwinView是NVIDIA Corporation在美国和/或其他国家的注册商标或商标。

Linux是Linus Torvalds的注册商标。Fedora和Red Hat是Red Hat,Inc.的商标。SuSE是SuSE AG的注册商标。Mandriva是Mandriva SA的注册商标。Intel和Pentium是Intel Corporation的注册商标。Athlon是Advanced Micro Devices的注册商标。OpenGL是Silicon Graphics Inc.的注册商标。PCI Express是PCI-SIG的注册商标和/或服务标志。Windows是Microsoft Corporation在美国和其他国家/地区的注册商标。ARM是ARM Limited的注册商标。其他公司和产品名称可能是与其相关的各自所有者的商标或注册商标。


目录

I.安装和配置说明1.介绍2.最低软件要求3.选择和下载系统的NVIDIA软件包4.安装NVIDIA驱动程序5.安装的组件列表6.为NVIDIA驱动程序配置X.7.常见问题8.常见问题9.已知问题10.在64位平台上分配DMA缓冲区11.指定OpenGL环境变量设置12.在一个X屏幕上配置多个显示设备13.在Xinerama中配置GLX14.在一张卡上配置多个X屏幕15.配置电视输出16.支持X调整大小和旋转扩展17.配置笔记本计算机18.在Optimus笔记本电脑上使用NVIDIA驱动程序19.编程模式20.配置翻转和UBB21.使用Proc文件系统接口22.配置电源管理支持23.使用X复合扩展24.使用nvidia-settings实用程序25.使用nvidia-smi实用程序26. NVIDIA管理图书馆27.使用nvidia-debugdump实用程序28.使用nvidia-persistenced实用程序29.配置SLI和多GPU FrameRendering30.配置帧锁定和同步锁相31.配置SDI视频输出32.配置深度30显示33.使用RandR 1.4卸载图形显示器34.解决能力35. NVIDIA联系信息和其他资源36.致谢II。附录A.支持的NVIDIA GPU产品B. X配置选项C.显示设备名称D. GLX支持E.每英寸点数F. i2c总线支持G. VDPAU支持H.音频支持新Linux用户的提示J.应用概况K. GPU名称

-End-

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN博客

在Ubuntu上安装CPU版本的Caffe

Caffe是目前比较常用的深度学习框架,这个框架安装没有其他一下主流框架那么简单,直接使用pip命令安装,它更常用的是使用编译的方式安装。所以写下这个文章记录一...

18620
来自专栏静谧的小码农

Ubuntu Linux 学习笔记

sudo cp /etc/network/interfaces /etc/network/interfaces.bak    ...

10130
来自专栏我和PYTHON有个约会

Ubuntu更新软件源

默认情况下,Ubuntu的软件源在国内使用不是很理想,网速限制太大,造成一些较大的软件下载安装一直超时的情况出现。

1K30
来自专栏学一学大数据

ubuntu 16.04部署kubernetes集群【详细教程】

作为一名新时代的运维工程师,不掌握k8s这样开阔时代的工具怎能成为一名好运维呢?最近两周在折腾k8s集群,发现很是不容易。各种概念,各种插件。这里把安装过程和遇...

63420
来自专栏CSDN博客

XAMPP下的MYSQL解决中文乱码问题

相信有很多朋友都跟我一样,使用XAMPP集成的MYSQL,因为它操作起来实在太方便了。但是它默认不是支持UTF-8的,需要我们手动去修改配置文件my.ini

17020
来自专栏HUBU生信

SSH不能访问Virtualbox虚拟机的解决方法

Virtualbox 是Oracle 公司出品的免费的虚拟机软件。为了学习Linux及相关软件,我们安装了Windows版本的Virtualbox,然后在Vir...

23740
来自专栏HUBU生信

ubuntu下java环境配置

许多linux软件是java语言编写的,它们的运行需要java环境。所以正确的配置java环境很重要。java环境配置分两种方式:

51220
来自专栏CSDN博客

Windows10安装Linux子系统Ubuntu

相信大部分同学都跟我一样都是使用Windows系统的,但是作为一个开发者来说,Linux命令是经常要用到的,在以前我们使用虚拟机安装Linux的,如果电脑配置低...

27720
来自专栏CSDN博客

Ubuntu server搭建Java web服务器

在这里为大家介绍如何在Ubuntu server搭建Java web服务器,输入命令时请留意作者的Ubuntu路径的变化

54810
来自专栏每周一脱topic

Windows下使用Docker编译Android系统源代码

最近进行Andorid性能优化的前期调研,后面要修改Andorid源代码插一些桩,提前把编译环境搞起来。官方推荐使用ubuntu,公司网络限制等等不好弄,所以尝...

2.6K50

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励