Corrupted text at boot when graphics mode begin - how to fix?

I’ve had a problem with corrupted (garbled) text in boot for quite some time. Booting starts fine, text is readable but once graphic mode kicks in all texts become corrupted. It’s like every x th vertical line is missing. It’s possible to guess quite much of the text but not so easy. Almost impossible to fix something from shell if GUI doesn’t work for some reason.

These are kernel boot parameters:

terminal=console nomode set iommu=1 amd_iommu=on rd.driver.pre=vfio-pci amdgpu.dc=0

Console resolution has been set to 3840x2160.

I’ve tried changing above parameters and resolution many many times without any impact. Yes, resolution changes but text remains corrupted.

CPU (if that matters): Ryzen 1900X
GFX: Radeon 540/540X/550/550X / RX 540X/550/550X (according to HW info)

Would be really nice to get this problem solved.

Hi
You have nomodeset active? (Or it’s a typo in your output I see nomode set), anyway that should not be needed.

For vfio-pci passthrough why that entry, I’ve normally set via modprobe.d files, I’m on intel and use intel_iommu=on

For console fonts I use vconsole.font=ter-v32b video=1920x1080@60 to set font and resolution as well as the same font in /etc/vconsole.conf.

How did you go about deciding any of those might be needed? What results when you use none of them? Have you tried plymouth=0 or just removing plymouth altogether? Does the problem persist indefinitely in any graphics mode, or is this only until you get logged in from a GUI login manager? Are there *.conf files anywhere in /etc/X11/ directed to graphics or screen configuration? What time did this start, after an upgrade? After switching kernel, e.g. from 5.16.x to 5.17.x? Have you tried increasing BIOS configuration for minimum RAM allocated to graphics?

Console resolution has been set to 3840x2160.
Has been set how exactly?

nomode set was actually not typo. Didn’t see the error before you lifted it up :slight_smile: It used to be correctly written but didn’t have any impact. Removed now.

Don’t recall anymore from where I got these settings but these were recommendations for virtual machines and Ryzen.

vconsole.conf has following (never touched this file):


KEYMAP=fi-kotoistus 
FONT=eurlatgr.psfu 
FONT_MAP= 
FONT_UNIMAP=

I’ll add those settings to see if they make any difference.

Don’t recall anymore exactly the purpose of those settings but I found these settings prior reinstalling OS. These are for virtual machine usage and Ryzen (or AMD in general, don’t recall). Haven’t rechecked if these are needed. amdgpu setting was to get rid off power saving issues with AMD card and HDMI. Haven’t checked if the root cause have been solved.

Haven’t tried plymouth=0 but will test it. Plymouth is installed.

The problem only starts after (my assumption, not 100% sure) graphics mode is set during boot. Prior this I guess some kind of VESA mode is used. Problem lasts until GUI login screen appear. Then there’s no issue anymore. KDE consoles or virtual screen don’t have any issue.

/etc/X11/xorg.conf.install can be found. Content:

Section "Device" 
  Identifier "vboxvideo" 
  Driver  "vboxvideo" 
EndSection 

Section "Screen" 
  Identifier "vboxvideo" 
  Device "vboxvideo" 
EndSection 


Section "Device" 
  Identifier "vmware" 
  Driver  "vmware" 
EndSection 

Section "Screen" 
  Identifier "vmware" 
  Device "vmware" 
EndSection 


Section "Device" 
  Identifier "modesetting" 
  Driver  "modesetting" 
  Option "PreferCloneMode" "true" 
EndSection 
Section "Screen" 
  Identifier "modesetting" 
  Device "modesetting" 
EndSection 


Section "Device" 
  Identifier "fbdev" 
  Driver  "fbdev" 
EndSection 
Section "Screen" 
  Identifier "fbdev" 
  Device "fbdev" 
EndSection 


Section "Device" 
  Identifier "vesa" 
  Driver  "vesa" 
EndSection 

Section "Screen" 
  Identifier "vesa" 
  Device "vesa" 
EndSection 


Section "ServerLayout" 
  Identifier "Layout" 
  Screen  "vboxvideo" 
  Screen  "vmware" 
  Screen  "modesetting" 
  Screen  "fbdev" 
  Screen  "vesa" 
EndSection

I’m not using vmware nor VirtualPC. Just KVM (qemu).

Don’t recall exactly when this started but way more than one year ago. Probably between 2 to 3 years. I’ve tried to solve this few times without success. Normally I don’t shutdown computer as it is both server and workstation. Although past year or two the stability of KDE and Firefox has gone downwards leading to fully frozen GUI which freezes pretty much everything. Not even SSH server can respond. Keyboard doesn’t respond in any way except via magic keys to shutdown the computer. But this is different matter.

