View previous topic :: View next topic |
Author |
Message |
chubbypiper n00b

Joined: 27 Jun 2018 Posts: 40
|
Posted: Wed Mar 19, 2025 4:42 am Post subject: Plymouth only shows momentarily on new AMD video card |
|
|
I just swapped out an older nvidia based video card for an AMD one. I added amdgpu and radeonsi to VIDEO_CARDS and removed nvidia from it. Did an emerge with --deep @changed-use. emerge --deselect nvidia-drivers and emerge --depclean. Rebuilt initramfs with dracut. Everything came up fine. In general things are working well, amdgpu_top shows normal operations, and I was able to run a game in Steam (Factorio) without issue.
The main thing I am noticing is that Plymouth doesn't seem to be working well anymore. When I had my nvidia card, the Plymouth splash screen would come up as soon as the initramfs was loaded and it remained up until sddm prompted for login. But now, I see the majority of the services starting up and whatnot, and then for about 2 seconds before dumping back to the text showing services starting until sddm comes up. I'm assuming this is a matter of amdgpu not loading soon enough and not remaining loaded, but I'm struggling to find any information on how to resolve this. Any insight would be greatly appreciated.
Code: |
~ # uname -a
Linux myhost.mydomain 6.12.16-gentoo-dist #1 SMP PREEMPT_DYNAMIC Mon Mar 17 15:11:32 CDT 2025 x86_64 AMD Ryzen 7 2700X Eight-Core Processor AuthenticAMD GNU/Linux
~ #
|
Code: |
~ # cat /proc/cmdline
BOOT_IMAGE=/kernel-6.12.16-gentoo-dist root=UUID=644dde77-6105-4ee5-baae-9d93020aba4e ro quiet splash
~ #
|
Code: |
~ # emerge --info
Portage 3.0.67 (python 3.12.9-final-0, default/linux/amd64/23.0/desktop/plasma/systemd, gcc-14, glibc-2.40-r8, 6.12.16-gentoo-dist x86_64)
=================================================================
System uname: Linux-6.12.16-gentoo-dist-x86_64-AMD_Ryzen_7_2700X_Eight-Core_Processor-with-glibc2.40
KiB Mem: 65755672 total, 53545416 free
KiB Swap: 62914556 total, 62914556 free
Timestamp of repository gentoo: Tue, 18 Mar 2025 16:45:00 +0000
Head commit of repository gentoo: c066806fb25c67e8f8bed9ef46df76d8922184f0
Timestamp of repository pg_overlay: Tue, 18 Mar 2025 04:48:50 +0000
Head commit of repository pg_overlay: 1b104a1542369db35ce338c610709183ca6ae95a
Timestamp of repository ppfeufer-gentoo-overlay: Mon, 17 Mar 2025 22:33:15 +0000
Head commit of repository ppfeufer-gentoo-overlay: e0bd86b916097aca8de6f2c260f20c138bb359a5
Timestamp of repository steam-overlay: Sun, 16 Mar 2025 10:03:22 +0000
Head commit of repository steam-overlay: e904e35b612bbb32d7f2790a56fe60dec785483b
sh bash 5.2_p37
ld GNU ld (Gentoo 2.44 p1) 2.44.0
app-misc/pax-utils: 1.3.8::gentoo
app-shells/bash: 5.2_p37::gentoo
dev-build/autoconf: 2.72-r1::gentoo
dev-build/automake: 1.17-r1::gentoo
dev-build/cmake: 3.31.5::gentoo
dev-build/libtool: 2.5.4::gentoo
dev-build/make: 4.4.1-r100::gentoo
dev-build/meson: 1.7.0::gentoo
dev-java/java-config: 2.3.4::gentoo
dev-lang/perl: 5.40.0-r1::gentoo
dev-lang/python: 3.12.9::gentoo, 3.13.2::gentoo
dev-lang/rust-bin: 1.84.1-r2::gentoo
llvm-core/clang: 19.1.7::gentoo
llvm-core/llvm: 19.1.7::gentoo
sys-apps/baselayout: 2.17::gentoo
sys-apps/sandbox: 2.39::gentoo
sys-apps/systemd: 256.10::gentoo
sys-devel/binutils: 2.44::gentoo
sys-devel/binutils-config: 5.5.2::gentoo
sys-devel/gcc: 14.2.1_p20241221::gentoo
sys-devel/gcc-config: 2.12.1::gentoo
sys-kernel/linux-headers: 6.12::gentoo (virtual/os-headers)
sys-libs/glibc: 2.40-r8::gentoo
Repositories:
gentoo
location: /var/db/repos/gentoo
sync-type: rsync
sync-uri: rsync://rsync.gentoo.org/gentoo-portage
priority: -1000
volatile: False
sync-rsync-verify-jobs: 1
sync-rsync-verify-metamanifest: yes
sync-rsync-verify-max-age: 3
sync-rsync-extra-opts:
pg_overlay
location: /var/db/repos/pg_overlay
sync-type: git
sync-uri: https://github.com/gentoo-mirror/pg_overlay.git
masters: gentoo
volatile: False
ppfeufer-gentoo-overlay
location: /var/db/repos/ppfeufer-gentoo-overlay
sync-type: git
sync-uri: https://github.com/gentoo-mirror/ppfeufer-gentoo-overlay.git
masters: gentoo
volatile: False
steam-overlay
location: /var/db/repos/steam-overlay
sync-type: git
sync-uri: https://github.com/gentoo-mirror/steam-overlay.git
masters: gentoo
volatile: False
Binary Repositories:
gentoobinhost
priority: 1
sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/23.0/x86-64
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native "
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d"
CXXFLAGS="-O2 -pipe -march=native "
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -pipe -march=native "
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -march=native "
GENTOO_MIRRORS="rsync://mirrors.mit.edu/gentoo-distfiles/ rsync://mirrors.rit.edu/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
LEX="flex"
MAKEFLAGS="-j 9"
MAKEOPTS="-j16"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac acl acpi activities alsa amd64 bash-completion bluetooth branding bzip2 cairo cdda cdr cet crypt cups dbus declarative dist-kernel dri dts dvd dvdr encode exif flac gdbm gif gpm gui iconv icu ipv6 jpeg kde kerberos kf6compat kwallet lcms libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses networkmanager nls ogg opengl openmp pam pango pcre pdf pipewire plasma png policykit ppds pulseaudio qml qt5 qt6 readline screencast sdl seccomp semantic-desktop sound spell ssl startup-notification svg systemd test-rust tiff truetype udev udisks unicode upower usb vorbis vulkan wayland widgets wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gcc_14" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 aes avx avx2 f16c fma3 pclmul popcnt rdrand sha sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby32" VIDEO_CARDS="amdgpu radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
~ #
|
|
|
Back to top |
|
 |
