Timing issue: Stuck at black screen before login-screen - Restart of SDDM fixes it

Hi all

My system are 65% of the time serving a black screen, after the kernel has been started through GRUB. I’m able to start tty2, and run systemctl restart sddm.service. Hereafter the login-screen shows up in the tty2 session.

But I’m searching for a bit of help, to get this fixed. There’s a few brilliant threads on this forum, too. But sadly I’ve not found the proper commands and insights. Therefore I’m trying with my own thread.


After selecting the kernel in GRUB (normal boot), it’s ending with a black screen, insted of searching the login-screen.

How it’s currently fixed

By opening tty2, I’m able to call system restart sddm.service and the login-screen shows, with no problem.

System information

System:    Host: exetico-workstation Kernel: 5.9.16-1-MANJARO x86_64 bits: 64 Desktop: KDE Plasma 5.21.5 Distro: Manjaro Linux 
Machine:   Type: Desktop Mobo: ASUSTeK model: TUF Z390M-PRO GAMING (WI-FI) v: Rev X.0x serial: <superuser required> 
           UEFI: American Megatrends v: 2820 date: 01/06/2021 
CPU:       Info: 6-Core model: Intel Core i7-8700 bits: 64 type: MT MCP cache: L2: 12 MiB 
           Speed: 4296 MHz min/max: 800/4600 MHz Core speeds (MHz): 1: 4296 2: 4300 3: 4300 4: 4300 5: 4300 6: 4300 7: 4300 
           8: 4300 9: 4300 10: 4300 11: 4301 12: 4298 
Graphics:  Device-1: Intel UHD Graphics 630 driver: vfio-pci v: 0.2 
           Device-2: Advanced Micro Devices [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] driver: amdgpu 
           v: kernel 
           Display: x11 server: X.Org 1.20.11 driver: loaded: amdgpu resolution: 1: 2560x1440~60Hz 2: 2560x1440~60Hz 
           OpenGL: renderer: AMD Radeon RX 5700 XT (NAVI10 DRM 3.39.0 5.9.16-1-MANJARO LLVM 12.0.0) v: 4.6 Mesa 21.1.2 
Audio:     Device-1: Advanced Micro Devices [AMD/ATI] Navi 10 HDMI Audio driver: snd_hda_intel 
           Sound Server-1: ALSA v: k5.9.16-1-MANJARO running: yes 
           Sound Server-2: PipeWire v: 0.3.30 running: yes 
Network:   Device-1: Intel Wireless-AC 9560 [Jefferson Peak] driver: iwlwifi 
           IF: wlo1 state: up mac: -removed- 
           Device-2: Intel Ethernet I219-V driver: e1000e 
           IF: eno2 state: down mac: -removed-
Bluetooth: Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) type: USB driver: btusb 
           Report: rfkill ID: hci0 state: up address: see --recommends 
