NVIDIA 显卡驱动更新后出现的黑屏或无法开机问题,通常是因为新驱动与内核不兼容、安装残留或 X Server 配置冲突导致的。针对 Ubuntu (22.04/24.04) 系统的修复流程:
第一步:进入恢复模式 (Recovery Mode)
由于无法看到图形界面,我们需要进入终端环境:
-
强制重启机器人或电脑。
-
在 BIOS 之后、系统启动前,长按 Shift 键(或多次敲击 Esc )调出 GRUB 菜单。
-
选择
Advanced options for Ubuntu。 -
选择带有
(recovery mode)后缀的内核版本。 -
在弹出的菜单中,先选择
network(启用网络,以便下载修复包),然后选择root Drop to root shell prompt。 -
按 Enter 进入命令行。
第二步:彻底清理错误的驱动
在 Root 终端中执行以下命令,删除所有 NVIDIA 相关包:
Bash
# 挂载为可读写模式
mount -o remount,rw /
# 卸载所有英伟达驱动
apt-get purge nvidia*
apt-get autoremove
如果你的系统里有残留的配置文件,也要清理掉:
Bash
rm /etc/X11/xorg.conf
rm /etc/modprobe.d/nvidia-graphics-drivers.conf
第三步:重新安装稳定版驱动
不要直接去官网下载 .run 文件(这种方式最容易导致黑屏),建议使用 Ubuntu 的推荐驱动:
-
查询推荐驱动版本:
Bash
ubuntu-drivers devices你会看到类似
nvidia-driver-535 - recommended的输出。 -
安装推荐版本:
Bash
apt-get install nvidia-driver-535 # 将 535 替换为你的推荐版本号 -
安装依赖(重要): 确保内核头文件也一并更新,否则驱动模块无法加载:
Bash
apt-get install linux-headers-$(uname -r)
第四步:检查内核模块冲突 (针对机器人开发环境)
如果你在使用 Horizon X5 或 Jetson 等嵌入式硬件,或者在 PC 上安装了特定的内核,可能会出现 Nouveau 驱动冲突:
-
检查是否禁用了开源驱动 Nouveau:
Bash
lsmod | grep nouveau -
如果有输出,说明它还在运行。创建一个黑名单文件:
Bash
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist-nouveau.conf update-initramfs -u
第五步:重启并验证
执行以下命令回到正常引导:
Bash
reboot
重启进入系统后,打开终端输入:
Bash
nvidia-smi
如果能正确显示显存占用和驱动版本,说明修复成功。NVIDIA 显卡驱动更新后出现的黑屏或无法开机问题,通常是因为新驱动与内核不兼容、安装残留或 X Server 配置冲突导致的。作为机器人工程师,你经常在 Ubuntu 环境下操作,这里提供一套针对 Ubuntu (22.04/24.04) 系统的修复流程:
第一步:进入恢复模式 (Recovery Mode)
由于无法看到图形界面,我们需要进入终端环境:
-
强制重启机器人或电脑。
-
在 BIOS 之后、系统启动前,长按 Shift 键(或多次敲击 Esc )调出 GRUB 菜单。
-
选择
Advanced options for Ubuntu。 -
选择带有
(recovery mode)后缀的内核版本。 -
在弹出的菜单中,先选择
network(启用网络,以便下载修复包),然后选择root Drop to root shell prompt。 -
按 Enter 进入命令行。
第二步:彻底清理错误的驱动
在 Root 终端中执行以下命令,删除所有 NVIDIA 相关包:
Bash
# 挂载为可读写模式
mount -o remount,rw /
# 卸载所有英伟达驱动
apt-get purge nvidia*
apt-get autoremove
如果你的系统里有残留的配置文件,也要清理掉:
Bash
rm /etc/X11/xorg.conf
rm /etc/modprobe.d/nvidia-graphics-drivers.conf
第三步:重新安装稳定版驱动
不要直接去官网下载 .run 文件(这种方式最容易导致黑屏),建议使用 Ubuntu 的推荐驱动:
-
查询推荐驱动版本:
Bash
ubuntu-drivers devices你会看到类似
nvidia-driver-535 - recommended的输出。 -
安装推荐版本:
Bash
apt-get install nvidia-driver-535 # 将 535 替换为你的推荐版本号 -
安装依赖(重要): 确保内核头文件也一并更新,否则驱动模块无法加载:
Bash
apt-get install linux-headers-$(uname -r)
第四步:检查内核模块冲突 (针对机器人开发环境)
如果你在使用 Horizon X5 或 Jetson 等嵌入式硬件,或者在 PC 上安装了特定的内核,可能会出现 Nouveau 驱动冲突:
-
检查是否禁用了开源驱动 Nouveau:
Bash
lsmod | grep nouveau -
如果有输出,说明它还在运行。创建一个黑名单文件:
Bash
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist-nouveau.conf update-initramfs -u
第五步:重启并验证
执行以下命令回到正常引导:
Bash
reboot
重启进入系统后,打开终端输入:
Bash
nvidia-smi
如果能正确显示显存占用和驱动版本,说明修复成功。