![尝试较旧的内核](https://linux22.com/image/1073015/%E5%B0%9D%E8%AF%95%E8%BE%83%E6%97%A7%E7%9A%84%E5%86%85%E6%A0%B8.png)
所以……ubuntu suspend 在我的 lenovo z13 上不起作用。最初我双启动 Windows 和 ubuntu,suspend 在 Windows 上工作正常,但在 ubuntu 上却不行。然后我尝试清除整个磁盘,只留下 efi 系统和引导加载程序,并在完全干净的状态下安装了一个全新的 ubuntu。问题仍然存在于全新的 22.04.1 上。
有趣的旁注;如果“尝试 ubuntu”,则在启动到 ubuntu usb 时,systemctl suspend 可以正常工作。
确切的问题似乎与挂起功能有关。当在启动后第一次运行 systemctl suspend 时,它工作正常。但此后任何时候,它都会继续关闭屏幕,而电脑仍在运行(仍然能够使用 Fn 按钮(背光等)),耗电且风扇剧烈运转。此外,我无法通过任何方式让它从此状态“唤醒”。解决此状态的唯一方法是强制手动重启。
TL;DR 暂停功能在 ubuntu usb 和任何 windows 安装上运行良好,但在本地 ubuntu 上则不行(至少在第一次暂停后的任何连续暂停)。
答案1
Ubuntu 22.04 最近发布了一个新的版本,从 22.04.1 升级到了 22.04.2。新版本将内核从 5.15 更新到了 5.19。Ubuntu 内核 5.19.0.32 似乎存在一些影响特定硬件的错误。
尝试较旧的内核
- ESC打开笔记本电脑时按下该键即可获取 grub 菜单。
- 前往Ubuntu 的高级选项菜单并使用旧内核启动。
看看暂停是否有效。转到下一步。
更改 grub 默认值
要更改 Ubuntu 默认启动的内核,您需要获取所有菜单项的索引号。使用++Ctrl打开终端并输入:AltT
$ sudo grub-mkconfig | grep -iE "menuentry 'Ubuntu, with Linux" | awk '{print i++ " : "$1, $2, $3, $4, $5, $6, $7}'
您将获得一堆以类似以下内容结尾的输出:
0 : menuentry 'Ubuntu, with Linux 5.19.0-32-generic' --class ubuntu
1 : menuentry 'Ubuntu, with Linux 5.19.0-32-generic (recovery mode)'
2 : menuentry 'Ubuntu, with Linux 5.15.0-43-generic' --class ubuntu
3 : menuentry 'Ubuntu, with Linux 5.15.0-43-generic (recovery mode)'
笔记:您的可能看起来不同。以上输出只是示例。使用此示例,您可能希望使用菜单项编号进行引导2
。
接下来,您需要编辑文件/etc/default/grub
。我使用文本文件编辑器nano
,但您也可以使用其他编辑器。在终端中输入以下命令以在 nano 中打开文件:
sudo nano /etc/default/grub
寻找以下行:
GRUB_DEFAULT=0
编辑该行使其看起来像:
GRUB_DEFAULT="1>2"
此设置意味着,如果条目 1 是子菜单,则打开它并从中选择条目 2。在此示例中,菜单条目 1(注意,条目从 0 开始)是Ubuntu 的高级选项. 结果子菜单中的第 2 个条目是:
menuentry 'Ubuntu, with Linux 5.15.0-43-generic' --class ubuntu
按Ctrl+退出 nano X,并在出现提示时保存文件。
现在要使此更改生效,您必须使用以下命令:
sudo update-grub
正常重启笔记本电脑(不进入 grub 菜单)。从现在起,计算机应该使用较旧的内核启动。
更多关于如何使用旧版本的内核启动?
重要的:最终会发布更新的内核,您的计算机将获得更新。此时,系统可能会提示您删除旧内核。在“自动删除”内核 5.15 之前,请检查新内核是否适合您。
下次更新内核后,您需要再次编辑 grub 默认值。如果新内核有效,您需要撤消更改,以便计算机使用最新内核启动。
如果当时最新的内核不起作用,您仍然需要再次执行此过程,因为菜单项的相对毒害会发生变化。
笔记:您可能需要提交错误报告。请参阅我如何报告错误?这样内核就被修复了。
希望这可以帮助
答案2
使用自定义 OEM 内核
这个问题描述了问题并提出了一个在带有 amd ryzen7 cpu 的 Thinkpad Z13 上对我有用的解决方案:
sudo apt install linux-oem-22.04c
内核中似乎有一个错误,已在较新的版本中修复。
编辑:请注意,这会将您锁定到该特定版本的内核,直到专门安装新内核或您卸载该内核。