ubuntu驱动如何更新到最新版
小樊
42
2026-01-08 14:49:18
Ubuntu 驱动更新到最新版的实用步骤
一、先确认硬件与系统版本
查看系统版本与内核:
查看显卡型号与当前驱动:
lspci | grep -i nvidia 或 lspci | grep -i amd
nvidia-smi(NVIDIA 显卡)
备份当前驱动信息(便于回滚):
sudo mkdir -p /opt/nvidia_backup
CURRENT_DRIVER=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n 1) && echo “$CURRENT_DRIVER” | sudo tee /opt/nvidia_backup/driver_version.txt
sudo cp -r /usr/lib/nvidia /opt/nvidia_backup/ 2>/dev/null || true
sudo cp -r /lib/modules/$(uname -r)/kernel/drivers/video/nvidia* /opt/nvidia_backup/ 2>/dev/null || true
sudo cp /etc/X11/xorg.conf /opt/nvidia_backup/ 2>/dev/null || true
说明:nvidia-smi 右上角的 “CUDA Version” 表示驱动可支持的最高 CUDA 运行时版本 ,不是已安装的 CUDA Toolkit 版本。
二、三种常用更新方式(按推荐顺序)
方式A|官方仓库安装(推荐,便于后续升级与回滚)
清理旧驱动与冲突组件:
sudo apt remove --purge -y nvidia-driver-* nvidia-kernel-* nvidia-dkms-* || true
sudo apt autoremove -y && sudo apt autoclean
禁用 nouveau(如检测到):
echo -e “blacklist nouveau\noptions nouveau modeset=0” | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
添加 NVIDIA 官方仓库(示例为 Ubuntu 20.04,其他版本替换 URL 中的代号):
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia.gpg
echo “deb [signed-by=/usr/share/keyrings/nvidia.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /” | sudo tee /etc/apt/sources.list.d/nvidia.list
sudo apt update
安装目标版本(如 555,或执行 ubuntu-drivers list 查看可用版本):
sudo apt install -y nvidia-driver-555
重启:sudo reboot
方式B|ubuntu-drivers 自动安装(最省心)
sudo apt install -y ubuntu-drivers-common
ubuntu-drivers list(查看推荐版本)
sudo ubuntu-drivers autoinstall(自动安装推荐的最新稳定版)
sudo reboot
方式C|NVIDIA 官方 .run 文件(仅在仓库不可用或需特定版本时)
禁用图形界面并进入 TTY:
sudo systemctl set-default multi-user.target && sudo reboot
关闭显示管理器(视桌面而定):
sudo service lightdm stop 或 sudo systemctl stop gdm3
赋予执行权限并安装:
chmod +x NVIDIA-Linux-x86_64-<版本>.run
sudo ./NVIDIA-Linux-x86_64-<版本>.run
安装时建议选择:注册 DKMS、重建 initramfs;如提示缺少 Vulkan ICD Loader,安装 libvulkan1 等包
恢复图形界面并重启:
sudo systemctl set-default graphical.target && sudo reboot
验证:nvidia-smi 应显示新版本;如未出现,重启后再检查。
三、更新后验证与常见问题处理
验证要点
nvidia-smi 查看驱动版本与 “CUDA Version”(最高支持的 CUDA 运行时)
如为深度学习环境,进入容器检查:
docker run --rm --gpus all nvidia/cuda:12.1-base nvidia-smi
或在容器内 python -c “import torch; print(torch.version.cuda, torch.cuda.is_available())”
常见问题
驱动与 CUDA 不匹配:容器/框架要求的 CUDA 高于驱动支持上限会报错(如 “no kernel image is available” 或 “CUDA error: no kernel image is available for execution on the device”)。升级驱动到满足最低版本要求即可。参考对照(节选):
CUDA 12.1 → 最低驱动 535.43.02
CUDA 12.2 → 最低驱动 535.104.05
CUDA 12.3 → 最低驱动 545.23.06
注:nvidia-smi 的 “CUDA Version” 是驱动支持上限,不是已装 Toolkit 版本。
升级后 Docker 无法使用 GPU:
安装/配置 NVIDIA Container Toolkit 并重启 Docker:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed ‘s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g’ | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
循环登录/黑屏/llvmpipe:多因 nouveau 未禁用或 .run 安装参数不当。确保已禁用 nouveau;安装 .run 时一般不建议加 --no-opengl-files(笔记本可保留默认以使用集显输出),台式机可按需选择。
四、回滚与注意事项
快速回滚(方式A/B)
查看已安装版本:apt policy nvidia-driver-*
降级到上一个版本:sudo apt install nvidia-driver-<旧版本号>
或彻底回滚:sudo apt remove --purge nvidia-* && sudo apt autoremove,然后按备份恢复(/opt/nvidia_backup)或重装推荐驱动
注意事项
升级前备份重要数据与当前驱动配置(见第一部分)
升级内核后需确保 DKMS 能重建 nvidia 内核模块,必要时重装驱动
生产环境建议优先使用仓库版驱动,便于安全更新与回滚;仅在确有需求时再用 .run 方式