Featured image of post Linux Nvidia 驱动从 runfile 迁移到 apt 管理

Linux Nvidia 驱动从 runfile 迁移到 apt 管理

用起来感觉还行,目前还没遇到什么坑

背景

以前在 Linux 上安装 Nvidia 驱动和 CUDA,一般都是直接去官网下一个 CUDA runfile 安装文件,直接运行就给你把驱动和 CUDA 一起安装好了。然后 Nvidia 现在好像是在推用 apt 管理驱动,他们自己弄了个镜像源,里面有驱动和各种安装包。这篇文章就是记录下迁移到 apt 管理驱动的过程。总的来说就是按照官方下面这个文档安装

https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/ubuntu.html

卸载驱动和CUDA

  1. 执行下面的命令卸载驱动

    1
    
    sudo /usr/bin/nvidia-uninstall
    

    卸载时可能会出现类似下面的提示,不影响,直接 OK

  2. 执行下面的命令卸载 CUDA

    1
    
    sudo /usr/local/cuda/bin/cuda-uninstaller
    

    1
    
    sudo rm -rf /usr/local/cuda*
    
  3. 重启服务器

设置 Nvidia 官方源

1
echo "deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" | sudo tee /etc/apt/sources.list.d/cuda-ubuntu2204-x86_64.list

重新执行 apt update 后,可以看到上面是原来安装 nvidia container toolkit 添加的源,下面的是驱动和CUDA的源

然后上面这个源其实可以不要了,因为下面的已经包含了 nvidia container toolkit 的包了,所以我们可以直接删掉他

1
2
sudo rm -rf /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update

安装驱动

一般就直接安装 cuda 就会连带驱动一起安装好

1
sudo apt install cuda

如果需要锁驱动版本等可以参考官方文档,有一个 nvidia-driver-pinning-<version>,不需要自己去 hold 包

安装 NVIDIA Container Toolkit

直接执行

1
2
3
4
5
sudo apt-get install -y \
      nvidia-container-toolkit \
      nvidia-container-toolkit-base \
      libnvidia-container-tools \
      libnvidia-container1

然后重启 docker 服务

1
sudo systemctl restart docker

对于 SXM 显卡

以往使用 .run 的安装方式,一般是再补装一个 ubuntu 官方的 nvidia-fabricmanager-<version> 包。但是我们加了这个 Nvidia 的源后,就直接安装就行,不需要指定版本了。

1
sudo apt install nvidia-fabricmanager

注意这个就不需要指定版本了,因为 nvidia-fabricmanagernvidia-fabricmanager-<version> 是两个东西。前者是 Nvidia 源里的,后者是 Ubuntu 官方源里的。