Have not increased RAM for graphics. Not sure if that setting in BIOS even exist because Ryzen doesn’t have integrated GPU. I’m using quite basic AMD GFX card.

What you’ve described here is the period when Plymouth is active.

Hi
Just to clarify Tumbleweed is the host operating system, or your running Tumbleweed in a virtual machine?

If the host is running Tumbleweed, then there is no need for an /etc/X11/xorg.conf file… there is no need for vfio-pci either (unless your planning on GPU or other hardware passthrough eg SATA).

Yes, the HDMI bug is still present in my last check (I run an RX550 GPU as primary graphics) Ref: https://gitlab.freedesktop.org/drm/amd/-/issues/662

My /etc/vconsole.conf file contains;


KEYMAP=us
FONT=ter-v32b
FONT_MAP=
FONT_UNIMAP=

Font is the same as the kernel option…

Thumbleweed is host. I also have one virtual machine with Tumbleweed and that works fine in boot as well (no corrupted text there).

Took out vfio-pci → no impact. (Now I remembered that I was planning to utilize better video performance for virtual machine via passthrough but that didn’t turn out to be success…)
Added earlier plymouth=0 to kernel boot parameters → no impact.
Changed vconsole.conf FONT to ter-v32b → no impact.

OK. I added plymouth=0 to kernel parameters but that did not help. Incorrect place?

Plymouth is not familiar to me. Apparently provides high res graphs for boot but something seems to be broken with it. Should I just uninstall it? zypper rm plymouth. Or is it otherwise valuable package?

That’s the option on the Linuxrc web page. Added at the Grub menu via E key? Only to /etc/default/grub? Or added to /etc/default/grub and grub.cfg regenerated? Other possibilities, besides uninstalling, are noplymouth and plymouth.enable=0

Plymouth is not familiar to me. Apparently provides high res graphs for boot but something seems to be broken with it. Should I just uninstall it? zypper rm plymouth. Or is it otherwise valuable package?
Value is in the eye of the beholder. From where I sit, it’s primarily bling/bloat, imitating Windows startup. It’s installed on none of my hundreds of Gnu/Linux installations that don’t depend on it.

Something seemingly unrelated: In BIOS, disable the graphical curtain that hides POST messages.

Interesting. Added plymouth.enable=0 to /etc/default/grub using Yast thus gets to grub.cfg automatically. No difference. Still corrupted text.

When plymouth is disabled how the boot screen should look like? Similar to what it is prior plymouth started or something else?

Retestet nomodeset and it fixed the problem at booting phase. But max and only resolution is then 1280x1024 at GUI login and Plasma X11. So, useless option.

Apparently this is related to plymouth and KMS thus AMD driver. Need to find a way to force different resolution for plymouth.

Read about plymouth more from http://web.dodds.net/~vorlon/wiki/blog/Plymouth_is_not_a_bootsplash/. Doesn’t seem to be that useless piece of code. I have 23 drives in my system thus mounting, fsck etc. are important.

Tested with GRUB_GFXPAYLOAD_LINUX=1920x1080 and first phase of the boot was with low resolution and then changed to 3840x2160 resolution with corrupted text. So, no solution from there either.

Problem seems to be related to UHD resolution more and more. nomodeset disables this and then it works. AMD driver issue perhaps?

It’s BIOS dependent. It might start out much bigger. It might not change at all. You could use video= to apply an optional video mode that would make it bigger than it would be otherwise, a mode that would inherit by all your framebuffer vttys.

There are multiple amdgpu drivers. This primer covers the basics.

Firmware maybe? Is either kernel-firmware-amdgpu or kernel-firmware installed? If only the latter, you may be devoting a lot of disk space and bandwidth to updating drivers you have no use for. 15.3 divided kernel-firmware into a big bunch of smaller packages, without eliminating the parent. A default upgrade keeps the parent, installs none of the children. It could be that kernel-firmware-amdgpu is the only one you need.

I did a pristine install. No tinkering, no problems with AMD 5600X and Radeon 550x: https://forums.opensuse.org/showthread.php/569975-How-to-swap-graphics-card-on-Leap-15-3?p=3127664#post3127664

I need good video performance for h265 decoding thus not just basic driver.

Firmware is: kernel-firmware-amdgpu (kernel-firmware is not installed)

Interesting. I don’t see much differences to yours when running inxi -zaSMCG

**server:~ #** inxi -zaSMCG 
**System:**
  **Kernel:** 5.18.1-1-default **arch:** x86_64 **bits:** 64 **compiler:** gcc **v:** 12.1.0 
    **parameters:** BOOT_IMAGE=/boot/vmlinuz-5.18.1-1-default 
    root=UUID=d51abab2-5ba4-43da-9968-7ab5e8a641c6 terminal=console nomode 
    set iommu=1 amd_iommu=on amdgpu.dc=0 
  **Console:** pty pts/7 **wm:** kwin_x11 **DM:****1:** GDM **v:** 42.0 **2:** SDDM **note:** stopped 
    **Distro:** openSUSE Tumbleweed 20220609 
