You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04虚拟机GPU直通场景下NVIDIA驱动版本不匹配问题求助

Ubuntu 22.04虚拟机GPU直通场景下NVIDIA驱动版本不匹配问题求助

Hey Luis,碰到这种驱动版本不匹配的问题确实挺闹心的,尤其是在虚拟机GPU直通的场景下,咱们一步步来把这个问题解决掉:

问题背景梳理

你当前的情况是:

  • 虚拟机系统为Ubuntu 22.04,已完成GPU直通,NVIDIA GT 740M显卡被正常识别(内核驱动显示为nvidia)
  • 按照ubuntu-drivers devices推荐安装了nvidia-drivers-390,但运行nvidia-smi时提示NVML驱动/库版本不匹配,内核模块版本是390.157,但客户端API版本却是530.30.02
  • 通过dpkg --get-selections | grep nvidia查看已安装包,没有530版本的驱动,但用sudo find /usr/lib -iname "*nvidia*530*"能找到相关文件夹,删除后又出现了520版本的文件

解决步骤

1. 彻底卸载所有NVIDIA相关残留

先把系统里所有NVIDIA相关的包和残留文件彻底清理干净:

# 卸载所有NVIDIA相关包
sudo apt-get purge nvidia*
# 自动清理无用依赖
sudo apt-get autoremove
# 清理缓存文件
sudo apt-get autoclean

2. 手动删除残留的高版本驱动文件

针对那些dpkg没记录但实际存在的高版本驱动文件,咱们手动清理:

# 删除所有530、520版本的NVIDIA相关文件
sudo find /usr/lib -iname "*nvidia*530*" -delete
sudo find /usr/lib -iname "*nvidia*520*" -delete
# 清理所有非390版本的NVIDIA库文件(稳妥起见可以先不加-delete,先查看列表确认)
sudo find /usr/lib -iname "*nvidia*" ! -name "*390*" -type f | sudo xargs rm -f

3. 清理内核模块残留

确保内核里没有残留的高版本NVIDIA模块:

# 删除内核中的NVIDIA驱动模块文件
sudo rm -rf /lib/modules/$(uname -r)/kernel/drivers/video/nvidia*
# 更新内核模块依赖
sudo depmod -a

4. 重新安装适配的390驱动

清理完成后,重新安装官方推荐的390驱动:

# 自动安装推荐的驱动
sudo ubuntu-drivers autoinstall
# 或者手动指定安装390版本(更稳妥)
sudo apt install nvidia-driver-390 nvidia-dkms-390

5. 重启系统并验证

安装完成后重启虚拟机,然后运行以下命令验证:

nvidia-smi

如果一切正常,应该会显示390.157版本的驱动信息,不再出现版本不匹配的提示。

补充说明

出现这种“幽灵”高版本文件的原因,大概率是之前系统里安装过高版本驱动(可能是误操作、系统更新自动拉取的依赖包,或者虚拟机镜像本身带的残留),这些文件不在dpkg的管理范围内,所以需要手动清理。另外,GT740M最高支持的是470版本驱动,如果你后续想尝试更高版本,也可以安装nvidia-drivers-470,步骤和上面一致。

备注:内容来源于stack exchange,提问作者Luis Pereira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:17:46