当我的 Dell XPS 15 9570 笔记本电脑打开时,可以正确检测到插入 HDMI 端口的显示器。拔掉显示器的插头也能按预期工作。
但是,当通过短暂打开盖子从挂起状态唤醒时,HDMI 端口不会重新配置。无论暂停时插入的内容在恢复后仍被视为已连接。
这意味着先前插入的显示器的分辨率将被保留,如果显示器需要不同的分辨率,则会导致新显示器上出现“不支持的分辨率”。重新连接新显示器可以解决这种情况下的问题。
我还没有弄清楚具体是如何实现的,但是在暂停时或恢复后将盖子打开似乎会改变这种行为。
如何在恢复时强制再次扫描 HDMI 端口?或以其他方式解决这个恼人的问题。
更多背景信息:
- 双 GPU,使用集成 Intel UHD 630 (i915)
- 禁用独立 nvidia GPU,未加载专有驱动程序
- Debian 10(破坏者)
- Linux 4.19.0-2:
nouveau.runpm=0 acpi_rev_override=1 acpi_osi=Linux nouveau.modeset=0 scsi_mod.use_blk_mq=1 mem_sleep_default=deep
- 韦兰 1.16、侏儒 3.30
- /sys/power/mem_sleep:
s2idle [deep]
更新
对于较新的 BIOS 和内核,这种情况不断发生:
- Debian 11(靶心)
- Linux 5.2.0-3
- Wayland 客户端 1.17、Gnome 3.30
- 最新的戴尔 XPS BIOS:1.13.0
答案1
看起来像是一些硬件/ACPI/电源恢复问题。
Linux 在电源暂停方面一直存在一些问题。我的工作笔记本电脑上也有类似的问题(唤醒后 HDMI 和内部显示屏均保持空白)。
我通过在电源暂停之前手动禁用外部显示器来解决这个问题。您可以编写脚本:这两个软件systemd
都acpid
允许您安装挂起和恢复操作的挂钩。
我要做的是:
/var/run
挂起时:将外部显示器的当前模式备份到( )中某处的状态文件中xrandr |grep <the external display>|sed -e <magic here>
可能就足够了恢复时:恢复之前的模式。
主要困难是设置 X 授权以便能够从非 X(又名 systemd 或 acpid 脚本)上下文修改当前显示。
你也可以使用我写的那个小脚本单击 2 次即可手动设置屏幕。
答案2
我有两步解决方案。
步骤1:
使用aptitude install arandr
这是用 python 编写的 xrandr 的前端。使用 GUI 选择适当的配置。
使用文件->保存保存此配置。
它会将其保存为 bash 脚本。为此绑定一些组合键。或手动运行。
第2步:
- 安装acpid
systemctl enable acpid.service
启动时启用 acpidsystemctl start acpid.service
现在启动acpid- 用于
acpi_listen
监听acpi事件
在 /etc/acpi/handler.sh 中添加脚本
或者
在 /etc/acpi/events 下添加脚本
从这里根据盖子打开和盖子关闭事件调用您的脚本。
需要解决这个问题是因为这些事件没有按照 debian 中应有的方式处理。
与此并行,您可以为此在 debian 中记录一个错误。
希望这能暂时解决您的问题。
我正在使用此解决方法来处理未正确处理的坞站连接和断开连接。