Drives:    Local Storage: total: 1.84 TiB used: 402.05 GiB (21.3%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 970 PRO 512GB size: 476.94 GiB 
           ID-2: /dev/nvme1n1 vendor: Samsung model: SSD 970 PRO 512GB size: 476.94 GiB 
           ID-3: /dev/sda vendor: Samsung model: SSD 860 EVO 1TB size: 931.51 GiB 
Partition: ID-1: / size: 468.16 GiB used: 402.04 GiB (85.9%) fs: ext4 dev: /dev/nvme1n1p2 
           ID-2: /boot/efi size: 299.4 MiB used: 284 KiB (0.1%) fs: vfat dev: /dev/nvme1n1p1 
Swap:      Alert: No swap data was found. 
Sensors:   System Temperatures: cpu: 33.5 C mobo: 26.0 C gpu: amdgpu temp: 49.0 C 
           Fan Speeds (RPM): fan-1: 0 fan-2: 2136 fan-3: 983 fan-4: 0 fan-5: 0 fan-6: 1016 fan-7: 0 gpu: amdgpu fan: 0 
Info:      Processes: 358 Uptime: 4m Memory: 62.68 GiB used: 23.42 GiB (37.4%) Shell: fish inxi: 3.3.04 

 ██████████████████  ████████     exetico@exetico-workstation
 ██████████████████  ████████     OS: Manjaro 21.0.7 Ornara
 ██████████████████  ████████     Kernel: x86_64 Linux 5.9.16-1-MANJARO
 ██████████████████  ████████     Uptime: 11m
 ████████            ████████     Packages: 1702
 ████████  ████████  ████████     Shell: fish 3.2.2
 ████████  ████████  ████████     Resolution: 5120x1440
 ████████  ████████  ████████     DE: KDE 5.82.0 / Plasma 5.21.5
 ████████  ████████  ████████     WM: KWin
 ████████  ████████  ████████     GTK Theme: Breath [GTK2/3]
 ████████  ████████  ████████     Icon Theme: Deepin Dark
 ████████  ████████  ████████     Disk: 404G / 502G (85%)
 ████████  ████████  ████████     CPU: Intel Core i7-8700 @ 12x 4.6GHz [48.0°C]
 ████████  ████████  ████████     GPU: AMD Radeon RX 5700 XT (NAVI10, DRM 3.39.0, 5.9.16-1-MANJARO, LLVM 12.0.0)
                                  RAM: 26717MiB / 64185MiB

So, what can I do?

I would like to know that I can do, to fix this. The most wierd thing is, that’s it’s working on/off, I’d guess every 1/3 time or so (by booting normally, and login-screen shows on tty1, with no issues). By booting it multiple times, I’ve fixed it in the part - but normally it takes many reboots. Therefore I’m now going to tty2 instantly.

UPDATED: Solution

More details here:

1 Like

Hello @exetico :slight_smile:

Your problem behaves like the “timing issue”. Meaning: SSDM loads fast, but does not wait for the gpu to become ready. Therefore it crashes because no GPU is ready. Seems to be in the last weeks a common problem here with hybrid gpus.

However, to solve this, this could be done:

The module for intel is i915 and for amd amdgpu.

Hope it helps :wink:


Hi @megavolt

Thanks for the answer! :slight_smile:

It’s a bit fun, cause I’ve thought about a timing issue myself. However, it just didn’t work out in my head, maybe use to the lack of knowledge related to boot-up procedure and service start-ups with GUI-based elements.

I must say, I forgot to share the most important information… With that said, everything works great - except for the wierd maybe timing-related issue.

More details

My system are a bit of a mixed bag, cause my Intel Onboard-graphics are isolated to a VFIO-group, and used in my VM with Windows (as a pass-through video controller).

Information about my VM-setup, which was not that relevant ...

Therefore my GRUB_CMDLINE_LINUX looks like this: iommu=pt intel_iommu=on i915.enable_gvt=1 i915.enable_fbc=0

I’m loading the following modules:

# etc/modules-load.d/kvm-gvt-g.conf

And in my blacklist, the following are listed:

# /etc/modprobe.d/blacklist.conf
blacklist i915
blacklist snd_ha_intel
blacklist snd_codec_hdmi

Here’s the output of lspci -nv with relevant device-information:

00:02.0 0380: 8086:3e92
        DeviceName: Onboard - Video
        Subsystem: 1043:8694
        Flags: fast devsel, IRQ 255, IOMMU group 2
        Memory at a1000000 (64-bit, non-prefetchable) [disabled] [size=16M]
        Memory at 80000000 (64-bit, prefetchable) [disabled] [size=256M]
        I/O ports at 4000 [disabled] [size=64]
        Capabilities: <access denied>
        Kernel driver in use: vfio-pci
        Kernel modules: i915
03:00.0 0300: 1002:731f (rev c1) (prog-if 00 [VGA controller])
        Subsystem: 1da2:e409
        Flags: bus master, fast devsel, latency 0, IRQ 159, IOMMU group 1
        Memory at 90000000 (64-bit, prefetchable) [size=256M]
        Memory at a0000000 (64-bit, prefetchable) [size=2M]
        I/O ports at 3000 [size=256]
        Memory at a2000000 (32-bit, non-prefetchable) [size=512K]
        Expansion ROM at a2080000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

In a modprobe file, you can see that my Intel-based VGA-controller are dedicated for VFIO:

# /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:3e92 disable_vga=1

In dmesg, everything looks fine.

# sudo dmesg|grep -e DMAR -e IOMMU                                                                                                                                                        2021-06-20T09:15:04 UTC
[    0.007748] ACPI: DMAR 0x000000007A2762D0 0000A8 (v01 INTEL  EDK2     00000002      01000013)
[    0.087345] DMAR: IOMMU enabled
[    0.209085] DMAR: Host address width 39
[    0.209085] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.209089] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[    0.209090] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.209093] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.209093] DMAR: RMRR base: 0x0000007904f000 end: 0x0000007906efff
[    0.209094] DMAR: RMRR base: 0x0000007b800000 end: 0x0000007fffffff
[    0.209096] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.209096] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.209097] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.210558] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.625822] DMAR: No ATSR found
[    0.625863] DMAR: dmar0: Using Queued invalidation
[    0.625866] DMAR: dmar1: Using Queued invalidation
[    0.626319] DMAR: Intel(R) Virtualization Technology for Directed I/O
[    0.646173] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[    0.646173] AMD-Vi: AMD IOMMUv2 functionality not available on this system


sudo dmesg | grep -i vfio                                                                                                                                                               2021-06-20T09:15:40 UTC
[    1.209056] VFIO - User Level meta-driver version: 0.3
[    1.225894] vfio_pci: add [8086:3e92[ffffffff:ffffffff]] class 0x000000/00000000

MODULES in /etc/mkinitcpio.conf

Note: I know it’s a bit wierd jump from the talk about VM and VFIO to the possible solution, but up to this point, i didn’t notice that the amdgpu was not mentioned in the MODULES="".

I’ll edit /etc/mkinitcpio.conf and add amdgpu before my vfio_related things.


MODULES="vfio_pci vfio vfio_iommu_type1 vfio_virqfd kvmgt vfio-mdev"


MODULES="amdgpu vfio_pci vfio vfio_iommu_type1 vfio_virqfd kvmgt vfio-mdev"

I’ll now make the changes, build with image with sudo mkinitcpio -P and reboot with systemctl reboot (Commands shared here, if someone finds this post by Googling, or so)

Update: It looks like loading the drivers earlier did the trick! :partying_face: Thanks for pointing me in the right direction! I must have missed that topic, for some reason (tried both searching and more, but I used too technical tearms for the actual problem, i guess…)

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.