一、前言
为了跑比赛中提供的程序不得不要用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