1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 双显卡笔电安装N卡驱动及CUDA

双显卡笔电安装N卡驱动及CUDA

时间:2018-11-22 21:11:45

相关推荐

双显卡笔电安装N卡驱动及CUDA

由于工作需要,必须换操作系统了,一想到笔记本已经冗杂不堪,所以就索性重装成Linux系统,虽然显卡性能不如实验室的机器,但完全可以当做试验机,同时本身机子性能也不差,所以装个乌班图应该体验还不错。以上是我开始时的想法,后来装完了之后呢,体验总体也不错,但总归是有写麻烦,我总结一下放在开头。

安装和使用Ubuntu的感受

初始安装时要修改配置,针对双显卡机器;安装系统的过程非常快,这得益于我的固态硬盘;系统的初始环境比Win10全,比如自带Python环境等等;操作起来整体感觉圆滑,但比Win10要卡;随便的小操作就可能导致开机黑屏,不过修复也比较容易;开机关机要快点,因为不存在Win10那种更新;系统的自定义程度高,基本哪里都可以改;注意:微星笔电开启独显后会导致风扇一直运行在高转速;注意:真不需要占用太多硬盘空间,后悔没装双系统!

总体体验还不错,除了娱乐性差一点,我基本可以适应从Win10到Ubuntu的过度。有关于系统设置和美化的内容请转到 这篇文章。

下面是安装系统及显卡驱动的步骤和需要注意的地方。

安装系统及Nvidia驱动

双显卡的系统安装及驱动安装的准备工作

Bios改成uefi,关闭安全启动;

插入启动U盘,启动安装,在try ubuntu..install Ubuntu 的这个界面,按e,进入grub的调整界面;

把里边的quiet splash修改为nomodeset idle=nomwait,修改完成以后Ctrl + X或F10,使之生效;

然后继续安装,这样安装完成以后,应该可以顺利进入桌面;

正常进入桌面后,编辑 /etc/default/grub 这个文件,同样添加nomodeset字段到splash后面;

此时重启,应该一切正常可以进入桌面,这时其实系统使用的集显,独显的显卡还没装,下面开始。

# 自动探测显卡版本并列出可使用的显卡驱动编号

tzloop@tzloop-GE62-6QC:~$ ubuntu-drivers devices

… …

vendor : NVIDIA Corporation

model : GM107M [GeForce GTX 960M]

driver : nvidia-driver-440 - third-party free recommended

driver : nvidia-driver-415 - third-party free

driver : nvidia-driver-410 - third-party free

driver : nvidia-driver-430 - third-party free

driver : nvidia-driver-390 - third-party free

driver : nvidia-driver-435 - distro non-free

driver : xserver-xorg-video-nouveau - distro free builtin

# 查看内核版本(高内核会引发显卡驱动的不兼容)

tzloop@tzloop-GE62-6QC:~$ uname -r

5.3.0-26-generic

# 开始安装驱动时,先卸载之前的驱动

tzloop@tzloop-GE62-6QC:~$ sudo apt-get remove --purge nvidia*

… …

INFO:Disable nvidia

DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here

update-initramfs: deferring update (trigger activated)

Processing triggers for initramfs-tools (0.130ubuntu3.8) ...

update-initramfs: Generating /boot/initrd.img-5.3.0-26-generic

# 添加驱动的软件源

tzloop@tzloop-GE62-6QC:~$ sudo add-apt-repository ppa:graphics-drivers/ppa

… …

Fetched 88,7 kB in 0s (186 kB/s)

Reading package lists... Done

# 更新下载器

tzloop@tzloop-GE62-6QC:~$ sudo apt-get update

… …

Reading package lists... Done

选择安装驱动的版本

列出适用该笔记本电脑显卡的具体驱动版本。这里有三点需要注意:

尽量选择高版本的显卡驱动,比如这里选择安装440,如果选择安装410,则会出现与内核不兼容的情况,我们面会谈到。

第二点就是,可能你运行下面的命令不能自动识别出显卡版型号,那么你就要去手动查询对应的Nvidia显卡型号和Ubuntu驱动编号的关系,手动选择一个版本安装。

最后,如果可以在<软件和更新>中找到相对应的驱动版本,也可以直接鼠标选择后应用即可。这是18.04及以后都支持的Nvidia驱动安装方法。(一般初始驱动是不完整的)

如果错误的在高版本内核下安装了低版本驱动,会安装失败的:

tzloop@tzloop-GE62-6QC:~$ sudo apt install nvidia-driver-410

… …

Building initial module for 5.3.0-26-generic

ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-kernel-source-410.0.crash'

Error! Bad return status for module build on kernel: 5.3.0-26-generic (x86_64)

Consult /var/lib/dkms/nvidia/410.104/build/make.log for more information.

Setting up nvidia-driver-410 (410.104-0ubuntu0~18.04.1) ...

Processing triggers for initramfs-tools (0.130ubuntu3.8) ...

update-initramfs: Generating /boot/initrd.img-5.3.0-26-generic

所以我们要安装高版本,直接安装其recommended的版本即可。安装过程中会有基佬紫对话框,可能会被要求输入密码。

tzloop@tzloop-GE62-6QC:~$ sudo apt install nvidia-driver-440

… …

Processing triggers for initramfs-tools (0.130ubuntu3.8) ...

update-initramfs: Generating /boot/initrd.img-5.3.0-26-generic

Processing triggers for libc-bin (2.27-3ubuntu1)

显卡驱动安装完成的判定:,重启后输入nvidia smi,如果正常的显示出以下信息则正常。

可能出现的问题

重启后nvidia-smi通信失败

如果安装非常顺利,但重启后nvidia-smi命令无效,切记要在重启后进入蓝色方框的界面输入安装驱动时的密码,再重启就可以啦。

首次安装过程中,登录账户后桌面黑屏

原因:安装时的grub配置没有修改,这时要重新安装系统,按照上述步骤,一定要注意修改grub文件。

请确认,这是在首次安装过程中出现的,我们可以看见登录界面,但登录进去后就是黑屏,可能有鼠标也可能没有。

安装显卡驱动之后,重启黑屏

原因:没有在grub配置文件内添加nomodeset字段。

请确认,这是在我们安装完成系统之后出现的问题,那么接下来的操作就与安装盘没有任何关系,所有操作都不要插着安装盘。只需要使用Ctrl+Alt+F4(也可能是F1~F6),进入tty4也就是黑框(微型Ge62系列是在出现MSI图标后就按下ESC进入,时机比较难把握,多试几次就行了),登录root账户后,找到/etc/default/grub文件,将里面的quiet splash后面添加上nomodeset这个字段,保存重启即可。

安装CUDA

为什么重新安装Cuda,安装完成显卡驱动后的输出里已经能发现Cuda10.2了,这个问题我的理解是,我们要一个可控的开发环境,而不是运行环境,所以我们自己要重新装个Cuda,在Cuda官网可以找到对应显卡驱动的Cuda安装包,安装过程直接照官网来。

那么如何知道我们安装成功了呢,这里可以通过编译Cuda自带的例子来看其是否通过测试。

# 首先测试下运行环境是否正常,主要是GCC是否正常

tzloop@tzloop-GE62-6QC:~$ cat /proc/driver/nvidia/version

NVRM version: NVIDIA UNIX x86_64 Kernel Module 440.48.02 Tue Jan 14 06:22:51 UTC

GCC version: gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)

# 进入sample所在的目录

tzloop@tzloop-GE62-6QC:~$ cp -r /usr/local/cuda-10.2/samples/ ~

tzloop@tzloop-GE62-6QC:~$ cd ~/samples

# 编译自带的例子

tzloop@tzloop-GE62-6QC:~/samples$ make

… …

arch=compute_75,code=sm_75 -gencode arch=compute_75,code=compute_75 -o cudaNvSci.o -c cudaNvSci.cpp

In file included from cudaNvSci.cpp:12:0:

cudaNvSci.h:14:10: fatal error: nvscibuf.h: No such file or directory

#include <nvscibuf.h>

^~~~~~~~~~~~

compilation terminated.

注意:这里我们直接使用make的话会无法通过对例子的编译,参见 这里 的解释,这是一个已知的错误,我们可以通过make -k来忽略过程中的错误。

# 使用 -k 参数来跳过错误

tzloop@tzloop-GE62-6QC:~/samples$ make -k

… …

mkdir -p ../../bin/x86_64/linux/release

cp cuSolverRf ../../bin/x86_64/linux/release

make[1]: Leaving directory '/home/tzloop/samples/7_CUDALibraries/cuSolverRf'

make: Target 'all' not remade because of errors.

# 最终的测试,如果是PASS则Cuda运行正常

tzloop@tzloop-GE62-6QC:~/samples/bin/x86_64/linux/release$ ./deviceQuery

./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 960M"

CUDA Driver Version / Runtime Version10.2 / 10.2

… …

Compute Mode:

< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 10.2, NumDevs = 1

Result = PASS

参考资料

/forum.php?mod=viewthread&tid=41469

/forum.php?mod=viewthread&tid=41469

/questions/162075/my-computer-boots-to-a-black-screen-what-options-do-i-have-to-fix-it

/p/fc5edbd6f480

/p/e476e5ad6b56

😒 留下您对该文章的评价 😄

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。