Ubuntu server 20.04 安装nvidia驱动和cuda

[复制链接]
发表于 2026-10-4 11:45:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Ubuntu Server 20.04 上装 NVIDIA 驱动和 CUDA,最大的坑不是下载慢,而是顺序:驱动没装好就去装 CUDA、或者驱动装了但 nouveau 没禁掉,各种 nVIDIA-SMI failed。这里按 550 驱动 + CUDA 12.4 的实际流程走一遍,顺带把 ssh 掉线那个经典问题一起解决。

第一章:安装 NVIDIA 驱动

1.1 先看有没有 gcc

gcc -v

没有的话一次性把开发包齐了:

sudo apt-get install build-essential

1.2 禁用 nouveau 开源驱动

编辑 /etc/modprobe.d/blacklist-nouveau.conf,写入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

再单独关一次 KMS:

echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u
sudo reboot

重启后执行 lsmod | grep nouveau,如果没有任何输出,说明禁用成功;还有输出就回退到 1.2 重做。

1.3 装驱动

先看系统推荐哪个版本:

ubuntu-drivers devices

输出里找到 recommend 标注的驱动包。这里因为用的是 Ubuntu Server,最终选了 nvidia-driver-470-server(推荐项里有 nvidia-driver-550-server-open,桌面卡另当别论):

sudo apt install nvidia-driver-550-server-open

1.4 验证驱动

nvidia-smi

能刷出 GPU 监控监控表就是装好了。附上当时的实际输出作为参考:

Thu Apr  4 21:30:29 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.14    Driver Version: 550.54.14    CUDA Version: 12.4            |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                    Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3060        Off | 00000000:01:00.0  On |                  N/A |
|  0%   33C    P8   89W / 170W |     57MiB / 12288MiB |      0%      Default |
+-----------------------------------------------------------------------------------------+
| Processes:                                                                    |
|  GPU   GI   PI  ID   Type   Process name                    GPU Memory |
|=================================================================================|
|    0   N/A  N/A    951  G   /usr/lib/xorg/Xorg                        36MiB |
|    0   N/A  N/A   1186  G   /usr/bin/gnome-shell                      6MiB |
+-----------------------------------------------------------------------------------------+

从这张表里能读到两个信息:驱动版本 550.54.14,以及它配套的 CUDA 版本是 12.4——下面装 toolkit 就按这个版本走。

1.5 nvidia-smi 报 failed 怎么办

如果 nvidia-smi 抛出:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.

先 ll /usr/src/ 看驱动源码包是不是确实装上了;装了的话,多半是还没重启,reboot 一次再试。

第二章:安装 CUDA

到 NVIDIA 官方的 CUDA Toolkit Archive 页面选对应版本,这里用 12.4,采用 runfile 形式:

sudo wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run

关键:runfile 安装时务必跳过驱动

当安装器提示"已经检测到驱动已安装"时,直接选 continue。在选择安装内容的步骤里,一定要把 Driver 前面的 x 取消掉——驱动我们上一章已经装好了,这里再装一遍就是灾难。

装完会看到一段总结,大意是:Driver: Not Selected(跳过了)、Toolkit 装到了 /usr/local/cuda-12.4/,并提示要把 /usr/local/cuda-12.4/bin 加进 PATH、把 /usr/local/cuda-12.4/lib64 加进 LD_LIBRARY_PATH(或者写进 /etc/ld.so.conf 再跑 ldconfig)。最后那句 *** WARNING: Incomplete installation! ... A driver of version at least 550.00 is required for CUDA 12.4 属于正常提示,因为刚才确实没装驱动。

配置环境变量

export PATH=/usr/local/cuda-12.4/binPATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
nvcc -V

能打印出编译器信息就成功了:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Feb_27_16:19:38_PST_2024
Cuda compilation tools, release 12.4, V12.4.99
Build cuda_12.4.r12.4/compiler.33961263_0

nvcc: command not found 怎么办

如果提示 Command 'nvcc' not found, but can be installed with: sudo apt install nvidia-cuda-toolkit,说明环境变量没落盘。按三步走:

  1. 进 CUDA 目录确认 nvcc 在不在:cd /usr/local/cuda/bin,ls 看是否有 nvcc。
  2. 在,就把变量写进用户配置:vim ~/.bashrc,末尾追加:
export PATH=/usr/local/cuda-12.4/binPATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
  1. 更新配置:source ~/.bashrc,再跑 nvcc -V 即可。

顺带解决的 ssh 掉线问题

装完驱动重启后,有些机器会出现"ssh 连一段时间就断"的情况,常见诱因是 nouveau 的 KMS 模式和 Xorg 抢设备。把 nouveau 的 modeset 关掉(1.2 那步)之后,这类掉线基本就消失了。

排错顺序总结

  • lsmod 里还有 nouveau → 没禁干净,回 1.2 重做并 update-initramfs。
  • nvidia-smi failed 但 /usr/src 有驱动 → 重启一次。
  • nvcc not found → 变量没写进 .bashrc,source 一下。
  • CUDA 版本和驱动版本不匹配 → 跟着 nvidia-smi 显示的版本号选 toolkit,别自己拍脑袋。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表