rab0171610 Guru

Joined: 24 Dec 2022 Posts: 492
|
Posted: Wed Mar 19, 2025 10:35 am Post subject: |
|
|
Sounds like the nature of the beast to me . . .
https://www.phoronix.com/news/AMDGPU-Driver-Plymouth-Woes
Quote: |
AMD GPU Linux Driver Becoming "Really Really Big" That It's Starting To Cause Problems
The big AMDGPU driver basically is causing a timeout for the Plymouth boot splash screen on older/slower hardware. Workarounds include falling back to explicitly using the Radeon DRM driver and disabling the AMDGPU driver on older Radeon graphics systems or telling Plymouth to use the SimpleDRM DRM/KMS device instead of waiting for the AMDGPU driver to load. That later option depends upon the PC booting in EFI mode to use SimpleDRM.
Fedora is working around this in their latest packages by beginning to probe SimpleDRM immediately. Fedora / Red Hat though isn't the only ones using Plymouth but is largely in use by all major Linux distributions of the past decade. But in recent years the AMDGPU driver has only continued to grow much larger in supporting newer GPUs and tacking on additional features and optimizations. |
|
|
Back to top |
|
 |
chubbypiper n00b

Joined: 27 Jun 2018 Posts: 40
|
Posted: Wed Mar 19, 2025 2:05 pm Post subject: |
|
|
Yeah, I ran across that in my nightly "laying in bed, should be sleeping but I'm looking up an issue" time. I don't think I'm on older/slower hardware, but this wouldn't be the first time I've been told that I'm wrong.
I'll see what I can do about enabling simpledrm/kms |
|
Back to top |
|
 |
chubbypiper n00b

