张火火和西西弗一起推石头

以执念对抗不完美

fedora下解决nvidia闭源驱动无法进行S3睡眠导致的“睡死”问题

fedora下解决nvidia闭源驱动无法进行S3睡眠导致的“睡死”问题

〇、操作环境及问题描述

1、操作环境:

❯ fastfetch
             .',;::::;,'.                 datong@fedora
         .';:cccccccccccc:;,.             -------------
      .;cccccccccccccccccccccc;.          OS: Fedora Linux 43 (Workstation Edition) x86_64
    .:cccccccccccccccccccccccccc:.        Host: MS-7996 Reborn by dsanke (1.0)
  .;ccccccccccccc;.:dddl:.;ccccccc;.      Kernel: Linux 6.17.12-300.fc43.x86_64
 .:ccccccccccccc;OWMKOOXMWd;ccccccc:.     Uptime: 12 mins
.:ccccccccccccc;KMMc;cc;xMMc;ccccccc:.    Packages: 2762 (rpm), 19 (flatpak), 5 (snap)
,cccccccccccccc;MMM.;cc;;WW:;cccccccc,    Shell: zsh 5.9
:cccccccccccccc;MMM.;cccccccccccccccc:    Display (L20W): 1680x1050 @ 60 Hz in 22" [External]
:ccccccc;oxOOOo;MMM000k.;cccccccccccc:    DE: GNOME 49.2
cccccc;0MMKxdd:;MMMkddc.;cccccccccccc;    WM: Mutter (Wayland)
ccccc;XMO';cccc;MMM.;cccccccccccccccc'    WM Theme: Mojave-Dark-solid-alt
ccccc;MMo;ccccc;MMW.;ccccccccccccccc;     Theme: Adwaita [GTK2/3/4]
ccccc;0MNc.ccc.xMMd;ccccccccccccccc;      Icons: Adwaita [GTK2/3/4]
cccccc;dNMWXXXWM0:;cccccccccccccc:,       Font: Adwaita Sans (11pt) [GTK2/3/4]
cccccccc;.:odl:.;cccccccccccccc:,.        Cursor: Adwaita (24px)
ccccccccccccccccccccccccccccc:'.          Terminal: Ptyxis 49.2
:ccccccccccccccccccccccc:;,..             Terminal Font: MesloLGS Nerd Font (10pt)
 ':cccccccccccccccc::;,.                  CPU: Intel(R) Core(TM) i5-7600K (4) @ 4.20 GHz
                                          GPU: NVIDIA GeForce GTX 960 [Discrete]
                                          Memory: 3.03 GiB / 11.63 GiB (26%)
                                          Swap: 0 B / 8.00 GiB (0%)
                                          Disk (/): 22.45 GiB / 110.20 GiB (20%) - btrfs
                                          Local IP (enp2s0): 192.168.1.108/24
                                          Locale: zh_CN.UTF-8

nvidia 驱动版本:580.119.02.

2、问题描述

本人在安装 nvidia 显卡之前一直使用 S3 睡眠模式,并且之前使用的是 i5-7600k 自带的 hd610 核显进行显示输出。但在使用 gtx960 显卡并按照fedora 官方文档正确安装 nvidia 闭源驱动后,无法进行之前的正常 S3 睡眠。经常睡死,表现为鼠标键盘都显示正常连接,电脑也还在运行状态,但是显卡输出无信号,并且鼠标键盘等外设都无法唤醒电脑进入正常的工作模式,无法将 GPU 恢复至正常状态。

Linux 支持多种睡眠状态(Suspend-to-RAM / S3, Suspend-to-Disk / Hibernate, Suspend-to-Idle / s2idle)。以上原因在于 nvidia 对传统的睡眠模式 S3 的兼容比较差,对现代待机模式(s2idle)支持较好。

二、检查睡眠模式

查看当前系统支持的睡眠模式:

cat /sys/power/mem_sleep

输出:

[s2idle] deep
# OR
s2idle [deep]

[s2idle] 表示当前默认使用的是 s2idle(较安全)。

[deep] 表示当前使用 S3(传统睡眠,NVIDIA 容易出问题)。

其中,s2idle 是 Linux 内核中一种 低功耗空闲状态(suspend-to-idle),也称为 “现代待机”(Modern Standby) 它是 ACPI(高级配置与电源接口)规范中定义的睡眠模式之一,属于 轻量级睡眠,与传统的 S3(suspend-to-RAM)有显著区别,同时也更加耗电。

对比 s2idle S3
系统状态 CPU 停止,但内核调度器仍“逻辑运行” 整个系统挂起,仅 RAM 供电
唤醒方式 任意中断(键盘、鼠标、网络等) 需要特定唤醒事件(如电源键)
功耗 中等(比运行低,比 S3 高) 很低(接近关机)
NVIDIA 驱动支持 较好(闭源驱动可工作) 经常失败(驱动无法恢复 GPU 状态)
Windows 对应 “Modern Standby” “Sleep (S3)”

三、更改睡眠模式为 s2idle

编辑 GRUB 配置,添加内核参数:

sudo nano /etc/default/grub

找到 GRUB_CMDLINE_LINUX 行,在引号内添加:

mem_sleep_default=s2idle

如:

GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core,mem_sleep_default=s2idle"

然后更新 GRUB 配置:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

重启,应用更改:

sudo reboot

四、检验睡眠

使用命令手动进入睡眠:

sudo systemctl suspend

查看是否成功睡眠。


版权声明: 本文为博主「张火火isgudi」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接: https://www.cnblogs.com/zbyisgudi/p/19409359

posted @ 2025-12-27 16:16  张火火isgudi  阅读(1)  评论(0)    收藏  举报