/由于工作需要,必须换操作系统了,一想到笔记本已经冗杂不堪,所以就索性重装成Linux系统,虽然显卡性能不如实验室的机器,但完全可以当做试验机,同时本身机子性能也不差,所以装个乌班图应该体验还不错。以上是我开始时的想法,后来装完了之后呢,体验总体也不错,但总归是有写麻烦,我总结一下放在开头。
总体体验还不错,除了娱乐性差一点,我基本可以适应从Win10到Ubuntu的过度。有关于系统设置和美化的内容请转到 这篇文章。
下面是安装系统及显卡驱动的步骤和需要注意的地方。
此时重启,应该一切正常可以进入桌面,这时其实系统使用的集显,独显的显卡还没装,下面开始。
# 自动探测显卡版本并列出可使用的显卡驱动编号
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
列出适用该笔记本电脑显卡的具体驱动版本。这里有三点需要注意:
如果错误的在高版本内核下安装了低版本驱动,会安装失败的:
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,如果正常的显示出以下信息则正常。
为什么重新安装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 2020
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 Version 10.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
https://bbs.deepin.org/forum.php?mod=viewthread&tid=41469 https://bbs.deepin.org/forum.php?mod=viewthread&tid=41469 http://askubuntu.com/questions/162075/my-computer-boots-to-a-black-screen-what-options-do-i-have-to-fix-it https://www.jianshu.com/p/fc5edbd6f480 https://www.jianshu.com/p/e476e5ad6b56