Joined: 27 Jun 2018 Posts: 40
|
Posted: Wed Mar 19, 2025 2:33 pm Post subject: |
|
|
So, I added "plymouth.use-simpledrm" and it didn't change anything. I do see this in logs:
Code: |
Mar 19 09:11:40 gentoo systemd[1]: dracut-pre-trigger.service: Deactivated successfully.
Mar 19 09:11:40 gentoo systemd[1]: Stopped dracut pre-trigger hook.
Mar 19 09:11:40 gentoo systemd[1]: Stopping Rule-based Manager for Device Events and Files...
Mar 19 09:11:40 gentoo systemd-coredump[651]: Process 532 (plymouthd) of user 0 terminated abnormally with signal 6/ABRT, processing...
Mar 19 09:11:40 gentoo systemd-coredump[651]: Failed to connect to coredump service: No such file or directory
Mar 19 09:11:40 gentoo systemd[1]: run-credentials-systemd\x2dsysctl.service.mount: Deactivated successfully.
Mar 19 09:11:40 gentoo systemd[1]: run-credentials-systemd\x2dtmpfiles\x2dsetup.service.mount: Deactivated successfully.
Mar 19 09:11:40 gentoo systemd[1]: initrd-cleanup.service: Deactivated successfully.
.
.
.
Mar 19 09:11:40 gentoo systemd[1]: Reached target Switch Root.
Mar 19 09:11:40 gentoo kernel: amdgpu 0000:0a:00.0: [drm] REG_WAIT timeout 1us * 150000 tries - optc32_disable_crtc line:195
Mar 19 09:11:40 gentoo systemd[1]: plymouth-start.service: Main process exited, code=dumped, status=6/ABRT
Mar 19 09:11:40 gentoo systemd[1]: plymouth-start.service: Failed with result 'core-dump'.
Mar 19 09:11:40 gentoo systemd[1]: Finished Plymouth switch root service.
Mar 19 09:11:40 gentoo systemd[1]: Starting Switch Root...
Mar 19 09:11:40 gentoo kernel: fbcon: Taking over console
|
|
|
Back to top |
|
 |
zen_desu Apprentice

Joined: 25 Oct 2024 Posts: 154
|
Posted: Wed Mar 19, 2025 5:14 pm Post subject: |
|
|
I think dracut may try to init GPU drivers so simpledrm won't work here, you may have to force it to not include/use GPU drivers. I'm not entirely sure. _________________ µgRD dev
Wiki writer |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55040 Location: 56N 3W
|
Posted: Wed Mar 19, 2025 5:35 pm Post subject: |
|
|
chubbypiper,
Please share all of dmesg.
amdgpu and nvidia work quite differently.
At startup for both the kernel will use EFI framebuffer for the early console.
When amdgpudrmfm is ready it will switch to that for the console.
nvidia does not provide a framebuffer console driver, so EFI Framebuffer will be in use into your GUI starts.
I suspect that plymouth is drawn on the EFI Framebuffer, just before the kernel switches to amdgpudrm.
Telling plymouth to use simpledrm won't help as the kernel will choose the best framebuffer driver it can find and that will be amdgpudrmfb.
You can make amdgpudrmfb start earlier by building it and its firmware into the kernel but that’s fragile. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
chubbypiper n00b

Joined: 27 Jun 2018 Posts: 40
|
Posted: Wed Mar 19, 2025 9:03 pm Post subject: |
|
|
NeddySeagoon wrote: |
Please share all of dmesg.
|
https://pastebin.com/Jx53sJVc
NeddySeagoon wrote: |
amdgpu and nvidia work quite differently.
At startup for both the kernel will use EFI framebuffer for the early console.
When amdgpudrmfm is ready it will switch to that for the console.
|
Do you know if there's a way to prevent the kernel switching to amdgpudrmfm, or to force it to stick with the EFI framebuffer? |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55040 Location: 56N 3W
|
Posted: Wed Mar 19, 2025 9:38 pm Post subject: |
|
|
chubbypiper,
The first mention of your console is
Code: | [ 5.283893] [drm] Initialized amdgpu 3.60.0 for 0000:0a:00.0 on minor 0
[ 5.289616] fbcon: amdgpudrmfb (fb0) is primary device |
I was expecting to see the EFI framebuffer in use, then the kernel switch to amdgpudrmfb.
That suggests you are missing early console output.
simpledrm requires kernel support,
You are using the 6.12.16-gentoo-dist kernel. I don't know if simpledrm is enabled there or not. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
chubbypiper n00b

