![无法从 DPMS 唤醒的奇怪表现(Ubuntu 20.04 LTS 和 amdgpu)](https://linux22.com/image/1180837/%E6%97%A0%E6%B3%95%E4%BB%8E%20DPMS%20%E5%94%A4%E9%86%92%E7%9A%84%E5%A5%87%E6%80%AA%E8%A1%A8%E7%8E%B0%EF%BC%88Ubuntu%2020.04%20LTS%20%E5%92%8C%20amdgpu%EF%BC%89.png)
我遇到了显示器睡眠/唤醒的一个非常奇怪的问题(不是我遇到了一个问题(即系统暂停),这与我在其他地方看到的讨论类似,但我的似乎有点独特。
我正在运行 Ubuntu 20.04 LTS(全新安装),使用带有默认 ampgpu 驱动程序的 AMD Radeon RX 560 显卡。我使用的是相当新的 Acer 显示器。首先,以下是工作原理:
- 运行 Ubuntu 时的一切
- 系统挂起和唤醒
不起作用的是 dpms / 屏幕空白(显示器睡眠)。当发生这种情况时,或者当我使用“xset dpms force off”强制关闭时,我的 GPU 风扇会以慢速旋转,显示器进入睡眠状态。但是,我无法通过按键、鼠标移动或其他任何方式唤醒它!我发现恢复视频的唯一方法是使用重置按钮或电源硬重置系统。
第一个解决方法:xset -dpms
如果我这样做,屏幕将不会休眠,而是使用 Ubuntu 的屏幕消隐功能变暗。
问题是,我对这种解决方法不满意,因为我不想屏幕一直亮着,所以我尝试了一下并找到了另一种奇怪的解决方法。如果我启动 Ubuntu 但保持 dpms 启用,我只需关闭/打开显示器电源即可(后启动)。如果我这样做,显示器将进入睡眠状态(橙色 LED),但 GPU 将保持完全“唤醒”状态,风扇全速运转,我可以通过简单的按键或鼠标移动来唤醒显示器。此解决方法一直有效,直到我重新启动。问题是,每次启动后都记得关闭显示器电源,这很麻烦!
当我关闭/打开显示器时,Ubuntu 或 amdgpu 驱动程序中会发生一些事情,如果我只是在显示器已通电的情况下启动,则不会发生这种情况。循环电源似乎会强制进行 DisplayPort 握手或类似操作,这会改变 GPU/显示器睡眠的行为,从而允许从睡眠状态唤醒。
这是怎么回事?驱动程序在识别显示器时是否会以某种方式改变 GPU 的默认睡眠状态?也许显示器在驱动程序初始初始化期间没有响应,但在启动后响应更快?我只是猜测,我不知道。
我可以通过在每个启动周期中模拟脚本中的显示器重新连接来解决这个问题吗?我可以通过更改 X11、amdgpu 或其他地方的某种设置一劳永逸地解决这个问题吗?
谢谢您的任何想法/意见!