ubuntu 安装cuda和cuda驱动

概述

(1) 目前已测试架构:x86(PC机)

(2) 目前已测试ubuntu版本: 16、18、20

分开安装驱动和cuda

– 1.安装nvidia驱动

(1)屏蔽开源驱动 nouveau

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

添加以下内容保存:

blacklist nouveau

后面几个可添加可不添加,没有试过到底有多大影响:

options nouveau modeset=0

blacklist rivafb
blacklist vga16fb
blacklist nvidiafb
blacklist rivatv

(2)删除旧NVIDIA驱动

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

(3)重启电脑

(4)进入tty

Ctrl + Alt +F4(F2~F4均可)到tty, Ctrl+Alt+F1是返回 (不同电脑可能具体情况不同,但都是Ctrl + Alt +F*)

输入用户名密码登录(数字不能用小键盘输入)

(5)关闭lightdm服务(也叫x-window服务)

sudo service lightdm stop

注:如果提示unit lightdm.service not loaded;则先安装LightDm: sudo apt install lightdm;安装完毕后跳出一个界面,选择lightdm,再sudo service lightdm stop

(6)开始安装驱动

手动选择安装: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

— 报错1:NVidia failed to reset PPM

cd /etc/modprobe.d/

sudo vim blacklist-nvidia-usb.conf

将blacklist ucsi_ccg添加进去,保存出来即可

— 报错2:Unable to load the kernel module ‘nvidia.ko’

– 解决方式1(成功,适用大部分这个报错)

报这个错有个先验-- 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

重启,然后重新安装即可

— 解决方式2(成功)

原因:开启了UEFI secure boot,导致第三方模块没有被合法签名,所以无法校验成功并加载

解决方法: 执行以下命令:

        sudo mokutil --disable-validation

该命令会要求设置一个 8-16位的密码,设置完成后重启。第一次重启,会有几秒钟提示按任意键进入MoK管理界面,然后按照提示输入密码,禁用Secure boot 即可。

— 解决方式3

执行以下命令:

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

解决以上,重启后,再行安装即可!

– 注意:上述解决方式按顺序适用即可**

— 报错3:fatal error: asm/kmap_types.h: No such file or directory

原因: 是由于内核版本高了,文件变了,实际去/usr/include目录下看,发现没有asr这个目录,而有一个asm-generic目录

解决1(失败):自己创建一个软连接,然后重新编译即可

sudo ln -sf asm-generic asm

解决2(成功): 换一个更高版本的nvidia-driver安装包(由455换为了470)

(7)重启lightdm(x-window)服务

sudo service lightdm start

(8)重启电脑

(好像可以不用)

(9)返回图形界面

Ctrl + Alt +F1 (有的不是F1,可能是F7等,自己试一下)

(10)nvidia-smi 查看安装情况

– 2.安装cuda

就是cuda-toolkit,nvcc用的

(1)下载安装文件。

首先去英伟达官网下载cuda安装包:https://developer.nvidia.com/cuda-toolkit-archive ,按照系统配置选择安装包,据说用deb文件安装容易出错,所以直接下载runfile(后缀为.run)文件来安装

(2) 安装cuda。

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

以上两种方式都可以成功解决。。。

(3)设置环境变量

编辑环境变量文件: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

(4)检查是否安装成功

nvcc --version 或 nvcc -V

– 3.安装cudnn

(1)下载安装文件

按需求下载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive

(2)安装cudnn

解压下载的文件,可以看到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*

(3)查看cudnn版本

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

– apt安装驱动

ps: 若在更新程序中查看不到相应nvidia驱动,需要自行添加:

sudo apt-add-repository ppa:graphics-drivers/ppa

sudo apt update

– apt安装默认驱动

在更换显卡后若无法进入桌面,可以进入recover模式的root,然后输这句

sudo ubuntu-drivers autoinstall

你可能感兴趣的:(ubuntu环境部署,ubuntu,linux,运维)