温馨提示×

ubuntu驱动故障排查步骤

小樊
31
2025-12-12 05:52:58
栏目: 智能运维

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 UbuntuUbuntu, 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 pulseaudiosudo alsa force-reloadpulseaudio -k && pulseaudio --start
      • 安装缺失模块:sudo apt install linux-modules-extra-$(uname -r)
    • 调参与测试:
      • alsamixer(按 F6 选卡,确保 Master/PCM 未静音)
      • 测试音:speaker-test -c 2 -twav
      • 日志:dmesg | grep sndjournalctl -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 为正常;若降为 x42.5GT/s 可能存在插槽/供电/BIOS 设置问题)。
  • BIOS 设置建议:
    • 启用 Above 4G Decoding、将 PCIe Slot Configuration/Gen 设为 Gen3/Gen4 以匹配显卡/主板;笔记本检查 Hybrid Graphics/独显直连 模式。
  • 电源管理与内核参数:
    • PCIe/电源管理 导致掉卡或识别异常,可在 /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT 中尝试添加 pci=nomsipcie_aspm=off,更新 GRUB 后重启(仅在排查时启用,稳定后再移除)。
  • 预防性维护:
    • 驱动策略:稳定环境优先 ubuntu-drivers autoinstall;开发环境谨慎使用测试版 PPA。
    • 变更前备份:sudo timeshift --create --comments “Before driver update”;内核升级后执行 sudo ubuntu-drivers autoinstall 以重建 DKMS 模块。

0