曾经按照一个教程(ubantu显卡驱动(nvidia)安装终极教程)说,我的电脑是装不了独立显卡驱动的,一度想要放弃,直到看到(【双显卡安装】ubuntu下双显卡驱动安装折腾经验完整说明)中用户
刀光剑影话悲凉
发的截图,燃起了再次装驱动的信心…
笔记本型号:Y430P
独显型号:GTX850M
环境:ubuntu 14.04
1. 勾选第三方软件的源
选择其它软件
,勾选第三方软件开发商提供的软件及源代码
,这个很重要!!!
然后就能看到加载出来专有驱动
和通用驱动
,我这里是装好后的截图
2. 准备工作
2.1 在boot里启用显卡
我的电脑是这样,在boot
里可以设置独显的启动和关闭
2.2 查看自己GPU型号
$ lspci | grep -i nvidia
这个不管装没装独显驱动都能看到,除非你在boot
里关闭了独立显卡
2.3 检查是否具备安装cuda的条件
这步一般都没问题,参考教程:Ubuntu 14.04 上安装 CUDA 7.5/8.0 超详细教程
2.4 确定GPU支持的cuda版本
2.4.1 确定GPU计算等级
根据 https://developer.nvidia.com/cuda-gpus,确定自己显卡的Compute capability
2.4.2 确定cuda支持计算等级范围
根据 cuda-wiki 中的GPUs supported
栏目,确定想要安装的cuda
版本支持的Compute capability
范围
比如,CUDA SDK 8.0 support for compute capability 2.0 – 6.x (Fermi, Kepler, Maxwell, Pascal).
2.4.3 确定cuda版本
对应最低支持的nvidia驱动版本
我选择安装的是cuda-8.0
,另外cuda-8.0
最低支持的nvidia驱动版本是361.00
,在安装完cuda的时候会显示这条信息,所以nvidia驱动
往高了装就没有问题吧
3. 安装nvidia驱动
Ubuntu 16.04安装NVIDIA驱动 提供了三种安装nvidia驱动的方法,下面介绍最稳妥的一种
3.1 下载驱动
到这里下载即可,http://www.geforce.cn/drivers
但是,因为后面我下载的cuda版本是cuda_8.0.61_375.26_linux.run
,中间的375.26
是推荐的独显驱动版本,因此我下载的nvidia驱动也是该版本,即,NVIDIA-Linux-x86_64-375.26.run
3.2 卸载残余
卸载可能存在的旧版本 nvidia 驱动(对没有安装过 nvidia 驱动的主机,这步可以省略,但推荐执行,无害)
$sudo apt-get remove --purge nvidia*
3.3 禁用nouveau
nouveau
是linux为独显安装的通用驱动,所以在安装官方驱动前要禁用该驱动
查看nouveau
是否禁用
lsmod | grep nouveau
无任何输出为禁用成功.
以下参考:https://gist.github.com/dangbiao1991/7825db1d17df9231f4101f034ecd5a2b
3.3.1 把 nouveau 驱动加入黑名单
$sudo nano /etc/modprobe.d/blacklist-nouveau.conf
在文件 blacklist-nouveau.conf
中加入如下内容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
3.3.2 禁用 nouveau 内核模块
$echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
$sudo update-initramfs -u
3.3.2 重启
lsmod | grep nouveau
查看是否成功
3.4 安装
必选参数解释
:因为NVIDIA的驱动默认会安装OpenGL,而Ubuntu的内核本身也有OpenGL、且与GUI显示息息相关,一旦NVIDIA的驱动覆写了OpenGL,在GUI需要动态链接OpenGL库的时候就引起问题。
先使用Ctrl+Alt+F1
进入tty1
终端,然后按照下列命令顺序安装
#【1】关闭x-windows
sudo service lightdm stop
#【2】可执行文件
sudo chmod +x NVIDIA-Linux-x86_64-375.26.run
#【3】注意参数
sudo ./NVIDIA-Linux-x86_64-375.26.run –no-opengl-files
no-opengl-files
:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。-no-x-check
:表示安装驱动时不检查X服务,非必需。-no-nouveau-check
:表示安装驱动时不检查nouveau,非必需。-Z, --disable-nouveau
:禁用nouveau。此参数非必需,因为之前已经手动禁用了nouveau。-A
:查看更多高级选项。
参考:Ubuntu 16.04 Nvidia驱动安装
安装过程中一些选项(有一些问题记不清楚了,只给出需要选择的选项:):
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择yes
继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择
No
继续。
问题没记住,选项是:install without signing
问题大概是:Nvidia’s 32-bit compatibility libraries? 选择
No
继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择
Yes
继续
如果提示安装失败,不要急着重启电脑,重复以上步骤,多安装几次,成功后重启即可
3.5 测试成功与否
3.5.1 挂载nvidia驱动
$ modprobe navidia
3.5.2 若列出GPU的信息列表,表示驱动安装成功
$ nvidia-smi
若弹出设置对话框,亦表示驱动安装成功
$ nvidia-settings
3.5.3 查看 NVIDIA Driver版本号
终端输入 :$ cat /proc/driver/nvidia/version
会输出NVIDIA Driver的版本号
4. 安装cuda驱动
4.1 准备工作
4.1.1 cuda-8.0
下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive,1.4g大小
4.1.2 其它与装nvidia驱动一样
禁用nouveau
进入tty1
关闭x-windows
4.2 卸载残余
4.3 安装
sudo ./cuda_8.0.61_375.26_linux.run --no-opengl-libs
-no-opengl-libs
:表示只安装驱动文件,不安装OpenGL文件。必需参数,原因同上。注意:不是-no-opengl-files。-uninstall (deprecated)
:用于卸载CUDA Driver(已废弃)。-toolkit
:表示只安装CUDA Toolkit,不安装Driver和Samples。-help
:查看更多高级选项。
之后,按照提示安装即可。我依次选择了:
(提示:协议太长?直接按ctrl+c
转到最后)
accept #同意安装
n #不安装Driver,因为已安装最新驱动
y #安装CUDA Toolkit
<Enter> #安装到默认目录
y #创建安装目录的软链接
n #不复制Samples,因为在安装目录下有/samples
4.4 是否出现循环登陆问题
输入 $ sudo service lightdm start
重新启动图形化界面。
Alt + ctrl +F7
,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录
的问题,基本说明CUDA的安装成功了
如果出现该循环登录问题,呵呵…
- 检查是否cuda安装时又装了一遍独显驱动,此种情况依次卸载cuda安装的驱动、卸载cuda、卸载nvidia驱动
- cuda安装时是否选了
opengl
- boot secure?
4.5 Device Node Verification
参考:Ubuntu 14.04安装CUDA-8.0
执行
$ ls /dev/nvidia*
正常结果显示
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
如果不是这样,参考上面教程修改即可
4.6 导入环境变量
编辑~/.bashrc
,添加
$ export PATH=/usr/local/cuda-8.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
执行
source ~/.bashrc
检查 CUDA Toolkit是否安装成功
终端输入 : $ nvcc –V
会输出CUDA的版本信息
4.7 CUDA Sample测试:
#编译并测试设备 deviceQuery:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
#编译并测试带宽 bandwidthTest:
cd ../bandwidthTest
sudo make
./bandwidthTest
如果这两个测试的最后结果都是Result = PASS,说明CUDA安装成功啦
<完>
@leatherwang