(1) 目前已测试架构:x86(PC机)
(2) 目前已测试ubuntu版本: 16、18、20
sudo vi /etc/modprobe.d/blacklist.conf
添加以下内容保存:
blacklist nouveau
后面几个可添加可不添加,没有试过到底有多大影响:
options nouveau modeset=0
blacklist rivafb
blacklist vga16fb
blacklist nvidiafb
blacklist rivatv
…
To remove CUDA Toolkit:
sudo apt-get --purge remove "*cublas*" "cuda*"
To remove NVIDIA Drivers:
sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove xserver-xorg-video-nouveau
sudo apt autoremove
Ctrl + Alt +F4(F2~F4均可)到tty, Ctrl+Alt+F1是返回 (不同电脑可能具体情况不同,但都是Ctrl + Alt +F*)
输入用户名密码登录(数字不能用小键盘输入)
sudo service lightdm stop
注:如果提示unit lightdm.service not loaded;则先安装LightDm: sudo apt install lightdm;安装完毕后跳出一个界面,选择lightdm,再sudo service lightdm stop
手动选择安装:sudo ./NVIDIA-Linux-x86_64-430.64.run
自动选择安装:
sudo ./NVIDIA-Linux-x86_64-440.100.run --accept-license --silent --no-nouveau-check --disable-nouveau --no-opengl-files
cd /etc/modprobe.d/
sudo vim blacklist-nvidia-usb.conf
将blacklist ucsi_ccg添加进去,保存出来即可
报这个错有个先验-- sudo service lightdm stop 后电脑不会息屏;
报错原因(只是当时报这个错是这个原因) – 电脑有两种显卡,一个是intel的,一个是nvidia的,但当前默认使用的是intel的,需要切换使用的显卡内核
查看显卡信息-- lspci |grep -i vga
有的是: lspci | grep VGA
解决 (成功)–
1:在开机选择从U盘启动后(我是用U盘装的)会有几个选项让选择,最重要的两个是让你选择使用而不安装还是安装,我们通过上下箭头或者TAB把光标移动到“安装”选项,然后按e,进入grub界面,将这个界面的最后部分的“quiet splash —”改为“nomodeset”。F10保存,就可以进入安装界面,进行安装。
2:按照这种方法安装完成后有一个问题就是第二次启动ubuntu系统的时候会卡在启动界面进不去,解决方案:重启,开机时光标选中“Ubuntu”,按“e”,进入grub界面,在刚刚改过的那行(倒数第二行)的末尾加上“ acpi_osi=Linux nomodeset”(nvidia显卡 ),再F10保存重启,就可以进入。
但是每次进入都需要这样修改,肯定很麻烦,所以进去之后到/boot/grub/grub.cfg(sudo vi /boot/grub/grub.cfg)中,找到刚刚在修改界面所看到的那一串代码(找到最后一个quiet splash,将其改为nomodeset, 并在此句末尾加入acpi_osi=Linux nomodeset即可),保存退出就好了,这样就可以完美解决开机卡死的问题。
说明:本教程只对NVIDIA显卡的电脑有效,其他的没测试过。
————————————————
原文链接:安装ubuntu系统时卡在开机logo的解决方案_ai-exception的博客-CSDN博客_ubuntu卡在logo
改好后,重启,然后重装驱动即可;
总结以上信息:
sudo vi /boot/grub/grub.cfg
找到最后一个quiet splash,将其改为nomodeset, 并在此句末尾加入acpi_osi=Linux nomodeset
重启,然后重新安装即可
原因:开启了UEFI secure boot,导致第三方模块没有被合法签名,所以无法校验成功并加载
解决方法: 执行以下命令:
sudo mokutil --disable-validation
该命令会要求设置一个 8-16位的密码,设置完成后重启。第一次重启,会有几秒钟提示按任意键进入MoK管理界面,然后按照提示输入密码,禁用Secure boot 即可。
执行以下命令:
grep nvidia /etc/modprobe.d/* /lib/modprobe.d/*
运行结果如下,可能不同机器的结果会有小出入,但可见NVIDIA的一些模块被禁用:
/etc/modprobe.d/blacklist-framebuffer.conf:blacklist nvidiafb
/lib/modprobe.d/blacklist-nvidia.conf:# This file was generated by nvidia-prime
/lib/modprobe.d/blacklist-nvidia.conf:blacklist nvidia
/lib/modprobe.d/blacklist-nvidia.conf:blacklist nvidia-drm
/lib/modprobe.d/blacklist-nvidia.conf:blacklist nvidia-modeset
/lib/modprobe.d/blacklist-nvidia.conf:alias nvidia off
/lib/modprobe.d/blacklist-nvidia.conf:alias nvidia-drm off
/lib/modprobe.d/blacklist-nvidia.conf:alias nvidia-modeset off
/lib/modprobe.d/nvidia-kms.conf:# This file was generated by nvidia-prime
/lib/modprobe.d/nvidia-kms.conf:options nvidia-drm modeset=1
因此需要将这些blacklist文件删除或者转为.bak文件(可能不同机器文件名不同,可视上一命令运行结果定)
cd /etc/modprobe.d/
sudo mv blacklist-nvidia.conf blacklist-nvidia.conf.bak
cd /lib/modprobe.d/
sudo mv blacklist-nvidia.conf blacklist-nvidia.conf.bak
解决以上,重启后,再行安装即可!
原因: 是由于内核版本高了,文件变了,实际去/usr/include目录下看,发现没有asr这个目录,而有一个asm-generic目录
解决1(失败):自己创建一个软连接,然后重新编译即可
sudo ln -sf asm-generic asm
解决2(成功): 换一个更高版本的nvidia-driver安装包(由455换为了470)
sudo service lightdm start
(好像可以不用)
Ctrl + Alt +F1 (有的不是F1,可能是F7等,自己试一下)
就是cuda-toolkit,nvcc用的
首先去英伟达官网下载cuda安装包:https://developer.nvidia.com/cuda-toolkit-archive ,按照系统配置选择安装包,据说用deb文件安装容易出错,所以直接下载runfile(后缀为.run)文件来安装
sudo ./cuda_10.2.89_440.33.01_linux.run
注:
压住回车键,直到服务条款显示到100%。接着按下面的步骤选择:
accept、n(不要安装driver)、y、y、y
中间有选择路径的,直接按Enter就行了
报错1:miss 很多东西
解决2:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libxml2
然后重装
报错2:Failed to verify gcc version,See log at /var/log/cuda-installer.log for details.
log中显示:
[ERROR]: unsupported compiler version: 9.4.0. Use --override to override this check.
原因: gcc版本过高
解决2(**成功**):
sudo ./cuda_10.2.89_440.33.01_linux.run --override
解决2--2(**成功**):
sudo apt-get update
sudo apt-get install gcc-7 g+±7
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g+±7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
以上两种方式都可以成功解决。。。
编辑环境变量文件:sudo vim ~/.bashrc
将下面信息添加进去:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64
export PATH=$PATH:/usr/local/cuda-10.2/bin
激活:source ~/.bashrc
nvcc --version 或 nvcc -V
按需求下载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive
解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:
sudo cp cuda/include/* /usr/local/cuda-10.2/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/
sudo chmod a+r /usr/local/cuda-10.2/include/*
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*
7.6及以下
cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
8.0中:
cat /usr/local/cuda-11.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
ps: 若在更新程序中查看不到相应nvidia驱动,需要自行添加:
sudo apt-add-repository ppa:graphics-drivers/ppa
sudo apt update
在更换显卡后若无法进入桌面,可以进入recover模式的root,然后输这句
sudo ubuntu-drivers autoinstall