今天发现 ubuntu 出了关于 nvidia driver 的更新,应该更新之后就解决了这个问题。


前段时间收到了学校提供的电脑,本以为可以开开心心的写代码,没想到收到的新电脑出现了问题。这个问题花了我一个星期才解决,所以记录一下。

刚开始是什么都没做就开始卡顿,然后是重启之后无法正常登陆,以及出现花屏等情况。使用 “nvidia-smi” 命令 显示 “no devices were found”。

刚开始在网上查找解决方案,有的说是系统自带的驱动与英伟达驱动混淆的问题,需要禁用nouveau。还有的说要进入 bios 系统禁用 sceure boot,但都没有解决我的问题。

后来在nvidia 的论坛上看到有人说是 linux kernel 与 新的 30系列显卡不兼容,提出需要安装 5.10 的 linux kernel 。ubuntu 18.04 的 linux kernel 是 5.4, 我查询了一下如何安装 linux kernel 。自己去网上找安装包下载比较麻烦,Mainline 工具可以直接安装想要的 linux kernel。

Mainline

安装所有更新包

sudo apt full-upgrade

安装显卡驱动

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-ubuntu2004-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

sudo apt install htop

nvidia-smi

watch -n 1 -d nvidia-smi

安装

sudo add-apt-repository ppa:cappelikan/ppa  
sudo apt update  
sudo apt install mainline

卸载

sudo add-apt-repository --remove ppa:cappelikan/ppa
sudo apt remove mainline

安装完 Mainline 后,我安装 linux kernel 5.10,然后使用 ubuntu software&update工具里的additional drivers 安装推荐驱动。

Ubuntu 为 RTX3070 安装 NVIDIA driver-浙江万网信息

但是第2天,我启动电脑发现内核与驱动又不兼容了,然后我用 Mainline 安装了 内核 5.11, 接着继续安装驱动,这时出现 “NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.” 我当时认为是内核太新,而驱动版本太旧的问题,去英伟达官网下载了最新的驱动版本,但在安装时提示 5.11内核是用 gcc10.2编译的,所以驱动也需要 gcc10.2, 而ubuntu18.04 系统只能手动编译安装 gcc10.2,ubuntu20.04 可以直接安装 gcc10.2。

我安装了 ubuntu20.04 并且 安装 5.11内核。接着用以下命令安装 gcc10.2。

安装 gcc10.2 [ubuntu 20.04]

sudo apt install gcc-10 g++-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
sudo update-alternatives --config gcc

然后使用 Software & Update 安装 nvidia driver, 电脑正常运行。

有一点疑问的地方是,我不确定 ubuntu18.04 到底能不能用 3070,因为 “NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.” 这个的出现可能是我没有重新启动电脑。

http://events.jianshu.io/p/154a90ee8637

1. Ubuntu 21.04 系统安装

1.1 准备系统盘

  • 在ubuntu 官网下载官方镜像 (21.04 河马系统)
  • 使用 Rufus 制作系统盘

1.2 安装流程

  • 安装系统时选择其他选项,手动地分配各项空间
    名称 分配大小 类型 备注
    EFI 200MB 自动确定 如果电脑时单系统,一定要配置;双系统则无需配置。
    / 204800MB Ext4 系统盘大小, 200GB 为佳。 因此一些系统软件会在这里安装,e.g., CUDA, apt-get install 等。
    自动确定 65536MB 交换空间 一般和电脑内存一样大,64GB 为佳。
    /home 剩下所有内存 Ext4 相当与Windows C: 盘了。 一些用户软件会在这里安装,e.g., anaconda 及其环境, pycharm 等
  • 安装完毕后,重启并移除U盘。 如进入系统则安装完成。

2. 显卡驱动安装 (RTX 3080 Ti)

2.1 下载驱动程序

  • 下载nvidia驱动程序,RTX 3080 Ti 下载的是 470 版本的,约 200MB
Ubuntu 为 RTX3070 安装 NVIDIA driver-浙江万网信息
image-20210805153045613.png
  • 将 该 .run file 拷贝到 /home 下, 以方便获取并安装

2.2 Ubuntu 系统环境准备

  • 安装必要的依赖