如果不使用安装 cuda 用 ubuntu 的 Additional Drivers 选择驱动挺好用的。
但是如果使用 nvidia 提供的方式 安装 cuda,还使用 Additional Drivers 的话,apt upgrade 可能会导致 nvidia-deiver 包损坏。
这里系统我使用的是 ubuntu24,显卡 RTX3060LAPTOP 和 RTX950 进行演示。
本次演示我未使用独显直连,因为查询资料的是否看到有人关闭ui功能后安装显卡驱动,因为安装的是否屏幕分辨率会变更。但是我没有遇到类似的问题。
还有就是 ubuntu24的显卡驱动 280 270 以及 Nouveau,并没有开启 wayland 后只能单屏显示的问题,所以我未开启独显直连功能。
你需要关闭主板的安全启动, 用 Additional Drivers 的驱动不用关闭也可以使用,如果使用 nvidia 源安装驱动,会让你创建 Secure Boot 密码,所以我直接关闭安全启动
安装我参考的时下面两个连接
https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/ubuntu.html
https://developer.nvidia.com/cuda-12-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_network
安装显卡驱动
请打开你的 Additional Drivers 应用查看是否安装了驱动,如果已经安装了请将 选项设置为 Nouveau 选项并应用,然后重启电脑。
安装的时候需要注意,你只能选用 Additional Drivers 内出现的驱动,我在虚拟机里测试的是老显卡。老显卡不支持 开源驱动,错误的安装开源驱动会导致,连接不到显卡。
下面是我的笔记本电脑 Additional Drivers 出现的驱动,可能和你的不一样。
安装 linux 内核头文件包,ubuntu 已经安装了这个包,为了稳妥起见我们还是要运行一次,将该包设置为手动安装。
1 | sudo apt install linux-headers-$(uname -r) |
添加 cuda 源
1 | wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb |
官网文档让直接安装 nvidia-open 或者 cuda-drivers,请使用 apt search nvidia-open 或 apt search cuda-drivers 确定你的驱动是否在 Additional Drivers 之内。为了防止出现问题可以在 Additional Drivers 安装后测试是否可以正常使用,测试完后记得切换回 Nouveau 再进行下面的步骤。
为了快速验证,我使用了 RTX950 在pve虚拟机里验证,TRX950 在 Additional Drivers 里是没有提供开源驱动的,如果安装开源驱动的话会像下面这样。
所以RTX950 需要安装闭源
1 | sudo apt install cuda-drivers |
我的笔记本在 Additional Drivers 出现了开源驱动所以可以安装开源驱动。
1 | sudo apt install nvidia-open |
当然你也可以选用 apt search 搜索到的版本,比如你想让 nvidia-smi 显示cuda version 也是 12.8
1 | sudo apt install nvidia-open-580 |
安装好后重启电脑,重启后运行 nvidia-smi 查看显卡信息,实测 nvidia-smi 显示的 cuda 是支持的 cuda 最高版本,安装比这个版本底的 cuda 也可以运行,但是我个人建议版本号不要相差过多,实测跑 cuda 12.1 的程序,程序有报错。
1 | niconiconi@Laptop:~$ nvidia-smi |
不出以外的话里应该可以看到显卡信息,这就表达显卡驱动安装成功了
安装 cuda
这里我选用的 是 cuda12.8 当然你也可以安装其他版 请使用 apt search cuda-toolkit 查找可用版本
1 | sudo apt install cuda-toolkit-12-8 |
cuda 安装的位置在 /usr/local/cuda-<version> 并没有出现在变量环境中,还需要添加变量环境。
下面是 /usr/local 的内容 cuda 和 cuda-12 都指向了 /etc/alternatives/ 目录,但是该目录内的 cuda 和 cuda-12 又指回了 /usr/local/cuda-12.8
1 | niconiconi@Aurorra:/usr/local$ ls -l |
添加变量环境
1 | echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc |
如果你像我一样有强迫症,可以不使用上面的方式添加变量环境 而是手动向 ~/.bashrc 添加如下内容
1 | if [ -d "/usr/local/cuda/bin" ] ; then |
刷新变量环境
1 | source ~/.bashrc |
现在你就可以使用cuda了,比如运行下面的命令
1 | niconiconi@Aurorra:~$ nvcc -V |
如果你想进一步验证的话 你可以运行 cuda 教程的代码 https://developer.nvidia.com/zh-cn/blog/even-easier-introduction-cuda-2/ 该代码在太老的cuda上,教程内的 nsys_easy 会报错。
卸载 cuda 以及显卡驱动
如果你想装其他版本的驱动先卸载驱动和 cuda
1 | sudo apt remove --autoremove --purge -V nvidia-open\* cuda-toolkit\* |
如果是我的话我会一次性安装 cuda 和显卡驱动cuda,类似于这样
1 | sudo apt install nvidia-open-580 cuda-toolkit-13-0 |
docker 使用 gpu
参考 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
注意在运行该步骤之前,请确认你已经按照docker官方文档正确安装了docker。
我并未按照nvidia官方的安装过程中我跳过了添加仓库的步骤。因为我发现上面的驱动仓库里也有 nvidia-container-toolkit。
下面的操作安装显卡驱动就行了,安不安装 cuda无所谓。
安装 nvidia-container-toolkit
1 | sudo apt install nvidia-container-toolkit |
向 docker 添加显卡支持,此操作编辑 /etc/docker/daemon.json 文件添加 NVIDIA 容器运行时。
1 | sudo nvidia-ctk runtime configure --runtime=docker |
重启 docker
1 | sudo systemctl restart docker |
测试显卡添加是否正常,如无以外会输出你的显卡信息。
1 | docker run --rm --gpus all ubuntu nvidia-smi |