我有一台带有 Gentoo 和 OpenRC 的戴尔 Inspiron 笔记本电脑。通过 gui 或键盘进入休眠和挂起没有问题。它也可以正常恢复。
我已配置xfce4-power-manager
为通过盖子事件使其进入睡眠和休眠状态。最令人着迷的事情来了:它像正常一样醒来,但它的屏幕是黑色的。它完全是黑色的,醒来时根本没有打开它。
看起来它可以很好地暂停和从键盘睡眠按钮或通过 gui 唤醒,在这种情况下,它可以正确地打开屏幕,但是有盖子 - 由于某种原因它不会打开屏幕。
发生这种情况时,我可以通过 HDMI 连接显示器并从中手动启用笔记本电脑屏幕,就像在这个问题中一样。然而,在我的情况下,这只有在通过盖子触发 syspend/hibernate 时才会发生。
检查日志我发现通过盖子或键盘挂起该系统没有任何区别。从日志的角度来看,在这两种情况下,恢复都发生了相同的情况,系统也可以正常运行,除了带盖的情况下禁用了屏幕。
我尝试过制作ACPI
Video
内置的、Brightness
内置的模块,尝试从内核中完全禁用EFI FB
,但没有任何帮助。还尝试使用亮度键和“监视器选择”Fn键启用屏幕,也没有任何运气。尝试安装vbetool
。这不仅无助于解决这个问题,而且完全打破了暂停和休眠。
鉴于观察结果,看起来某些东西(硬件或软件)应该打开屏幕,但对于盖子事件,它不能正常或及时地工作。
鉴于盖子事件的恢复,是什么负责启用屏幕?这个使能的时间是如何控制的?我是否缺少一些对盖子负责的内核模块?为了视频?用于开屏?
鉴于我以后可以通过 HDMI 手动启用屏幕,我可以将此操作添加到恢复脚本吗?我怎么做?“启用嵌入式屏幕/屏幕:0”命令会是什么样的?
有兴趣的人可以参考更详细的答案
我失败的内核由于某种原因缺少
CONFIG_DRM_FBDEV_EMULATION=y
TL;DR 结束
突然我想起我曾经有过带有 initramfs 的 genkernel 内核,它可能工作得很好。
它使用了 LiveCD 的配置,所以我得到了那个配置并用这个配置编译了内核。你猜怎么着?问题消失了!
所以我有 2 个配置,其中一个有效,另一个无效。首先,我认为这是因为 initramfs,但是在没有 initramfs 的情况下重新编译工作配置真的很快,可以肯定的是,它失败不是因为 initramfs。下一步是区分这两个配置并尝试识别影响我的系统的设置。好吧,说起来容易做起来难:差异给了我巨大的差异来弄清楚。
除了一点一点地将工作配置转变为不工作,寻找所需的设置之外,我别无选择。试了好几次,终于成功了!