Joined: 27 Jun 2018 Posts: 40
|
Posted: Wed Mar 19, 2025 9:57 pm Post subject: |
|
|
NeddySeagoon wrote: | chubbypiper,
simpledrm requires kernel support,
You are using the 6.12.16-gentoo-dist kernel. I don't know if simpledrm is enabled there or not. |
Looks like it's not. And CONFIG_DRM_RADEON is module :/
Code: |
$ zgrep -iP 'simpledrm|drm_rad' /proc/config.gz
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SIMPLEDRM is not set
$
|
Guess I get to update those. We'll see what that does. |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55040 Location: 56N 3W
|
Posted: Wed Mar 19, 2025 10:04 pm Post subject: |
|
|
chubbypiper,
You can turn off CONFIG_DRM_RADEON=m as its not for you
You use AMDGPU which is in the same section. It will aso be a module
.
If you want to build AMDGPU into the kernel you must also build its firmwware into the kernel or you will only get a blank console. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
chubbypiper n00b

Joined: 27 Jun 2018 Posts: 40
|
Posted: Thu Mar 20, 2025 4:23 am Post subject: |
|
|
So I enabled simpledrm in the kernel, and things did change, but not necessarily for the better. Now this is what I see:
1) I see the loading kernel and loading initramfs messages for a couple seconds
2) BIOS splash screen comes up for a couple seconds
3) Drop back to text. Watch the scrolling text of starting services
4) Eventually Plymouth pops up for a couple seconds
5) Drop back to text. Just about done starting all services
6) sddm takes over
Here is my latest dmesg: https://pastebin.com/bWAqS4tX
Code: |
$ zgrep -P 'SIMPLEDRM|AMDGPU' /proc/config.gz
CONFIG_DRM_AMDGPU=m
CONFIG_DRM_AMDGPU_SI=y
CONFIG_DRM_AMDGPU_CIK=y
CONFIG_DRM_AMDGPU_USERPTR=y
# CONFIG_DRM_AMDGPU_WERROR is not set
CONFIG_DRM_SIMPLEDRM=y
$
|
|
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55040 Location: 56N 3W
|
Posted: Thu Mar 20, 2025 11:29 am Post subject: |
|
|
chubbypiper,
Now EFI framebuffer starts
Code: | [ 1.552493] efifb: probing for efifb
[ 1.552528] efifb: showing boot graphics
[ 1.554476] efifb: framebuffer at 0xe0000000, using 8100k, total 8100k
[ 1.554479] efifb: mode is 1920x1080x32, linelength=7680, pages=1
[ 1.554481] efifb: scrolling: redraw
[ 1.554482] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 1.554506] fbcon: Deferring console take-over
[ 1.554508] fb0: EFI VGA frame buffer device |
and switching to amdgpudrmfb happens here
Code: | [ 6.594300] fbcon: Taking over console
[ 6.609494] Console: switching to colour frame buffer device 240x67 |
That's as expected.
Quote: | 1) I see the loading kernel and loading initramfs messages for a couple seconds |
These messages come from your boot loader, the kernel is not yet in control, so they cannot come from the kernel.
Quote: | 2) BIOS splash screen comes up for a couple seconds |
This should happen before [1]. Its possible that the BIOS splash screen is left in the framebuffer RAM when the kernel switches to it, It would be displayed if the kernel did not clear the screen.
Quote: | 3) Drop back to text. Watch the scrolling text of starting services |
The kernel also claims that it has the VGA 80x24 text mode console but with EFI, that's faked or non existent.
There are no messages to suggest that it is ever used.
Code: | 4) Eventually Plymouth pops up for a couple seconds |
I wonder which console driver its using?
Try booting without plymouth.use-simpledrm
Quote: | 5) Drop back to text. Just about done starting all services |
amdgpudrmfb is in use before this point.
Quote: | 6) sddm takes over |
Xory or Wayland is in use at this point, so the GUI is in charge.
It does not use the same video RAM region as the console.
Are the console and sddm using the same screen resolution throughout the boot sequence?
A screen resolution switch looks ugly and may require the GPU to switch to a new pixel buffer RAM region.
Unless the pixel buffer is redrawn, the splash screen will be left behind.
plymouth.use-simpledrm is supposed to fix the screen resolution, so you don't see the discontinuity caused by a resolution/colour depth change. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
chubbypiper n00b

Joined: 27 Jun 2018 Posts: 40
|
Posted: Thu Mar 20, 2025 10:34 pm Post subject: |
|
|
I removed plymouth.use-simpledrm and didn't notice any difference.
I tried to watch the boot up sequesnce as closely as I could, and I didn't notice anything that clearly indicated it was changing resolution or redrawing the buffer. The same sequence occurred as I had previous indicated. As far as the boot sequence and sddm using the same resolution, it's hard to tell, but I'm going to guess that they are? The clarity on the text seems to be in line with what I'm seeing once everything is said and done.
dmesg without plymouth.use-simpledrm: https://pastebin.com/zCdapGYg |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|