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驱动程序
目录
-
在你开始之前
@H_403_80@
- 启动安装程序 @H_403_80@
- 安装内核接口 @H_403_80@
- 使用DKMS注册NVIDIA内核模块 @H_403_80@
- 签名NVIDIA内核模块 @H_403_80@
- 将预编译的内核接口添加到安装程序包 @H_403_80@
- 安装程序的其他功能 @H_403_80@
- 启动安装程序 @H_403_80@
本章提供了安装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
文件。下面列出了一些更常见的选项。
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
。
一些内核可能需要内核模块被由内核信任的密钥加密签名以便加载。特别地,许多分发要求模块在加载到在启用了安全引导的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内核模块时,或者如果安装程序在专家模式下运行时,也会出现这些提示。
核心信任的关键源
为了将内核模块加载到需要模块签名的内核中,必须使用内核信任的密钥对模块进行签名。有几个源,内核可以利用它来构建其信任的密钥池。如果您已生成密钥对,但它尚未被内核信任,则必须先将公钥的证书添加到受信任的密钥源,然后才能用于验证签名的内核模块的签名。这些可信来源包括:
- 嵌入内核映像的证书 @H_403_80@
-
与内核
CONFIG_MODULE_SIG
集,公钥证书用于签署的树内核模块嵌入,以在生成时提供的任何附加的模块签名证书,到内核图像一起。由对应于嵌入式公钥证书的私钥签名的模块将被内核信任。由于密钥是在构建时嵌入的,添加新公用密钥的唯一方法是构建新内核。在启用了安全启动的UEFI系统上,内核映像将需要由引导加载程序信任的密钥签名,因此用户使用自定义嵌入式密钥构建自己的内核应该有一个计划,以确保引导加载程序将加载新的内核。
- 存储在UEFI固件数据库中的证书 @H_403_80@
-
上的内核与
CONFIG_MODULE_SIG_UEFI
,除了嵌入到内核图像的任何证书,内核可以使用存储在证书db
,KEK
或PK
计算机的UEFI固件的数据库来验证内核模块的签名,只要它们不是在UEFIdbx
黑名单。谁拥有的安全引导私钥的任何用户
PK
或任何在键的KEK
清单应该能够添加可通过与内核使用新的密钥CONFIG_MODULE_SIG_UEFI
,并用该计算机的物理访问的任何用户应能够删除任何现有的安全引导密钥,并安装他或她自己的密钥。有关如何管理UEFI安全启动密钥的详细信息,请参阅基于UEFI的计算机系统的文档。 - 存储在辅助密钥数据库中的证书 @H_403_80@
-
一些发行版包括允许在与内核的内置密钥列表以及UEFI固件中的密钥列表分开的数据库中安全存储和管理密钥的实用程序。一个突出的例子是某些版本中使用的莫(机器所有者密钥)数据库
shim
引导程序,和相关的管理工具,mokutil
和MokManager
。这样的系统允许用户注册附加密钥,而不需要构建新内核或管理UEFI安全启动密钥。有关此类辅助密钥数据库是否可用的详细信息,以及如何管理其密钥,请参阅分发的文档。
在nvidia-installer中生成签名密钥
nvidia-installer
可以生成可用于模块签名的密钥,如果现有密钥不容易获得的话。注意,由新生成的密钥签名的模块不能加载到需要签名的模块的内核中,直到其密钥被信任,并且当这样的模块安装在这样的系统上时,安装的驱动器将不会立即可用,即使安装成功。
当nvidia-installer
生成一个密钥对,并使用它来签一个内核模块,含公钥的X.509证书将被安装到磁盘上,因此,它可以添加到内核的可信的主要来源之一。nvidia-installer
将报告已安装证书的位置:记下此位置以及证书的SHA1指纹,以便在安装完成后,您可以注册证书并验证其是否正确。
默认情况下,nvidia-installer
将尝试与安全删除生成的私钥shred -u
模块签订后。这是为了防止密钥被利用来签署恶意内核模块,但这也意味着相同的密钥不能再次用于安装不同的驱动程序,或者甚至在不同的内核上安装相同的驱动程序。nvidia-installer
可以选择将私钥签名密钥安装到磁盘,如同对公共证书一样,以便将来可以重用密钥对。
如果您选择安装私钥,请确保采取适当的预防措施,以确保其不会被盗。您可能希望采取的预防措施的一些示例:
- 防止密钥被没有物理访问计算机的任何人读取 @H_403_80@
-
一般来说,需要物理访问来安装Secure Boot密钥,包括在标准UEFI密钥数据库之外管理的密钥,以防止远程攻击操作系统安全的攻击者安装恶意启动代码。如果远程用户可以使用受信任的密钥,甚至是root用户,那么攻击者可以在不首先进行物理访问的情况下签署任意内核模块,使系统不太安全。
确保密钥对远程用户不可用的一种方式是将其保持在可移动存储介质上,除了在对模块进行签名时,其与计算机断开连接。
- 不要存储未加密的私钥 @H_403_80@
-
加密私钥可以添加额外的安全层:除非可以成功解密密钥,否则密钥将不会用于签名模块。在不使用时(例如,使用或者使用易失性存储器(如RAM磁盘),或安全删除键的任何未加密的副本:确保不存储在持久性存储密钥的加密副本
shred
代替rm
)。注意,使用shred
可能不足以完全从一些存储设备清除数据,特别是某些类型的固态存储器。
安装程序模块签名支持的替代方法
可以在需要签名模块的系统上加载NVIDIA内核模块,而无需使用安装程序的模块签名支持。根据您的具体使用情况,您可能会发现这些替代品比签约模块更适合之一nvidia-installer
:
- 禁用UEFI安全引导(如果适用) @H_403_80@
-
在某些内核上,只有在启用了安全启动的UEFI系统上启动时,才需要签名的模块。这种内核的一些用户可能会发现禁用安全启动更加方便;但是,请注意,这将通过使恶意用户更容易安装潜在有害的启动代码,内核或内核模块,从而降低系统的安全性。
- 使用不需要签名模块的内核 @H_403_80@
-
内核可以配置为不检查模块签名,或者检查模块签名,但允许加载没有可信签名的模块。安装以这种方式配置的内核将允许安装未签名的模块。请注意,在安全引导系统上,您仍然需要确保内核使用引导加载程序和/或引导固件信任的密钥进行签名,并且不强制执行模块签名验证的内核可能比一个这是。
将预编译的内核接口添加到安装程序包
当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
在目标系统上是完全相同这两个文件链接被用于创建定制安装在系统上的结果。为了确保最佳兼容性,在软件包准备系统和安装目标系统上使用的链接器应该相同。
NVIDIA Accelerated Linux图形驱动程序自述文件和安装指南
版权所有©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.安装和配置说明 @H_403_80@
-
-
1.介绍
@H_403_80@
- 2.最低软件要求 @H_403_80@
- 3.选择和下载系统的NVIDIA软件包 @H_403_80@
- 4.安装NVIDIA驱动程序 @H_403_80@
- 5.安装的组件列表 @H_403_80@
- 6.为NVIDIA驱动程序配置X. @H_403_80@
- 7.常见问题 @H_403_80@
- 8.常见问题 @H_403_80@
- 9.已知问题 @H_403_80@
- 10.在64位平台上分配DMA缓冲区 @H_403_80@
- 11.指定OpenGL环境变量设置 @H_403_80@
- 12.在一个X屏幕上配置多个显示设备 @H_403_80@
- 13.在Xinerama中配置GLX @H_403_80@
- 14.在一张卡上配置多个X屏幕 @H_403_80@
- 15.配置电视输出 @H_403_80@
- 16.支持X调整大小和旋转扩展 @H_403_80@
- 17.配置笔记本计算机 @H_403_80@
- 18.在Optimus笔记本电脑上使用NVIDIA驱动程序 @H_403_80@
- 19.编程模式 @H_403_80@
- 20.配置翻转和UBB @H_403_80@
- 21.使用Proc文件系统接口 @H_403_80@
- 22.配置电源管理支持 @H_403_80@
- 23.使用X复合扩展 @H_403_80@
- 24.使用nvidia-settings实用程序 @H_403_80@
- 25.使用nvidia-smi实用程序 @H_403_80@
- 26. NVIDIA管理图书馆 @H_403_80@
- 27.使用nvidia-debugdump实用程序 @H_403_80@
- 28.使用nvidia-persistenced实用程序 @H_403_80@
- 29.配置SLI和多GPU FrameRendering @H_403_80@
- 30.配置帧锁定和同步锁相 @H_403_80@
- 31.配置SDI视频输出 @H_403_80@
- @L_403_53@ @H_403_80@
- 33.使用RandR 1.4卸载图形显示器 @H_403_80@
- 34.解决能力 @H_403_80@
- 35. NVIDIA联系信息和其他资源 @H_403_80@
- 36.致谢 @H_403_80@
- 2.最低软件要求 @H_403_80@
-
1.介绍
@H_403_80@
- II。附录 @H_403_80@