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