Monitor sleep issue

I keep my pc ON crunching numbers, and just let my screen sleep.
I recently upgraded my monitor, and it won’t properly go to idle.

Here is what happens:

  1. Computer tries to put monitor to sleep
  2. Monitor reports “no signal”
  3. Monitor polls all inputs (*) (**)
  4. Probably some hotplug event?
  5. The computer wakes up, showing either:
    a) the desktop enviroment and apps. In this case it loops back to step 1
    b) a black screen with backlight on. In this case it just stays like this indefinitely

(*) There is no way to disable this functionality.
The monitor has no option to lock the source input.
I’ve turned on/off eco mode and DDC/CI with no luck.

(**) The DDC/CI interface seems to work.
On linux, I can put the monitor to sleep with a command, but I can’t wake it up afterwards.

Some extra info about my pc.
I’m running an rdna2 based gpu on fedora 39

To isolate the issue, here is what I’ve tested the monitor sleep on

  • windows and linux; It only happens on linux.
  • multiple distributions with different kernel versions, and different desktop enviroments (*); No sleep
  • X11; No sleep
  • switching my gpu to an nvidia on gnome wayland; No sleep
  • switching my gpu to an nvidia on KDE wayland; The monitor sleeps properly
  • switching my gpu to an nvidia on X11; The monitor sleeps properly.
  • a linux laptop with an intel iGPU on wayland; The monitor sleeps properly.

(*) gnome, kde, xfce, mate

I have to assume this is amdgpu or gnome wayland related…

I found a similar issue https://gitlab.freedesktop.org/drm/amd/-/issues/662
Which recommends setting amdgpu.dc=0, but for me that causes linux to hang on boot (frozen display and caps lock doesn’t work)

Actually, I think I’m dealing with 2 bugs.
One on amdgpu, and the other on mutter.
Because nvidia works fine on kde X11 & wayland, but not on mutter.

monitor make and model?.

daft i know. but check the power settings in settings, there should be a tab for display.
if everything is set correctly there.
then try activating the screen saver so its running before the screen goes to sleep.
dunno why but enabling the screensaver solves it for some amd card users.

still no luck, then its likely a monitor driver issue. you might get lucky with make and model follwed by linux… but its gonna be hit and miss.
(if the monitor menus have the option select the hdmi as the only input, it should stop it from poling the other inputs when hdmi 1 goes off)

It’s an Asus VY249

Power settings in Gnome:

parameter value
Dim Screen off
Blank screen 1min (to speed up testing)
Automatic power saver off
Automatic suspend off
Automatic Screen Lock off

I’m confused about the screensaver thing you mentioned, I think it’s what I’m already doing?

As I already mentioned, sadly there is no option to lock the input :cry:

I didn’t mention the model initially, because it doesn’t matter.
In fact the sleep doesn’t work with any of my 3 monitors, from 3 different brands. (Except my old one)

Even if it’s a monitor firmware issue, that’s something I can’t change. I was hoping someone would suggest kernel boot parameters that may help? Or some way to silence hotplug events?

TLDR: just a bunch of thoughts. No additional insight.

If its firmware issue, then you might SOL. These bugs can happen, at work we encountered eternal sleep instead in Phillips 272B8QJEB.
Nothing short of hard power cycle ( unplug from power, hold power on until capacitors discharge fully) would make monitor detect signal properly. No firmware update ever materialized, but it wasn’t that common occurrence that it would be needed.

Only way to isolate what causes the issue would be:

  • determine if there is standardized way to handle display sleep on OS level
  • monitor if its emited and by what software component
    • its extremely strange that behavior changes based on display server and compositor combination
  • determine what kind of signal is gpu supposed to emit on sleep mode (DDC/CI?)
  • somehow monitor if gpu does emit this on selected display out (i dont think this is possible without signal analyzer or dummy monitor device)

If all checks out up to this point, monitor is not handling signalization properly. But that should be completely decoupled from whatever software stack is used.
Still, it seems hard to believe that such basic functionality like working display blank and sleep would be missed by gnome et. al.

1 Like

My problem was at login my pc suspended. Check
sudo -u gdm dbus-run-session gsettings list-recursively org.gnome.settings-daemon.plugins.power | grep sleep

And I stopped it with;
sudo -u gdm dbus-run-session gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0

Im an normie so I could be wrong.

I did look for documentation, but all I found in the archwiki and reddit are older posts relying on X11 tech and tools like xset.

From what I can tell DDC/CI isn’t really used by anyone, and doesn’t work on all monitors.

It seems to work on this one, cause I can reliably put the screen to sleep with it:

ddcutil -l VY249 setvcp D6 04

But I can’t wake it up afterwards.

Plugging in my second monitor, and letting both of them sleep doesn’t work as expected.

I was hoping I could manually set ASUS one to sleep, and then let gnome set the second one to sleep.
That doesn’t work, both wake up the moment the second one goes to sleep.

I had the same problem.
Turning off the auto input selection of the monitor in the monitor settings solved my problem.

Yes

seems daft. but try switching to displayport if you have your screens on hdmi, or vice versa.

it’s an HDMI only monitor sadly…
I tried with a displayport to hdmi adapter with no luck

1 Like

Probably best solution is a power strip.
Just turn them all off with the switch.

1 Like