ubuntu20.04安装nvidia驱动真实有用(被折磨了一天一夜的肝文!!!)

[复制链接]
发表于 2026-10-3 20:56:33 | 显示全部楼层 |阅读模式

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

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

×

Ubuntu 20.04 安装 NVIDIA 驱动:gcc 降级与 Secure Boot MOK 全流程

这篇面对的是「之前试过无数方法都不行」的场景——典型症状是 nvidia-smi 一跑就报 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver。这种「装了但驱动没加载」的局面,通常卡在两个点:驱动要求的 gcc 版本和系统自带 gcc 9 不匹配,以及 Secure Boot 开启导致内核模块被拒绝加载。两条都处理掉,重启后基本就通了。

一、安装前后必须先注意的两件事

1. 别乱跑系统升级

sudo apt-get upgrade 可能会导致 Ubuntu 内核被更新,内核一更新,之前装的 nvidia 驱动就作废了。所以装驱动前后这段时间,务必避开这条命令——需要补别的包就只装指定的那个,别做全量升级。

2. nvidia-smi 报错的根因:gcc 版本

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

原因很明确:Ubuntu 20.04(以及部分 18.04)自带的 gcc 版本是 9,而 nvidia 驱动不支持 gcc-9,编译出的内核模块装不上。解决办法是手动装 gcc-7 并把默认版本切过去。

二、安装 gcc-7 并切换默认版本

sudo apt-get install gcc-7 g++-7

装完之后系统里就有两个版本的 gcc 了,需要指定默认用哪个:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1

优先级数字最高的就是系统默认版本,可以用下面这条确认当前优先级:

sudo update-alternatives --display gcc

g++ 同理:

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1

把之前的 nvidia 卸载干净,再重走一遍安装流程即可。

三、安装 NVIDIA 驱动的实际步骤

1. 卸干净旧驱动

sudo apt-get remove nvidia-*

2. 删掉旧内核

sudo apt autoremove

3. 看系统推荐装哪个版本

sudo ubuntu-drivers devices

根据推荐结果选一个,一般选后面带 recommend 字样的那个版本。示例里选的是 525 版:

sudo apt install nvidia-driver-525

4. 装完必须重启

reboot

四、卡在 87% 与蓝屏:Secure Boot 的 MOK 三步

顺利的话装完直接生效;不顺的就到了最关键的一步——安装到 87% 卡住并弹出 configuring secure boot 界面。注意:直接点界面的确定/OK 没用,必须用键盘指令控制。

第一步:设密码

Ubuntu 体系按 Ctrl + PgDn 两个键同时按,会弹出输入密码的界面,让你设置密码(8–16 位),需要设置两次,两次输入相同。设完它会接着把 87% 那步装完。这个密码一定要记着,后面还会用。

第二步:重启遇蓝屏,进 Enroll MOK

装完 reboot,重启会进到一个蓝色界面,别慌。按这个顺序按:

  • 键盘上下键选 Enroll MOK,回车;
  • 再上下键选 continue,回车;
  • 再选 yes,回车;
  • 最后弹出输入密码界面,输入上一步设置的那个密码。

第三步:再重启一次验证

reboot

重启后看驱动是否装好:

nvidia-smi

能打印出显存和驱动版本,整条链路就通了。

五、排查清单

  • 还是报 couldn't communicate:回头确认 update-alternatives --display gcc 里默认是不是 gcc-7;
  • 驱动模块没加载:dmesg | grep -i nvidia 看有没有 signature 相关的拒绝信息,有的话就是 MOK 没 enrollment 成功;
  • 忘记 MOK 密码:只能进 BIOS 关掉 Secure Boot 或者重置 MOK 密钥,比较麻烦,所以当初设的时候记下来;
  • 内核升级后驱动失效:重新 sudo apt install --reinstall nvidia-driver-525 再 enrollment 一轮。

小结

Ubuntu 20.04 装 NVIDIA 驱动,真正决定成败的就两件事:把默认 gcc 切到 7(解决驱动编译),以及走完 Secure Boot 的 MOK enrollment(解决模块加载)。前者在装驱动之前处理,后者卡在 87% 和重启蓝屏那两步,跟着键盘提示走一遍就好。全程别碰 apt-get upgrade,不然内核一换前面全白做。

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

回复

使用道具 举报

登录后关闭弹窗

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