AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1535560
Accepted
G.S.
G.S.
Asked: 2024-12-15 12:40:28 +0800 CST2024-12-15 12:40:28 +0800 CST 2024-12-15 12:40:28 +0800 CST

Ubuntu (Studio) 24.10 桌面在尝试从睡眠/挂起状态唤醒时冻结

  • 772

问题

每当我尝试将 PC 从睡眠/挂起模式唤醒时,系统最初似乎会做出响应,但随后屏幕会冻结并且对我所做的任何操作均不响应。此时,唯一的解决方法似乎是按住电源按钮 5 秒钟强制关闭机器,然后重新启动。

不管睡眠是手动触发的还是在长时间不活动后自动触发的,也不管唤醒尝试是通过移动鼠标、敲击键盘还是按下电源按钮进行的​​,都会发生这种情况。有时它会再次显示登录屏幕,但有时(我想如果我已经登录了),它会显示一个除了鼠标光标外完全是黑色的屏幕。无论如何,移动鼠标或在键盘上打字都不会产生任何可见的响应。

系统

我正在运行 Ubuntu Studio 24.10,但如果我没记错的话,当我还使用 24.04.x 时也出现了这个问题。

我的硬件如下:

主板: ASUS Z790 GAMING WIFI7
CPU: Intel Core i9-14900K (x86_64)
GPU: AMD Radeon RX 7900XT
存储: 8 TB SSD
内存: 96 GB NVMe DDR5

我已经尝试过的解决方案(无济于事)

  • Ctrl冻结时,使用+ Alt+ F2–切换到不同的 TTY F6:它根本什么也不做。
    • (顺便说一句,当我没有被冻结时,特别是Ctrl++ ,它Alt不会带我进入一个新的 shell 会话,而是显示一个全黑的屏幕,上面只有一个鼠标光标,F2这与我在唤醒冻结期间有时看到的非常相似,只是我实际上可以移动鼠标,也可以使用Ctrl++返回到主图形会话。)AltF1
  • 在 GRUB 配置中限制 CPU 的最大 C 状态:我尝试在/etc/default/grub.d/中创建一个新文件并添加行GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT intel_idle.max_cstate=1",然后运行sudo update-grub并重新启动。我还尝试将变量名称更改为processor.max_cstate并将值4更改为 。上述步骤的排列似乎最终都没有任何区别。
  • 增加交换空间:/swap.img的大小本来是 8 GB,但我根据我读到的建议将其增加到 10 GB,其中指出交换文件应该是系统总 RAM 的平方根。回想起来,我不确定我最初是否期望这会带来什么不同。
  • 禁用 systemd 会话冻结:根据网上的其他建议,我尝试添加以下环境变量来配置 systemd 256+:
    • 创建/etc/systemd/system/systemd-suspend.service.d/freeze_fix.conf:
      [Service]
      Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"
      
    • 创建/etc/systemd/system/systemd- sleep .service.d/作为指向/etc/systemd/system/systemd- suspend .service.d的符号链接。
    • 创建/etc/systemd/system/systemd-homed.service.d/freeze_fix.conf:
      [Service]
      Environment="SYSTEMD_HOME_LOCK_FREEZE_SESSION=false"
      

(过去我看到在网上发布类似问题的人经常被告知检查/var/log/syslog中的系统日志和/或(或更具体地说, )的输出。这篇文章的初始版本有来自暂停过程的那些日志的结果粘贴在下面,但我后来删除了它们,因为它们只包含来自暂停过程本身的消息,而不是来自再次唤醒过程的消息,而唤醒过程才是实际问题发生的时候。)journalctljournalctl -b -1

suspend
  • 1 1 个回答
  • 303 Views

1 个回答

  • Voted
  1. Best Answer
    G.S.
    2024-12-16T13:07:42+08:002024-12-16T13:07:42+08:00

    我终于找到了问题的根源!结果发现,出于某种原因,这个问题只在我启用蓝牙时才会发生。虽然这表明 systemd 和我的网卡在睡眠/挂起例程期间相互交互的方式存在更深层次的问题,但它也揭示了一个非常简单的解决方法:只需确保在触发睡眠/挂起时禁用蓝牙即可。

    最干净的方法是创建一个小型的 systemd 服务,该服务使用 rfkill 来检查蓝牙是否已解除阻止(即打开),如果是,则在睡眠/暂停期间阻止它,然后在系统重新启动时再次解除阻止。

    创建单元文件/etc/systemd/system/bt_workaround.service:

    [Unit]
    Description=Bluetooth Workaround for Suspension
    Before=sleep.target suspend.target hybrid-sleep.target suspend-then-hibernate.target
    StopWhenUnneeded=yes
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecCondition=/usr/bin/env sh -c 'test "$(rfkill -no SOFT list bluetooth)" = unblocked'
    ExecStart=/usr/bin/env rfkill block bluetooth
    ExecStop=/usr/bin/env rfkill unblock bluetooth
    
    [Install]
    RequiredBy=sleep.target suspend.target hybrid-sleep.target suspend-then-hibernate.target
    

    运行sudo systemctl daemon-reload以识别单元文件并sudo systemctl enable bt_workaround使其投入工作。


    (改编自这个 Reddit 评论,并添加了一些我自己的改进。)

    • 1

相关问题

  • 根据 ssh 请求从休眠中唤醒

  • 如何从命令行挂起/休眠?

  • 混合动力在哪里暂停?

  • 如何让我的电脑中的风扇在暂停时关闭?[关闭]

  • 为什么我的 Kubuntu 会话在恢复后需要相当长的时间才能响应?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve