Monitor not working if plugged in or turned on after boot

Hi, I'm quite new to Garuda and quite a newbie when it comes to Linux in general, so apologies if this is not something I should be asking about but I've looked around the forum and couldn't find an answer.

Basically, my monitor, connected through an HDMI cable to my Radeon RX570, doesn't work if I turn it on or plug it in after allowing the system to boot. If I turn the monitor on first and then turn on the computer, it works fine, unless it gets unplugged, turned off or hibernated, then the only option is to restart the computer because the screen only flickers for a split second every few seconds or stays completely black. Same happens if I let it boot first and then turn on the monitor, just flickering, and the only option is to restart the PC, after which everything works fine. I did not have any problems like this one with WIN10 nor with Mint.

I'd be grateful for any pointers or solutions, as well as directions as to what information I should provide to make the problem easier to locate. I'll attach the output of the commands that I already know:


Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 disconnected (normal left inverted right x axis y axis)
HDMI-A-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080     60.00*+  50.00    59.94  
1680x1050     59.88  
1280x1024     75.02    60.02  
1440x900      60.00  
1280x800      60.00  
1152x864      75.00  
1280x720      60.00    50.00    59.94  
1024x768      75.03    60.00  
800x600       75.00    60.32  
720x576       50.00  
720x480       60.00    59.94  
640x480       75.00    60.00    59.94  
720x400       70.08  
DVI-D-0 disconnected (normal left inverted right x axis y axis)

mhwd --pci -li

> Installed PCI configs:
NAME               VERSION          FREEDRIVER           TYPE
video-linux            2021.02.19                true            PCI


System:    Kernel: 5.12.12-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0 
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=a248b6b1-78b9-46c5-bfba-bb2423fe0eae 
rw [email protected] quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0 
systemd.unified_cgroup_hierarchy=1 resume=UUID=0f2de29b-6cb9-43af-a4f5-460df7d37d5b loglevel=3 
Desktop: KDE Plasma 5.22.1 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM 
Distro: Garuda Linux base: Arch Linux 
Machine:   Type: Desktop Mobo: Gigabyte model: B450M S2H v: x.x serial: <filter> UEFI: American Megatrends 
v: F50 date: 11/27/2019
CPU:       Info: 6-Core model: AMD Ryzen 5 1600 bits: 64 type: MT MCP arch: Zen+ family: 17 (23)
model-id: 8 stepping: 2 microcode: 800820D cache: L2: 3 MiB
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 76643
Speed: 3193 MHz min/max: N/A Core speeds (MHz): 1: 3193 2: 3193 3: 3193 4: 3193 5: 2755 6: 3193
7: 3193 8: 3193 9: 3193 10: 3193 11: 3193 12: 3193
Vulnerabilities: Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2
mitigation: Full AMD retpoline, IBPB: conditional, STIBP: disabled, RSB filling
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:  Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] vendor: Gigabyte
driver: amdgpu v: kernel bus-ID: 09:00.0 chip-ID: 1002:67df class-ID: 0300
Display: x11 server: X.Org 1.20.11 compositor: kwin_x11 driver: loaded: amdgpu,ati
unloaded: modesetting alternate: fbdev,vesa display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") s-diag: 582mm (22.9")
Monitor-1: HDMI-A-0 res: 1920x1080 hz: 60 dpi: 102 size: 477x268mm (18.8x10.6")
diag: 547mm (21.5")
OpenGL: renderer: Radeon RX 570 Series (POLARIS10 DRM 3.40.0 5.12.12-zen1-1-zen LLVM 12.0.0)
v: 4.6 Mesa 21.1.3 direct render: Yes

Do you mean you have a second monitor that works when booting with your problematic monitor?
If it's only one monitor, then it's a HW setting issue on the monitor settings. This way, you are trying to run a headless system, which is different from normal.

This is something I can't answer or evaluate. It's the well known issue of HW vendors not providing enough technical info for Linux.

After a headless failed boot, reboot and get error messages from previous boot.

journalctl -b -1 -p3 --no-pager --no-hostname
journalctl -b -1 -u sddm --no-pager --no-hostname
grep -E "(EE)|(WW)|failed|Time" /var/log/Xorg.0.log.old

If you have more than one monitor, provide xrandr output with all monitors plugged in.


Thank you for your answer.
I only have one monitor and with Garuda it acts as if it cannot be hot plugged, meaning if I don't turn the monitor on (with its physical power button) before the PC, I either get "no signal" or the image shows for a split second once every few seconds. If I turn the monitor off while the system is running (there are no problems with booting itself whatsoever) and turn it back on - "no signal".

I don't necessarily understand what you mean by me trying to run a "headless system", can the distro be in some way automatically set like that? Because I've never consciously tried to run it or set it up to run without a monitor.

In the physical monitor's settings, there isn't much besides brightness, contrast, energy saving and the lot, I've tried factory settings and it didn't change anything. In the system settings, I don't see anything helpful in the "display and monitor" tab.

Here's what I got after the monitor failed to start and I had to restart (with the button on the PC case, not from the system, because at that point I can't see anything):

Journal file /var/log/journal/91ccc202a3e343e99511269f5f28ce4c/[email protected]~ is truncated, ignoring file.
-- Journal begins at Tue 2021-06-22 18:14:48 CEST, ends at Mon 2021-08-02 15:57:06 CEST. --
sie 02 15:54:46 systemd-modules-load[363]: Failed to find module 'ashmem_linux'
sie 02 15:54:46 systemd-modules-load[363]: Failed to find module 'binder_linux'
sie 02 15:54:46 kernel: kvm: disabled by bios
sie 02 15:54:46 kernel: kvm: disabled by bios
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:54:47 libvirtd[634]: ebtables not available, firewall backend will not function: No such file or directory
sie 02 15:54:47 libvirtd[634]: internal error: Failed to initialize a valid firewall backend
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:54:47 kernel: kvm: disabled by bios
sie 02 15:55:14 pulseaudio[3527]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
sie 02 15:55:31 plasmashell[6543]: aurorae: Couldn't find QML Decoration  ""
Journal file /var/log/journal/91ccc202a3e343e99511269f5f28ce4c/[email protected]~ is truncated, ignoring file.
-- Journal begins at Tue 2021-06-22 18:14:48 CEST, ends at Mon 2021-08-02 15:57:06 CEST. --
-- No entries --
[     6.284] Current Operating System: Linux pepperfarm 5.12.12-zen1-1-zen #1 ZEN SMP PREEMPT Fri, 18 Jun 202121:59:24 +0000 x86_64
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[     6.284] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Aug  2 15:54:47 2021
[     6.288] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/misc".
[     6.289] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/TTF".
[     6.290] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/OTF".
[     6.290] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[     6.290] (WW) The directory "/usr/share/fonts/100dpi" does not exist.
[     6.290] (WW) The directory "/usr/share/fonts/75dpi" does not exist.
[     6.310] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[     6.340] (WW) Warning, couldn't open module fbdev
[     6.340] (EE) Failed to load module "fbdev" (module does not exist, 0)
[     6.340] (WW) Warning, couldn't open module vesa
[     6.340] (EE) Failed to load module "vesa" (module does not exist, 0)
[     6.342] (WW) Falling back to old probe method for modesetting
[     7.208] (II) Initializing extension MIT-SCREEN-SAVER
[     7.218] (EE) AMDGPU(0): Failed to make import prime FD as pixmap: 22

Energy saving seems is using a sleep mode that sleeps too deep for the wake-up signals to wake it up.
In a rather awkward case, it could be a cable that has no capability to pass the wake-up signal, but I just made that up (when you have no info, you can imagine things... :slightly_smiling_face: ).

Next time, post your input terminal commands together with each output. It makes it easier for the readers to understand. :man_shrugging:

I said "like" and used italics. Look in DDG search about it, so you know what I'm talking about.
And no, the distro does not do that automatically, but when the system cannot discover a monitor, then it thinks there is no monitor attached, so there is the headless system :wink:

1 Like

Unfortunately, I don't think that's it because the energy saving has been off forever, I never used it.

Sure, in this case it's only the output of the exact commands you asked for.

So how can I approach the problem of the system not discovering/detecting the monitor if its hot plugged or turned off and back on while the system is running? It's definitely not the case of the monitor itself or the HDMI cable because it works perfectly under Windows and Mint.

I have four questions:

Has it ever worked correctly under Garuda?

Have you tried switching the input source on the monitor itself? (e.g. the HDMI connection drops, so the monitor automatically switches to VGA?)

Have you fully updated your system (and rebooted)?

Have you tried some alternative kernels?


No. The problem occurs ever since I installed the system about a month ago, although if I turn the monitor on before the PC itself, it works perfectly fine until the monitor is turned off/disconnected/hibernated.

I ran pacman -Syu after installation, I'll do it again now. Other than that, no, I haven't got to trying alternative kernels. What version would you suggest if I were to try?

Yes, it does not react to the input button at all once it's in the "no signal" state and at that point I can't bring the monitor's own settings menu up either.

This sounds like a monitor deficiency to me. Check with the retailer or vendor for info and/or support.

This is 1st priority when having HW problems. New updates often fix bugs.

At least linux and linux-lts.

Edit: It could be as simple as setting some DPMS configuration.
Read more.

Also try to switch to TTY and back, when monitor cannot wake up.
Ctrl + Alt+F4 to a TTY
Ctrl + Alt+F1 back to system. The proper Number may vary.

1 Like

What about your bios sleep states?


I can switch to TTY no problem, If I switch back I get "no signal".

No such setting in my UEFI.

Full update through pacman didn't help. I'll try to read up on the kernels.


xset q:

Keyboard Control:
auto repeat:  on    key click percent:  0    LED mask:  00000002
XKB indicators:
00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
03: Compose:     off    04: Kana:        off    05: Sleep:       off
06: Suspend:     off    07: Mute:        off    08: Misc:        off
09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
12: Group 2:     off    13: Mouse Keys:  off
auto repeat delay:  600    repeat rate:  25
auto repeating keys:  00ffffffdffffbbf
bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
acceleration:  2/1    threshold:  4
Screen Saver:
prefer blanking:  yes    allow exposures:  yes
timeout:  0    cycle:  600
default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffffff
Font Path:
DPMS (Energy Star):
Standby: 600    Suspend: 600    Off: 600
DPMS is Disabled

Edit2: Upon second try, I managed to go back to the system from TTY after turning of fthe monitor and turning it back on and everything works fine. Any idea as to why this works but I have to do it this way because otherwise I get "no signal"? And I don't suppose this is a solution applicable when the monitor doesn't turn on during boot-up?

It may become, if you get the relevant part of journal log.

As already answered, HW differences and vendors' ignoring Linux OS for technical info. DPMS and the way systemd handles PM functions is also part of this.

IIRC Archwiki references a lot of such cases, as reported from users. Users is the great strength Linux has to fix all the previously noted.:man_shrugging:t3:


Just wanted to chime in because I finally found someone who has this problem as well! I have it on both my desktop machines, on an RX 580 and a Vega 64. Both by XFX. @ongo, is your GPU also an XFX? If so, I'd guess their GPU BIOS is somehow broken.

It happens to me on three different monitors by two manufacturers (Dell and AOC). But it's not on Garuda, it's on openSUSE Tumbleweed, currently on kernel 5.14.14.

Never managed to get anything useful out of the logs except for Failed to switch from vt07 to vt02: Input/output error in Xorg.0.log when I try to blindly switch VTs after boot-up.