从挂起状态唤醒后显示分辨率设置丢失

从挂起状态唤醒后显示分辨率设置丢失

我有一台 AMD Radeon RX 460 显卡(AMD POLARIS11 / DRM 3.23.0 / 4.15.0-72-generic,LLVM 5.0.1),它连接到两台 4k 戴尔显示器,配有最新的 amdgpu 驱动程序。当我将计算机从挂起状态唤醒时,我的显示设置经常会丢失,并且我的一台显示器渲染成一半,如下所示。

在此处输入图片描述

如果我注销并重新登录,80% 的时间这个问题会得到解决,但并非总是如此。

设置如下

在此处输入图片描述

  1. 这可能是什么原因造成的?

  2. 我怎样才能解决这个问题?

答案1

窗口管理器有时会重置我的显示器。为了不必手动重置它们(或重新启动),我创建了一个函数来~/.bashrc帮我完成这个任务:

xreset () {

    # Reset xrandr to normal, first use: xrandr | grep " connected "
    # HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1107mm x 623mm
    # eDP-1-1 connected primary 1920x1080+3840+2160 (normal left inverted right x axis y axis) 382mm x 215mm
    # DP-1-1 connected 3840x2160+1920+0 (normal left inverted right x axis y axis) 1600mm x 900mm
    xrandr --output HDMI-0  --mode 1920x1080 --pos 0x0       --rotate normal \
           --output eDP-1-1 --mode 1920x1080 --pos 3840x2160 --rotate normal \
           --primary \
           --output DP-1-1  --mode 3840x2160 --pos 1920x0    --rotate normal

} # xreset

每当屏幕出现“异常”时,我就会打开终端并输入xreset

您的第一步是创建一个类似的函数。下一步是让它在从恢复中暂停时自动调用。为此,创建一个脚本/lib/systemd/system-sleep并将其标记为可执行。

当然,理想的解决方案是修复窗口管理器(Unity,GDM等),但如果这不可能,可以采取这种临时解决办法。

相关内容