Linux学习小记(二十二)——Deepin 15.11安装NVIDIA闭源驱动和CUDA 10

一、前言

为了跑比赛中提供的程序不得不要用cuda,而且这个程序还巨耗性能,至少16GB内存。。。
本来也不必须要用cuda跑的,但是我在Windows下wsl中用CPU跑,足足跑了9个小时,跑完电脑就死机了,运行结果都没来得及保存。。。
我嫌Windows下编译cuda程序还得Visual Studio,而VS这玩意又大又卡,最重要的是我不会用。。。
然后wsl和虚拟机又不能跑cuda,无奈只能在电脑里腾出40GB用来装个Linux。。。

注:完整操作流程在最后,前面的废话里的操作都是不完整的

二、Ubuntu下的失败尝试

本来是准备装Ubuntu的,毕竟是Debian系Linux里唯一出现在NVIDIA官方支持文档里的系统,但是在解决Ubuntu安装程序的live环境启动不了(加个参数 acpi=off)之后还是装不上,会因为如下错误,装不上引导程序,而且grub rescure下也没法手动加载normal.mod启动

grub-efi-amd64-signed failed to install into /target/

对于这个问题,这里列出一些可参考的解决方案,虽然最后都没用:

https://www.cnblogs.com/alonely/p/9222437.html
https://www.jianshu.com/p/6925dcafeee6
https://blog.csdn.net/m0_37962316/article/details/81256371
https://blog.csdn.net/zouguo1211/article/details/81200628

三、Deepin下的半成功?尝试

于是放弃Ubuntu用回Deepin,其实之前用Deepin的时候装过NVIDIA驱动,也是折腾了很久没有成功,这次准备再试试。

3.1. Deepin官方源内版本(390)failed

一开始尝试安装Deepin官方源内版本(深度显卡驱动管理就是个垃圾,我从来没有用它成功切换过驱动,无论是切换到大黄蜂还是Intel核显):

sudo apt install nvidia-driver

结果重启后啥都没发生。。。

3.2. NVIDIA官方最新版本(440.59) Success?

然后去NVIDIA官网下载最新的驱动安装程序,一开始我最后一步(就是问你要不要自动配置nvidia-xconfig的那步)选的No,重启后驱动是装上了,但是独显他不工作啊,nvidia-settings打不开,nvidia-smi里也没进程。

于是我又装了一遍驱动,这次最后一步选了YES,重启后就进不了桌面了,屏幕最后一行显示如下

/dev/XXX: clean, xxx/xxx files, xxx/xxx blocks

然后百度了解到,双显卡电脑最后一步要选No(https://blog.csdn.net/zhang970187013/article/details/81012845),2333

Ctrl+Alt+F3,进入tty,然后执行

nvidia-xconfig --restore-original-backup
startx

还原Xorg设置,就能启动图形界面了

然后根据CSDN上这篇博文(https://blog.csdn.net/lewif/article/details/101150113)重新安装驱动,手动配置Xorg.conf,成功安装上了NVIDIA最新的440.59的驱动,并且nvidia-settings也能正常打开,但是我发现Deepin开窗口特效的环境下图形界面十分的卡顿

四、Debian大法好 Success!

然后看到这篇博文(https://www.cnblogs.com/eaglexmw/p/11588128.html),觉得Debian是Deepin的上游,感觉挺靠谱,毕竟发布在源内的必然是经过测试的,但是他这样一个个包去找来下载未免也太麻烦了吧,索性我把Deepin的系统源设置直接改成了Debian的源,心里默念着千万不要因为依赖关系崩系统啊(操作有风险,请先备份系统分区和系统引导),然后直接

apt update 
apt install nvidia-driver

重启后发现和上面 3.2 中一开始那个操作一样显卡不工作,于是手动配置Xorg,还是依照这篇博文(https://blog.csdn.net/lewif/article/details/101150113),然后重启就好了。独显工作,图形界面也不卡了。

装完显卡驱动就要装cuda了,奈何不知道是不是用的debian源内的驱动的原因,NVIDIA官网下载cuda怎么都装不上,看他的日志也毫无头绪,于是看了一下发现debian源内有cuda,愉快的apt install nvidia-cuda-toolkit就完成了。

不过这样是没有samples的,需要的小伙伴可以用NVIDIA官方的驱动选择性只装samples给装上,是能成功的。

五、完整操作流程 终于开始正文了!!!!

5.1禁用开源驱动nouveau(来源还是上面CSDN上的那篇博文)

编辑balcklist.conf

sudo nano /etc/modprobe.d/blacklist.conf

加入如下语句

blacklist nouveau
options nouveau modeset=0

保存后退出,执行

sudo update-initramfs -u

重启系统,重启后查看是否生效,

lsmod |grep -i nouveau

没有输出就是生效了

5.2修改镜像源

记得先备份原来的sources.list哦!

sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup

Debian的镜像源推荐用清华大学的,如果你不会写sources.list,你可以在这里找到写好的sources.list,记得选择Debian版本,bullseye的cuda是10.2的,buster的cuda是9.2的,这里我用的是bullseye

编辑sources.list

sudo nano /etc/apt/sources.list

粘贴找到的写好的sources.list,

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb
https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
5.3 安装驱动和cuda

更新软件包数据

sudo apt update

安装驱动和cuda

sudo apt install nvidia-driver nvidia-cuda-toolkit
5.4配置xorg(来源依旧还是上面CSDN上的那篇博文)
lspci | egrep 'VGA|3D'

执行上述命令获取nvidia显卡设备BusID,例子 01:00.0 填写PCI:1:0:0,

然后编辑 /etc/X11/xorg.conf,注意其中PCI部分填写PCI:1:0:0,

Section "Module"
Load "modesetting"
EndSection

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:X:X:X" 
Option "AllowEmptyInitialConfiguration"
EndSection

编辑~/.xinitrc,

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96

编辑/etc/lightdm/display_setup.sh,

#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96

然后执行,

sudo chmod +x /etc/lightdm/display_setup.sh

编辑/etc/lightdm/lightdm.conf 在[Seat:*]行下添加,

display-setup-script=/etc/lightdm/display_setup.sh
5.5重启检查配置
nvidia-settings

如果能用上述命令打开显卡设置说明驱动装好了

nvcc -v

如果能用上述命令查看cuda版本说明cuda也装好了

5.6 还有一件事!!!

差点忘了,记得把镜像源改回来

sudo mv /etc/apt/sources.list.backup /etc/apt/sources.list
sudo apt update
注:如果出现前文进不了桌面的问题请尝试

1、关闭Secure Boot
2、删除启动参数里的acpi=off
3、删除xorg.conf

不说点什么喵?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据