Ubuntu 驱动故障排查步骤
一 快速定位与系统日志
- 明确现象:如黑屏/花屏、设备未识别(USB/网卡/显卡)、性能下降、或日志出现error提示。
- 查看内核与系统日志:
- 内核消息:dmesg | grep -i error
- 系统日志:/var/log/syslog、/var/log/kern.log;图形相关:/var/log/Xorg.0.log
- 检查硬件是否被识别:
- PCI/显卡:lspci | grep -i vga
- USB:lsusb
- 检查驱动模块:
- 已加载模块:lsmod | grep <模块名>
- 模块信息:modinfo <模块名>
- 手动加载/卸载:sudo modprobe <模块名> / sudo modprobe -r <模块名>
- 更新或回滚:
- 更新:sudo apt update && sudo apt upgrade
- 回滚:卸载问题版本后重装旧版;使用 DKMS 管理的驱动可重装对应版本。
二 无法进入图形界面时的恢复与临时启动
- 进入恢复模式:
- 开机出现 GRUB 菜单时按 Esc/Shift,选择 Advanced options for Ubuntu → Ubuntu, with Linux … (recovery mode) → root(Drop to root shell)。
- 将根分区改为可写:mount -o remount,rw /。
- 处理显卡驱动:
- NVIDIA:彻底清理后改用开源驱动启动
- sudo apt purge nvidia-*
- 可选重装基础视频驱动:sudo apt install --reinstall xserver-xorg-video-intel xserver-xorg-video-ati mesa-utils
- 修复依赖并重启:apt update && apt install -f && reboot。
- 临时启动参数进入系统:
- 在 GRUB 选中项按 e,于以 linux 开头的行末尾添加:
- 通用:quiet splash nomodeset
- NVIDIA 专用:quiet splash nouveau.modeset=0
- 按 Ctrl+X/F10 启动。进入系统后按下方“显卡驱动修复”安装合适版本。
- 重置图形配置(可选):在恢复模式 root 中执行 dpkg-reconfigure xserver-xorg 后重启。
三 显卡驱动修复与验证(NVIDIA 与 AMD)
- 识别与状态检查:
- 硬件识别:lspci | grep -i nvidia(NVIDIA)
- NVIDIA 驱动状态:nvidia-smi(若报 “NVIDIA-SMI has failed” 表示驱动未加载)
- 内核日志:dmesg | grep -i nvidia;系统日志:journalctl -xe | grep -i gpu
- NVIDIA 专有驱动(推荐优先用仓库自动匹配):
- 查看与安装推荐驱动:
- ubuntu-drivers devices
- sudo ubuntu-drivers autoinstall
- 手动安装 .run(示例):
- 禁用 Nouveau:
- 新建 /etc/modprobe.d/blacklist-nouveau.conf,写入:
- blacklist nouveau
- options nouveau modeset=0
- 更新 initramfs:sudo update-initramfs -u;重启后确认 lsmod | grep nouveau 无输出。
- 安装依赖:sudo apt-get install build-essential dkms linux-headers-$(uname -r)
- 执行安装:chmod +x NVIDIA-Linux-.run && sudo ./NVIDIA-Linux-.run
- AMD 显卡:
- 开源栈(默认):sudo apt install xserver-xorg-video-amdgpu mesa-vulkan-drivers
- 验证渲染器:glxinfo | grep “OpenGL renderer”(应显示 AMD GPU)
- 验证与常见问题:
- 验证 nvidia-smi 输出正常;若失败,检查 dmesg 中 “Failed to load the NVIDIA kernel module”。
- Secure Boot 可能阻止未签名模块:可在 BIOS 关闭,或使用 sudo mokutil --disable-validation 按提示注册 MOK 后重启。
- 多版本冲突:先 apt purge nvidia-* 清理,再用仓库或 .run 安装单一版本;使用 DKMS 保证内核升级后模块自动重建。
四 其他常见设备与场景
- 声卡无声(ALSA/PulseAudio):
- 基础检查:确认物理连接、系统与应用未静音;在 pavucontrol 的“配置”中禁用冲突设备(如 NVIDIA HDMI 音频),在“输出设备”选择正确的本地声卡/耳机。
- 驱动与服务:
- 重装与重启:sudo apt install --reinstall alsa-base pulseaudio;sudo alsa force-reload;pulseaudio -k && pulseaudio --start
- 安装缺失模块:sudo apt install linux-modules-extra-$(uname -r)
- 调参与测试:
- alsamixer(按 F6 选卡,确保 Master/PCM 未静音)
- 测试音:speaker-test -c 2 -twav
- 日志:dmesg | grep snd、journalctl -u pulseaudio --since today
- 针对 ALC897 等常见板载声卡,可在 /etc/modprobe.d/alsa-base.conf 添加:
- options snd-hda-intel dmic_detect=0
- options snd-hda-intel model=generic
保存后重启或重载 ALSA。
- 容器/虚拟化与多 GPU:
- Docker + NVIDIA:sudo apt install nvidia-container-toolkit,执行 sudo nvidia-ctk runtime configure --runtime=docker,测试 docker run --gpus all nvidia/cuda:11.0-base
- KVM/QEMU 直通:启用 IOMMU(如 intel_iommu=on iommu=pt),将设备绑定 vfio-pci 驱动。
五 硬件与 BIOS 级排查及预防
- 硬件识别与链路质量:
- 详细链路:lspci -vvv -s $(lspci | grep -i vga | cut -d’ ’ -f1),关注 LnkCap/LnkSta(如 Speed 8GT/s, Width x16 为正常;若降为 x4 或 2.5GT/s 可能存在插槽/供电/BIOS 设置问题)。
- BIOS 设置建议:
- 启用 Above 4G Decoding、将 PCIe Slot Configuration/Gen 设为 Gen3/Gen4 以匹配显卡/主板;笔记本检查 Hybrid Graphics/独显直连 模式。
- 电源管理与内核参数:
- 如 PCIe/电源管理 导致掉卡或识别异常,可在 /etc/default/grub 的 GRUB_CMDLINE_LINUX_DEFAULT 中尝试添加 pci=nomsi、pcie_aspm=off,更新 GRUB 后重启(仅在排查时启用,稳定后再移除)。
- 预防性维护:
- 驱动策略:稳定环境优先 ubuntu-drivers autoinstall;开发环境谨慎使用测试版 PPA。
- 变更前备份:sudo timeshift --create --comments “Before driver update”;内核升级后执行 sudo ubuntu-drivers autoinstall 以重建 DKMS 模块。