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

image.png

安装和使用Ubuntu的感受

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

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

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

安装系统及Nvidia驱动

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

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

    image.png

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

    image.png

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

    image.png

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 自动探测显卡版本并列出可使用的显卡驱动编号
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

<< 更多精彩尽在『程序萌部落』>>
<< https://www.cxmoe.com >>

选择安装驱动的版本

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

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

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

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

    image.png

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

1
2
3
4
5
6
7
8
9
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的版本即可。安装过程中会有基佬紫对话框,可能会被要求输入密码。

image.png

1
2
3
4
5
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,如果正常的显示出以下信息则正常。

image.png

可能出现的问题

  • 重启后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安装包,安装过程直接照官网来。

image.png

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 首先测试下运行环境是否正常,主要是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 来忽略过程中的错误。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 使用 -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



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



 评论




全站共计 313.7k 字,自豪地使用 Volantis 主题

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议