**Machine:**
  **Type:** Desktop **Mobo:** ASRock **model:** X399 Taichi **serial:** <filter> 
    **UEFI-[Legacy]:** American Megatrends **v:** P3.50 **date:** 12/24/2018 
**CPU:**
  **Info:****model:** AMD Ryzen Threadripper 1900X **socket:** SP3r2 **bits:** 64 
    **type:** MT MCP MCM **arch:** Zen **family:** 0x17 (23) **model-id:** 1 **stepping:** 1 
    **microcode:** 0x8001137 
  **Topology:****cpus:** 1x **cores:** 8 **tpc:** 2 **threads:** 16 **dies:** 2 **smt:** enabled 
    **cache:****L1:** 768 KiB **desc:** d-8x32 KiB; i-8x64 KiB **L2:** 4 MiB **desc:** 8x512 KiB 
    **L3:** 16 MiB **desc:** 2x8 MiB 
  **Speed (MHz):****avg:** 2200 **min/max:** 2200/3800 **boost:** enabled 
    **base/boost:** 3800/4200 **scaling:****driver:** acpi-cpufreq **governor:** schedutil 
    **volts:** 1.3 V **ext-clock:** 100 MHz **cores:****1:** 2200 **2:** 2200 **3:** 2200 **4:** 2200 
    **5:** 2200 **6:** 2200 **7:** 2200 **8:** 2200 **9:** 2200 **10:** 2200 **11:** 2200 **12:** 2200 
    **13:** 2200 **14:** 2200 **15:** 2200 **16:** 2200 **bogomips:** 121356 
  **Flags:** avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm 
  **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 
  **Type:** spectre_v1 
    **mitigation:** usercopy/swapgs barriers and __user pointer sanitization 
  **Type:** spectre_v2 
    **mitigation:** Retpolines, IBPB: conditional, STIBP: disabled, RSB filling 
  **Type:** srbds **status:** Not affected 
  **Type:** tsx_async_abort **status:** Not affected 
