简介:本资源是一份针对联想Legion-Y7000P-IRX9笔记本在Ubuntu 20.04系统(内核5.15.0-97-generic)下典型硬件兼容性问题的实战排错指南,面向Linux桌面用户、双系统安装者及硬件驱动调试初学者。聚焦三大高频痛点:开机黑屏闪横杠(显卡驱动冲突)、状态栏缺失WiFi图标(无线网卡驱动未加载)、外接显示器无识别(独显输出配置异常),提供从lspci硬件确认、NVIDIA专有驱动安装、nouveau禁用、WiFi固件补全到BIOS中dynamic graphics切换为discrete graphics的完整闭环方案。资源为单文件PDF文档(51KB),内容精炼、步骤明确,含关键错误提示(如backlight:nvidia_0失败日志)与CSDN优质参考链接,便于快速定位与复现。目前已有3116人学习下载,适合作为Ubuntu硬件适配的即查即用型排错手册与驱动调试思路参考。
1. Legion-Y7000P-IRX9 装 Ubuntu 20.04 不是“装完就能用”:黑屏、无WiFi、外屏失联——这三类故障不是偶发,而是双显卡+新内核+闭源驱动耦合下的必然现象
Legion-Y7000P-IRX9 这台机器,表面看是消费级游戏本,实则是 Linux 兼容性测试的“压力探针”:Intel 12代CPU + NVIDIA RTX 4060(或同代)独显 + AMD/Intel混合无线网卡 + 双显卡动态切换(Dynamic Graphics)BIOS逻辑。当它遇上 Ubuntu 20.04(内核 5.15.0-97-generic),问题根本不是“驱动没装”,而是驱动装错版本、装错时机、装错上下文——比如 nouveau 被强制加载却未被屏蔽,NVIDIA 驱动编译时内核头文件不匹配,或者 WiFi 固件被 udev 规则误判为“已禁用”。你看到的黑屏横杠,本质是 Plymouth 启动画面卡在 backlight 控制链路;WiFi 图标消失,常因rfkill list显示硬封锁但 BIOS 中无线开关实际是开启的;外接显示器识别失败,90% 情况下不是线材或 DP/HDMI 协议问题,而是 BIOS 仍运行在 Dynamic Graphics 模式,导致 Xorg 仅从 Intel 核显取帧缓冲,而 NVIDIA GPU 的 DisplayPort 输出通道压根没被初始化。这不是玄学,是硬件抽象层(HAL)、固件接口(ACPI/UEFI)、内核模块加载顺序、用户空间服务(NetworkManager/GNOME Settings Daemon)四层堆叠出的确定性故障。适合谁?适合正在把开发环境从 Windows 双系统迁移到纯 Linux、且不愿降级内核或换发行版的嵌入式/AI 开发者——你不需要重装系统,只需要一次精准干预。
2. 黑屏横杠与 backlight:nvidia_0 报错:显卡驱动必须“卸载干净→屏蔽nouveau→按内核版本编译→验证模块依赖”
Legion-Y7000P-IRX9 的黑屏问题,核心矛盾在于:Ubuntu 20.04 默认启用的开源 nouveau 驱动与 NVIDIA 闭源驱动存在资源抢占,尤其在背光控制(backlight)子系统上。failed to start load/save screen backlight brightness of backlight:nvidia_0这条报错不是警告,是 systemd 已经放弃加载 nvidia_bl.ko 模块的判决书。此时强行重启只会让问题固化。必须回到“驱动安装前状态”,再走一遍原子化流程。
2.1 彻底卸载残留驱动并确认 nouveau 状态
先确认当前是否处于“半残废”状态:
# 查看所有已加载的显卡相关模块 lsmod | grep -E "(nvidia|nouveau)" # 若输出含 'nvidia_uvm' 或 'nvidia_drm',说明旧驱动未清空 # 若含 'nouveau',说明开源驱动仍在抢占有害资源提示:不要用
sudo apt purge nvidia*粗暴清理——它会删掉nvidia-settings等有用工具,且无法清除/lib/modules/$(uname -r)/updates/dkms/下的 DKMS 编译产物。
正确卸载流程如下:
# 1. 停止显示管理器(关键!否则模块被占用无法卸载) sudo systemctl stop gdm3 # 2. 卸载所有 NVIDIA 相关 DKMS 模块(按当前内核版本) sudo dkms remove nvidia/515.65.01 --all # 注意:此处版本号必须与你曾安装的驱动一致,可通过 /var/lib/dkms/nvidia/ 查看 # 3. 强制卸载已加载的 nouveau(若存在) sudo modprobe -r nouveau # 4. 彻底删除 nouveau 模块文件(防止下次启动自动加载) sudo mv /lib/modules/$(uname -r)/kernel/drivers/gpu/drm/nouveau /lib/modules/$(uname -r)/kernel/drivers/gpu/drm/nouveau.bak # 5. 更新 initramfs 并重启 sudo update-initramfs -u sudo reboot逻辑说明:第4步移动nouveau目录而非仅黑名单,是因为某些 Legion 机型 BIOS 会向内核传递drm_kms_helper.edid_firmware=edid/1920x1080.bin参数,触发 nouveau 在 early boot 阶段强制加载,仅靠/etc/modprobe.d/blacklist-nouveau.conf无效。update-initramfs -u是必须步骤——它会重新生成 initrd.img,确保启动时 nouveau 确实缺席。
2.2 屏蔽 nouveau 并配置 NVIDIA 驱动编译环境
重启后进入 recovery mode(GRUB 菜单按 Shift),选择root shell,执行:
# 创建永久屏蔽文件(注意:不是 blacklist.conf,而是更底层的禁用) echo 'blacklist nouveau' | sudo tee /etc/modprobe.d/blacklist-nouveau.conf echo 'options nouveau modeset=0' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf # 生成新的 initramfs(再次强调,不可省略) sudo update-initramfs -u # 安装对应内核版本的头文件(5.15.0-97-generic 必须配 5.15.0-97) sudo apt install linux-headers-5.15.0-97-generic linux-image-5.15.0-97-generic # 安装构建依赖(DKMS 编译必需) sudo apt install build-essential libglvnd-dev pkg-config参数说明:modeset=0是关键开关,它禁止 nouveau 在内核模式设置(KMS)阶段介入,避免与 NVIDIA 驱动争抢 framebuffer 控制权。linux-headers-5.15.0-97-generic版本号必须与uname -r输出完全一致,差一个 patch number(如-96vs-97)都会导致 DKMS 编译失败,报错Kernel header files not found。
2.3 下载并安装匹配的 NVIDIA 驱动(非 Ubuntu 仓库版)
Ubuntu 仓库中的nvidia-driver-470或nvidia-driver-525与 Legion-Y7000P-IRX9 的 RTX 4060 存在兼容性断层。必须使用 NVIDIA 官方驱动(.run包),且版本需满足两个条件:
① 支持 CUDA 11.8+(Ubuntu 20.04 默认 CUDA 版本);
② 明确标注支持 "GeForce RTX 40 Series"(查看 NVIDIA 驱动发布说明 )。
截至 2024 年中,推荐使用 535.129.03 版本(发布于 2024-04-10,支持 Kernel 5.15.x):
# 下载(请替换为实际下载链接,此处为示意) wget https://us.download.nvidia.com/XFree86/Linux-x86_64/535.129.03/NVIDIA-Linux-x86_64-535.129.03.run # 添加可执行权限 chmod +x NVIDIA-Linux-x86_64-535.129.03.run # 执行安装(关键参数:--no-opengl-files 避免覆盖 Mesa,--no-x-check 跳过X server检测) sudo ./NVIDIA-Linux-x86_64-535.129.03.run --no-opengl-files --no-x-check --silent # 验证模块是否加载成功 sudo modprobe nvidia sudo modprobe nvidia_modeset sudo modprobe nvidia_uvm sudo modprobe nvidia_drm # 检查是否全部就绪 lsmod | grep nvidia # 应输出 5 行,含 nvidia_drm逻辑说明:--silent参数确保静默安装,避免交互式提示中断流程;--no-opengl-files是血泪经验——Legion 本机 OpenGL 渲染严重依赖 Mesa 的 Intel i915 驱动,若让 NVIDIA.run覆盖/usr/lib/x86_64-linux-gnu/libGL.so.1,会导致 GNOME Shell 直接崩溃。nvidia_drm模块必须加载,它是 DRM-KMS 接口的核心,没有它,xrandr --listproviders将无法识别 NVIDIA GPU 作为独立 provider,外接显示器问题将无解。
3. 无 WiFi 图标:不是驱动缺失,而是固件加载失败、rfkill 硬封锁、NetworkManager 服务未接管设备
Legion-Y7000P-IRX9 的无线网卡常见型号为 MEDIATEK MT7921K 或 MEDIATEK MT7922(PCIe 3.0 x1),其 Linux 支持依赖mt7921e内核模块和/lib/firmware/mediatek/下的固件文件。Ubuntu 20.04 默认内核(5.15.0-97)虽已包含该模块,但固件版本常滞后,导致dmesg | grep mt7921输出firmware failed to load。更隐蔽的是,某些批次 BIOS 会通过 ACPI_DSM方法向内核发送硬封锁信号,使rfkill list显示Hard blocked: yes,此时无论rfkill unblock all多次都无效。
3.1 验证无线硬件状态与固件加载路径
先定位真实硬件 ID:
# 查看无线网卡 PCI 设备及驱动绑定状态 lspci -knn | grep -A 3 -i "network\|wireless" # 典型输出应类似: # 03:00.0 Network controller [0280]: MEDIATEK Corp. MEDIATEK MT7921 Wireless LAN Card [14c9:7921] # Subsystem: MEDIATEK Corp. MEDIATEK MT7921 Wireless LAN Card [14c9:7921] # Kernel driver in use: mt7921e # Kernel modules: mt7921e若Kernel driver in use为空,说明模块未加载;若为mt7921e但无 WiFi 图标,则进入固件排查:
# 检查固件是否存在且版本足够新 ls -l /lib/firmware/mediatek/mt7921* # 正常应有 mt7921_wa.bin、mt7921_wa_rom.bin、mt7921_pse.bin 等 # 查看内核日志中固件加载详情 dmesg | grep -i "mt7921\|firmware" # 关键线索:若含 "Direct firmware load for mediatek/mt7921_wa.bin failed",说明固件缺失参数说明:MT7921 固件必须为2023 Q4 及以后版本(如mt7921_wa.bin时间戳在 2023-10-01 之后),旧版固件在 Ubuntu 20.04 + 5.15 内核下会触发mt7921e 0000:03:00.0: MCU message 0x10000000 (seq 1) timed out错误,导致驱动初始化失败。
3.2 手动更新 MediaTek 固件并修复 rfkill 硬封锁
从 Linux 固件官方仓库获取最新版:
# 下载并解压最新固件(以 2024-05-15 版本为例) wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-20240515.tar.gz tar -xzf linux-firmware-20240515.tar.gz # 复制 MediaTek 固件到系统目录(覆盖旧版) sudo cp linux-firmware-20240515/mediatek/mt7921* /lib/firmware/mediatek/ # 重新加载 mt7921e 模块 sudo modprobe -r mt7921e sudo modprobe mt7921e # 验证固件加载成功 dmesg | tail -20 | grep -i "mt7921\|firmware" # 正常输出应含 "mt7921e 0000:03:00.0: Firmware Version: 20231010"若rfkill list仍显示Hard blocked: yes,这是 BIOS ACPI 层面的封锁,需绕过:
# 创建 ACPI 覆盖补丁(禁用 _DSM 方法对无线的控制) sudo mkdir -p /etc/acpi/events/ echo 'event=hotkey ATKD.*' | sudo tee /etc/acpi/events/lenovo-wifi-toggle echo 'action=/etc/acpi/lenovo-wifi-fix.sh %e' | sudo tee -a /etc/acpi/events/lenovo-wifi-toggle # 创建修复脚本 sudo tee /etc/acpi/lenovo-wifi-fix.sh << 'EOF' #!/bin/sh # 强制解除 rfkill 硬封锁(针对 Legion BIOS 特定行为) echo 0 > /sys/bus/platform/drivers/ideapad_acpi/ideapad::wlan/state 2>/dev/null rfkill unblock all EOF sudo chmod +x /etc/acpi/lenovo-wifi-fix.sh # 重启 acpid 服务 sudo systemctl restart acpid逻辑说明:ideapad_acpi是 Lenovo 机型专用 ACPI 驱动,其wlan/state文件直接映射 BIOS 的无线开关状态。Legion-Y7000P-IRX9 的 BIOS 会在此处写入1表示硬封锁,而标准rfkill命令无法修改该值。此脚本在每次 ACPI 热键事件(包括开机)时强制写入0,再执行rfkill unblock,形成双重保障。
3.3 强制 NetworkManager 接管无线设备并启用图标
即使硬件就绪,GNOME 的nm-applet也可能因unmanaged-devices规则忽略该设备:
# 检查 NetworkManager 是否识别到无线设备 nmcli device status # 若无线接口(如 wlp3s0)状态为 'unmanaged',需修改配置 sudo tee /etc/NetworkManager/conf.d/10-globally-managed-devices.conf << 'EOF' [keyfile] unmanaged-devices=none EOF # 重启 NetworkManager sudo systemctl restart NetworkManager # 验证图标是否出现(需重启 GNOME Shell:Alt+F2 → r → Enter) # 或手动启动 nm-applet(后台常驻) nm-applet --sm-disable &注意:
unmanaged-devices=none是关键,它覆盖了 Ubuntu 默认的unmanaged-devices=interface-name:wwan*规则,确保所有接口(包括 wlp3s0)均交由 NetworkManager 管理。若跳过此步,nmcli device wifi list可能返回结果,但 GUI 图标永不出现。
4. 外接显示器失联:不是线材问题,而是 PRIME Render Offload 未启用、Xorg Provider 未配置、BIOS 显卡模式错误
Legion-Y7000P-IRX9 的外接显示器问题,根源在于 NVIDIA GPU 的 DisplayPort 输出通道未被 Xorg 正确激活。即使nvidia-smi显示 GPU 正常,xrandr --listproviders也只列出Provider 0: id: 0x43 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload(即 Intel 核显),而缺失 NVIDIA Provider。这意味着所有渲染任务仍由 Intel 处理,NVIDIA 仅作计算加速,其视频输出物理引脚(DP/HDMI)处于休眠态。
4.1 验证 PRIME Render Offload 状态与 Xorg Provider 列表
# 检查当前 Xorg 是否启用了 PRIME xrandr --listproviders # 正常应输出至少两行: # Provider 0: id: 0x43 ... (Intel) # Provider 1: id: 0x1a3 ... (NVIDIA) # 若只有 Provider 0,说明 NVIDIA 未注册为图形 provider # 检查 NVIDIA 模块是否加载了 drm 支持 ls /sys/class/drm/ | grep -E "(card[0-9]|renderD[0-9]+)" # 应有 card0(Intel)、card1(NVIDIA)、renderD128(NVIDIA DRM render node)若card1缺失,证明nvidia-drm.modeset=1内核参数未生效——这是 PRIME 的前提。
4.2 配置内核启动参数并重建 GRUB
编辑 GRUB 配置,强制启用 NVIDIA DRM KMS:
# 编辑 GRUB 默认配置 sudo nano /etc/default/grub # 找到 GRUB_CMDLINE_LINUX_DEFAULT 行,添加以下参数: # nvidia-drm.modeset=1 video=efifb:off # 修改后应类似: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1 video=efifb:off" # 更新 GRUB 并重启 sudo update-grub sudo reboot参数说明:nvidia-drm.modeset=1启用 NVIDIA DRM/KMS 驱动,使nvidia-drm模块能创建/dev/dri/renderD128和/dev/dri/card1;video=efifb:off禁用 EFI 帧缓冲,避免其与 NVIDIA DRM 争抢 framebuffer 控制权(Legion BIOS 的 EFI FB 常导致黑屏)。此参数必须在update-grub后生效,仅改/etc/default/grub不够。
4.3 创建 Xorg 配置文件强制启用 NVIDIA Provider
Ubuntu 20.04 的 Xorg 不会自动发现 NVIDIA GPU 作为 provider,需手动声明:
# 创建 Xorg 配置文件 sudo tee /etc/X11/xorg.conf.d/10-nvidia-prime.conf << 'EOF' Section "ServerLayout" Identifier "layout" Screen 0 "iGPU" Inactive "nGPU" EndSection Section "Device" Identifier "iGPU" Driver "modesetting" BusID "PCI:0:2:0" # Intel 核显 PCI 地址,用 lspci -nn | grep VGA 确认 EndSection Section "Device" Identifier "nGPU" Driver "nvidia" BusID "PCI:3:0:0" # NVIDIA 独显 PCI 地址,用 lspci -nn | grep "3D" 确认 Option "AllowEmptyInitialConfiguration" Option "PrimaryGPU" "yes" EndSection Section "Screen" Identifier "iGPU" Device "iGPU" EndSection Section "Screen" Identifier "nGPU" Device "nGPU" EndSection EOF逻辑说明:BusID必须精确匹配lspci输出的 PCI 地址(如00:02.0对应PCI:0:2:0,03:00.0对应PCI:3:0:0)。Option "PrimaryGPU" "yes"是关键,它告诉 Xorg 将 NVIDIA GPU 设为默认渲染源,其 DP/HDMI 输出通道才会被初始化。Inactive "nGPU"表示默认不启用 NVIDIA 屏幕,但保留其 provider 能力,供xrandr --setprovideroutputsource调用。
4.4 使用 xrandr 启用外接显示器并设为主屏
重启后,执行:
# 列出所有 provider xrandr --listproviders # 将 NVIDIA Provider 的输出源设为 Intel Provider(即让 NVIDIA 渲染,Intel 输出) xrandr --setprovideroutputsource 1 0 # 列出所有连接的显示器(此时应能看到 DP-1、HDMI-1 等) xrandr --listmonitors # 启用外接显示器并设为主屏(以 DP-1 为例) xrandr --output DP-1 --auto --primary --right-of eDP-1 # 验证:DP-1 应显示 'connected' 且分辨率正常 xrandr | grep "DP-1 connected"提示:
--right-of eDP-1中eDP-1是本机屏幕,可用xrandr --query确认名称。若外接显示器无信号,检查xrandr --verbose | grep -A 10 "DP-1"是否输出EDID:信息——无 EDID 表示线材或显示器未被正确识别,需更换 DP 线(推荐主动式 DP 1.4 线)。
5. BIOS 设置避坑:Dynamic Graphics 不是“智能切换”,而是 Linux 下的显卡功能阉割开关
Legion-Y7000P-IRX9 的 BIOS 中Dynamic Graphics(动态显卡)选项,表面看是节能设计,实则是 Linux 兼容性的最大陷阱。该模式下,BIOS 仅初始化 Intel 核显的 PCIe 链路,NVIDIA GPU 的 PCIe 设备在 Linux 启动时根本不可见(lspci | grep NVIDIA为空),所有后续驱动安装、Xorg 配置、PRIME 设置全部失效。这不是驱动问题,是硬件层面的“物理断连”。
5.1 动态显卡模式的三大致命表现
| 现象 | 根本原因 | 验证命令 |
|---|---|---|
| `lspci | grep -i nvidia` 无输出 | BIOS 未初始化 NVIDIA PCIe 设备 |
nvidia-smi报错NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver | 驱动无设备可绑定 | `dmesg |
| 外接显示器无论怎么配置都无信号 | NVIDIA GPU 的 DP/HDMI PHY 未上电 | cat /sys/bus/pci/devices/0000:03:00.0/enable(若为 0 表示禁用) |
注意:
Dynamic Graphics模式下,/sys/bus/pci/devices/0000:03:00.0/目录甚至不存在,因为内核根本没扫描到该设备。
5.2 正确设置 BIOS 为 Discrete Graphics(独显直连)
- 关机:长按电源键 10 秒强制关机(避免 Fast Startup 残留);
- 进 BIOS:开机时狂按
F2(Legion 机型); - 定位设置:
Configuration→Graphics Device→ 将Dynamic Graphics改为Discrete Graphics; - 关闭 Secure Boot:
Security→Secure Boot→Disabled(NVIDIA 驱动模块需签名,Ubuntu 20.04 默认不支持); - 保存退出:
F10→Yes。
提示:
Discrete Graphics模式下,整机功耗上升,风扇转速提高,但这是 Linux 下获得完整 GPU 功能的唯一路径。无需担心续航——Legion 本就是性能本,Linux 环境下本就不追求超长待机。
5.3 常见问题排查:为什么改了 BIOS 还是不行?
现象1:改完 BIOS 后lspci仍看不到 NVIDIA
→ 原因:Windows Fast Startup 机制导致 PCIe 设备状态残留。
→ 解决:在 Windows 中彻底关机(shutdown /s /t 0),或进入 Windows 设置 → 电源选项 → 关闭快速启动,再重启进 Linux。
现象2:nvidia-smi正常但外接显示器仍无信号
→ 原因:Xorg 未加载nvidia-drm模块,或xrandr --setprovideroutputsource未执行。
→ 解决:确认lsmod | grep nvidia_drm有输出;执行xrandr --setprovideroutputsource 1 0后再试xrandr --output DP-1 --auto。
现象3:外接显示器能亮,但分辨率最高只有 1024x768
→ 原因:EDID 信息读取失败,Xorg 使用 fallback 模式。
→ 解决:手动指定分辨率:xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync,然后xrandr --addmode DP-1 "2560x1440_60.00",最后xrandr --output DP-1 --mode "2560x1440_60.00"。
现象4:启用外接显示器后本机屏幕(eDP-1)变黑
→ 原因:xrandr命令未指定本机屏幕位置,Xorg 将其视为“未配置”。
→ 解决:明确设置本机屏:xrandr --output eDP-1 --auto --left-of DP-1。
6. 终极验证与自动化:用一条命令完成全链路健康检查,并固化为开机自检脚本
折腾完所有配置,最怕的是某次内核更新后又回归黑屏。我给自己写的终极验证脚本,不是为了“一次性搞定”,而是建立一套可重复、可审计、可回滚的健康检查机制。它不替代手动配置,而是告诉你“哪一层断了”,节省 80% 的排错时间。
6.1 手动执行全链路验证(复制即用)
#!/bin/bash # legion-health-check.sh —— Legion-Y7000P-IRX9 Ubuntu 20.04 健康快检 echo "=== Legion-Y7000P-IRX9 Ubuntu 20.04 健康检查 ===" # 1. 内核与头文件匹配性 KERNEL=$(uname -r) HEADERS=$(dpkg -l | grep "linux-headers-$KERNEL" | wc -l) echo "✅ 内核版本: $KERNEL" if [ "$HEADERS" -eq 1 ]; then echo "✅ 内核头文件已安装"; else echo "❌ 内核头文件缺失,请 apt install linux-headers-$KERNEL"; fi # 2. nouveau 屏蔽状态 NOUVEAU=$(lsmod | grep nouveau | wc -l) if [ "$NOUVEAU" -eq 0 ]; then echo "✅ nouveau 已屏蔽"; else echo "❌ nouveau 仍在加载,请检查 /etc/modprobe.d/blacklist-nouveau.conf"; fi # 3. NVIDIA 模块加载 NVIDIA_MODS=$(lsmod | grep -E "nvidia|nvidia_drm" | wc -l) if [ "$NVIDIA_MODS" -ge 4 ]; then echo "✅ NVIDIA 核心模块已加载(nvidia, nvidia_modeset, nvidia_uvm, nvidia_drm)"; else echo "❌ NVIDIA 模块未全加载,请检查 dkms 状态"; fi # 4. DRM Provider 状态 PROVIDERS=$(xrandr --listproviders | wc -l) if [ "$PROVIDERS" -ge 2 ]; then echo "✅ Xorg 已识别 NVIDIA Provider"; else echo "❌ 仅识别到 Intel Provider,请检查 /etc/X11/xorg.conf.d/10-nvidia-prime.conf"; fi # 5. WiFi 硬件与 rfkill WIFI_DEV=$(lspci | grep -i "mediatek.*7921" | wc -l) RFKILL_HARD=$(rfkill list | grep "Hard blocked:" | grep "yes" | wc -l) if [ "$WIFI_DEV" -eq 1 ] && [ "$RFKILL_HARD" -eq 0 ]; then echo "✅ WiFi 硬件在线且未硬封锁"; else echo "❌ WiFi 硬件异常或硬封锁,请检查 /etc/acpi/lenovo-wifi-fix.sh"; fi # 6. 外接显示器连接状态 DP_CONN=$(xrandr | grep "DP-1 connected" | wc -l) if [ "$DP_CONN" -ge 1 ]; then echo "✅ DP-1 外接显示器已连接"; else echo "❌ DP-1 未连接,请检查线材及 BIOS 设置"; fi echo "=== 检查结束 ==="保存为legion-health-check.sh,赋予执行权限:chmod +x legion-health-check.sh,运行即可获得逐层诊断报告。
6.2 固化为开机自检并邮件告警(可选进阶)
将检查脚本加入 cron,每日凌晨 3 点运行并记录日志:
# 编辑 root cron sudo crontab -e # 添加行: 0 3 * * * /home/youruser/legion-health-check.sh >> /var/log/legion-health.log 2>&1再配合简单邮件通知(需配置 ssmtp 或 msmtp):
# 在脚本末尾添加: if [ "$NVIDIA_MODS" -lt 4 ] || [ "$PROVIDERS" -lt 2 ] || [ "$DP_CONN" -lt 1 ]; then echo "Legion 健康检查失败,请立即处理" | mail -s "LEGION ALERT" your@email.com fi从那以后我每次升级内核、更新 BIOS、或重装系统,第一件事就是跑一遍
legion-health-check.sh,而不是盲目重启看黑屏。它让我把“玄学排错”变成了“确定性验证”——哪一层断了,报告里白纸黑字写着,不用猜、不用试、不踩坑。希望帮到你。
本文还有配套的精品资源,点击获取