**Graphics:**
  **Device-1:** AMD Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] 
    **vendor:** Micro-Star MSI **driver:** amdgpu **v:** kernel **pcie:****gen:** 3 **speed:** 8 GT/s 
    **lanes:** 8 **ports:****active:** HDMI-A-1 **empty:** DVI-D-1 **bus-ID:** 41:00.0 
    **chip-ID:** 1002:699f **class-ID:** 0300 
  **Display:** x11 **server:** X.Org **v:** 21.1.3 **with:** Xwayland **v:** 22.1.2 
    **compositor:** kwin_x11 **driver:****X:****loaded:** amdgpu 
    **unloaded:** fbdev,modesetting,vesa **gpu:** amdgpu **display-ID:** :0 **screens:** 1 
  **Screen-1:** 0 **s-res:** 3840x2160 **s-dpi:** 96 **s-size:** 1016x571mm (40.00x22.48") 
    **s-diag:** 1165mm (45.88") 
  **Monitor-1:** HDMI-A-1 **mapped:** HDMI-A-0 **model:** AOC U3277WB **serial:** <filter> 
    **built:** 2018 **res:** 3840x2160 **hz:** 30 **dpi:** 140 **gamma:** 1.2 
    **size:** 698x393mm (27.48x15.47") **diag:** 801mm (31.5") **ratio:** 16:9 **modes:**
    **max:** 3840x2160 **min:** 720x400 
  **OpenGL:****renderer:** AMD Radeon RX 550 / 550 Series (polaris12 LLVM 14.0.4 
    DRM 3.46 5.18.1-1-default) 
    **v:** 4.6 Mesa 22.1.1 **direct render:** Yes

Do you have UHD or 4k display?

](https://forums.opensuse.org/showthread.php/569975-How-to-swap-graphics-card-on-Leap-15-3?p=3127664#post3127664)

Hi
Changing to ter type fonts you need to ensure terminus-bitmap-fonts is installed, if playing with vconsole.conf also ensure you run mkinitrd.

My setup is similar except no 4K, just three 1080p screens and a T400 for encoding/decoding (and running the open source Nvidia driver).


inxi -zaSMCG
 
System:
  Kernel: 5.18.2-1-default arch: x86_64 bits: 64 compiler: gcc v: 12.1.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.18.2-1-default
    root=UUID=2bf05dec-eccc-4077-a934-7e8106064659 splash=silent
    intel_iommu=on amdgpu.dc=0 amdgpu.ppfeaturemask=0xffffffff
    vconsole.font=ter-v32b video=1920x1080@60 loglevel=3 quiet
    mitigations=auto
  Desktop: GNOME v: 42.2 tk: GTK v: 3.24.34 wm: gnome-shell dm: GDM v: 42.0
    Distro: openSUSE Tumbleweed 20220609
Machine:
  Type: Desktop System: Hewlett-Packard product: HP Z440 Workstation v: N/A
    serial: <filter> Chassis: type: 6 serial: <filter>
  Mobo: Hewlett-Packard model: 212B v: 1.01 serial: N/A
    UEFI: Hewlett-Packard v: M60 v02.58 date: 12/07/2021
CPU:
  Info: model: Intel Xeon E5-2690 v3 socket: LGA2011-3 bits: 64 type: MT MCP
    arch: Haswell family: 6 model-id: 0x3F (63) stepping: 2 microcode: 0x49
  Topology: cpus: 1x cores: 12 tpc: 2 threads: 24 smt: enabled cache:
    L1: 768 KiB desc: d-12x32 KiB; i-12x32 KiB L2: 3 MiB desc: 12x256 KiB
    L3: 30 MiB desc: 1x30 MiB
  Speed (MHz): avg: 1366 high: 1890 min/max: 1200/3500
    base/boost: 2600/4000 scaling: driver: intel_cpufreq governor: schedutil
    volts: 1.6 V ext-clock: 100 MHz cores: 1: 1732 2: 1836 3: 1198 4: 1198
    5: 1198 6: 1197 7: 1198 8: 1197 9: 1198 10: 1197 11: 1851 12: 1197
    13: 1766 14: 1611 15: 1198 16: 1198 17: 1746 18: 1198 19: 1198 20: 1198
    21: 1890 22: 1198 23: 1198 24: 1198 bogomips: 124504
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf
    mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: conditional, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X]
    driver: amdgpu v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 8 ports:
    active: HDMI-A-2,HDMI-A-3,HDMI-A-4 off: HDMI-A-1 empty: none
    bus-ID: 02:00.0 chip-ID: 1002:699f class-ID: 0300
  Device-2: NVIDIA TU117GLM [Quadro T400 Mobile] driver: nvidia
    v: 515.48.07 alternate: nouveau,nvidia_drm non-free: 515.xx+
    status: current (as of 2022-05) arch: Turing pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 3 speed: 8 GT/s ports: active: none
    empty: DP-1,DP-2,DP-3 bus-ID: 03:00.0 chip-ID: 10de:1fb2 class-ID: 0300
  Display: server: X.Org v: 21.1.3 with: Xwayland v: 22.1.2
    compositor: gnome-shell driver: X: loaded: amdgpu,nvidia
    unloaded: fbdev,modesetting,vesa alternate: nouveau,nv gpu: amdgpu
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3840x2160 s-dpi: 96 s-size: 1016x572mm (40.00x22.52")
    s-diag: 1166mm (45.9")
  Monitor-1: HDMI-A-1 mapped: HDMI-A-0 note: disabled model-id: AGO 0x0001
    serial: <filter> built: 2013 res: N/A dpi: 87 gamma: 0.97
    size: 256x192mm (10.08x7.56") diag: 378mm (14.9") ratio: 4:3, 5:4 modes:
    max: 1024x768 min: 720x480
  Monitor-2: HDMI-A-2 mapped: HDMI-A-1 pos: top-center model: Sceptre E24
    serial: <filter> built: 2019 res: 1920x1080 dpi: 94 gamma: 1.2
    size: 521x293mm (20.51x11.54") diag: 604mm (23.8") ratio: 16:9 modes:
    max: 1920x1080 min: 720x400
  Monitor-3: HDMI-A-3 mapped: HDMI-A-2 pos: primary,top-left
    model: Sceptre E24 serial: <filter> built: 2018 res: 1920x1080 dpi: 94
    gamma: 1.2 size: 521x293mm (20.51x11.54") diag: 604mm (23.8") ratio: 16:9
    modes: max: 1920x1080 min: 720x400
  Monitor-4: HDMI-A-4 mapped: HDMI-A-3 pos: primary,bottom-r
    model: Sceptre E24 serial: <filter> built: 2020 res: 1920x1080 hz: 60
    dpi: 94 gamma: 1.2 size: 521x293mm (20.51x11.54") diag: 604mm (23.8")
    ratio: 16:9 modes: max: 1920x1080 min: 720x400
  OpenGL: renderer: AMD Radeon RX 550 / 550 Series (polaris12 LLVM 14.0.4
    DRM 3.46 5.18.2-1-default)
    v: 4.6 Mesa 22.1.1 direct render: Yes


switcherooctl -g 1 inxi -zaSMCG
....
....
  OpenGL: renderer: NVIDIA T400/PCIe/SSE2 v: 4.6.0 NVIDIA 515.48.07
    direct render: Yes