Black screen on boot after upgrading to Fedora cinnamon 39

Hi everyone,

I just upgraded Fedora cinnamon to version 39.

Everything went fine during the upgrade, but I’m having a display problem again

I had posted this topic which was obviously a problem related to my Nvidia RTX 3060 graphics card

When I get to the grub menu, I have several entries

When I choose the first entry "Fedora Linux 39 (cinnamon), I get to the unlock window for my encrypted /home.

But this window is in low resolution, as if the Nvidia driver wasn’t launching.

And once I’ve typed my password, I get a black screen, I can’t do anything, not even ctrl alt f2 (at least it doesn’t display anything). I can restart via ctrl alt del.

The weird thing is that when I select “Fedora Linux 38 cinnamon” in the grub menu (the 2nd line), I get this window to decrypt my /home

Then I have this

And I finally get on lightdm, and I can connect to my session, which is under Fedora 39 according to the system information.

I’m totally lost…

Jeff, I’ve deleted the last topic because of the pictures which didn’t load.

I’ve tried your solution, when I was in my Fedora Linux 38 cinnamon session, but it didn’t resolve my problem…

I suspect the Nvidia driver is not installed correctly, and the Nouveau driver is blacklisted. When you are in the grub menu, can you press e to see the actual arguments?

I think you’re right :

There have been several similar “black screen on boot” reports for F39 upgrades with solutions. If you are comfortable with command-line dnf you can try getting a text console (e.g., ). Otherwise, try editing the command line in the grub menu to allow nouveau as a fallback. Then look for a solution that fits.

These arguments need to be removed to allow a temporary fallback to the Nouveau driver. In the grub menu, manually delete rd.driver.blacklist=nouveau ...... modeset=1 (both before and after rhgb quiet). Then, try to boot with Ctrl-X and reinstall the Nvidia driver from rpmfusion to see if that resolves the issue.

Before doing the reinstall first show the result of dnf list installed \*nvidia\*.

The image you show with the comment that the Nvidia module missing: falling back to nouveau clearly shows the fallback service worked and the nouveau driver did load which is exactly as intended.

You said you cannot get crtl-alt-F2 to work, but does ctrl-alt-F3 work? That may give a text login where the repairs could be performed.

This appears to have happened with the upgrade from F38 to F39 and there seems a bug that prevents properly upgrading the nvidia modules with the system-upgrade. This issue has been around for quite some time with release version updates.

My fix, from the command line is very simple and does not involve reinstalling anything.

  1. sudo dnf remove kmod-nvidia-* to remove the failing drivers
  2. sudo akmods --force to rebuild the drivers and install the newly locally created kmod-nvidia-$(uname -r) package.
  3. wait at least one minute after step 2 completes then reboot.

You probably can get the nvidia GPU to function (however poorly) with the nouveau drivers and allow you to log in if you were to have the grub menu displayed and press e to edit the line that begins with ‘linux’, Removing the parts already mentioned rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 and rhgb quiet replacing it all with nomodeset.

1 Like

I’ve tried your solution.

I can connect to my session by deleting rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1.

When I keep rhgb quiet, The window to unlock my encrypted /home is in a normal resolution.

Then I tried sudo dnf remove kmod-nvidia-* and sudo akmods --force but after rebooting, the problem persists.

Is it normal that the modifications that I made in the grub menu through ‘e’ are not persistent ?

In any case, thank you very much guys for your help !

Yes, changes made using e in the grub menu are only applied to that boot. The deletions allow nouveau to be loaded when nvidia fails. If you fix the nvidia issue while using nouveau your next boot should get a normal session with nvidia. If you still have the black screen issue you may not have waited long enough for the nvidia reconfiguration to finish.

I didn’t see the requested list of installed nvidia packages – it may help pin down the problem:

You’re right, sorry

akmod-nvidia.x86_64 3:535.129.03-1.fc39 @rpmfusion-nonfree
kmod-nvidia-6.5.11-300.fc39.x86_64.x86_64 3:535.129.03-1.fc39 @@commandline
nvidia-gpu-firmware.noarch 20231030-1.fc39 @updates
nvidia-persistenced.x86_64 3:535.129.03-1.fc39 @rpmfusion-nonfree
nvidia-settings.x86_64 3:535.129.03-1.fc39 @rpmfusion-nonfree
xorg-x11-drv-nvidia.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda-libs.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree
xorg-x11-drv-nvidia-kmodsrc.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree
xorg-x11-drv-nvidia-libs.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree
xorg-x11-drv-nvidia-power.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree

The packages are installed but are the drivers loading?
Please show us lsmod | grep -E 'nvidia|nouveau'

I have that

aze@eza:~1$ lsmod | grep -E ‘nvidia|nouveau’
nouveau 3416064 15
drm_ttm_helper 12288 1 nouveau
ttm 110592 2 drm_ttm_helper,nouveau
video 77824 1 nouveau
i2c_algo_bit 20480 1 nouveau
mxm_wmi 12288 1 nouveau
drm_display_helper 229376 1 nouveau
wmi 45056 4 video,wmi_bmof,mxm_wmi,nouveau

The lsmod shows that nvidia failed to load. Running journalctl in a terminal should provide details. Your task is to find the relevant messages and post them here (even if they lead you to a fix, having the errors in searchable form could help others with the same problem). You can start with journalctl -b and experimenting with options to search for entries matching nvidia and have high priority:

-g, --grep=
           Filter output to entries where the MESSAGE= field matches the specified regular expression.
           PERL-compatible regular expressions are used, see pcre2pattern(3) for a detailed description of the
           syntax.

           If the pattern is all lowercase, matching is case insensitive. Otherwise, matching is case sensitive.
           This can be overridden with the --case-sensitive option, see below.

and

       -p, --priority=
           Filter output by message priorities or priority ranges. Takes either a single numeric or textual log
           level (i.e. between 0/"emerg" and 7/"debug"), or a range of numeric/text log levels in the form
           FROM..TO. The log levels are the usual syslog log levels as documented in syslog(3), i.e.  "emerg" (0),
           "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7). If a single
           log level is specified, all messages with this log level or a lower (hence more important) log level
           are shown. If a range is specified, all messages within the range are shown, including both the start
           and the end value of the range. This will add "PRIORITY=" matches for the specified priorities.

Maybe start with journalctl -b -s nvidia -p 3 > nvidia-p3.txt (so you can view complete lines, e.g., using less).

It has been noted by several that a full release version upgrade may not properly build the nvidia drivers and they do not properly load after the upgrade.

One fix that usually works is

  1. Remove the failing modules with sudo dnf remove kmod-nvidia-\*
  2. Build the modules new for the running system with sudo akmods --force
  3. Wait about 1 minute after step 2 completes then reboot.

For most this seems to fix the problem.

No, it doesn’t work…

I’ve also tried

sudo depmod -a

With no success.

George N. White III, I’ll try your suggestion tomorrow.

I’m not sure what I’m supposed to do, but when I runjournalctl I have

nov. 10 18:59:09 Aze systemd[1716]: Queued start job for default target default.target.
nov. 10 18:59:09 Aze systemd-journald[615]: /var/log/journal/f99d11b199054b1584e8fac7bcb97135/user-1000.journal: Journal file uses a different sequence>
nov. 10 18:59:09 Aze audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=user@1000 comm=“syst>
nov. 10 18:59:09 Aze audit[1679]: USER_START pid=1679 uid=0 auid=1000 ses=2 subj=system_u:system_r:xdm_t:s0-s0:c0.c1023 msg='op=PAM:session_open granto>
nov. 10 18:59:09 Aze audit[1679]: USER_LOGIN pid=1679 uid=0 auid=1000 ses=2 subj=system_u:system_r:xdm_t:s0-s0:c0.c1023 msg='op=login id=1000 exe=”/usr>
nov. 10 18:59:09 Aze rsyslogd[1153]: imjournal: journal files changed, reloading… [v8.2310.0-1.fc39 try You searched for error 0 - rsyslog ]
nov. 10 18:59:09 Aze systemd[1716]: Created slice app.slice - User Application Slice.
nov. 10 18:59:09 Aze lightdm[1679]: pam_unix(lightdm:session): session opened for user Eza(uid=1000) by Eza(uid=0)
nov. 10 18:59:09 Aze systemd[1716]: Started systemd-tmpfiles-clean.timer - Daily Cleanup of User’s Temporary Directories.
nov. 10 18:59:09 Aze lightdm[1679]: gkr-pam: gnome-keyring-daemon started properly and unlocked keyring
nov. 10 18:59:09 Aze systemd[1716]: Reached target paths.target - Paths.
nov. 10 18:59:09 Aze systemd[1716]: Reached target timers.target - Timers.
nov. 10 18:59:09 Aze systemd[1716]: Starting dbus.socket - D-Bus User Message Bus Socket…
nov. 10 18:59:09 Aze systemd[1716]: Listening on pipewire-pulse.socket - PipeWire PulseAudio.
nov. 10 18:59:09 Aze systemd[1716]: Listening on pipewire.socket - PipeWire Multimedia System Sockets.
nov. 10 18:59:09 Aze systemd[1716]: Starting systemd-tmpfiles-setup.service - Create User’s Volatile Files and Directories…
nov. 10 18:59:09 Aze systemd[1716]: Listening on dbus.socket - D-Bus User Message Bus Socket.
nov. 10 18:59:09 Aze systemd[1716]: Reached target sockets.target - Sockets.
nov. 10 18:59:09 Aze systemd[1716]: Finished systemd-tmpfiles-setup.service - Create User’s Volatile Files and Directories.
nov. 10 18:59:09 Aze systemd[1716]: Reached target basic.target - Basic System.
nov. 10 18:59:09 Aze systemd[1716]: Reached target default.target - Main User Target.
nov. 10 18:59:09 Aze systemd[1716]: Startup finished in 190ms.
nov. 10 18:59:09 Aze systemd[1]: Started user@1000.service - User Manager for UID 1000.
nov. 10 18:59:09 Aze systemd[1]: Started session-2.scope - Session 2 of User Eza.
nov. 10 18:59:09 Aze systemd[1716]: Created slice session.slice - User Core Session Slice.
nov. 10 18:59:09 Aze systemd[1716]: Starting dbus-broker.service - D-Bus User Message Bus…
nov. 10 18:59:09 Aze dbus-broker-launch[1754]: Service file ‘/usr/share//dbus-1/services/nemo.service’ is not named after the D-Bus name ‘org.Nemo’.
nov. 10 18:59:09 Aze dbus-broker-launch[1754]: Service file ‘/usr/share//dbus-1/services/nemo.FileManager1.service’ is not named after the D-Bus name '>
nov. 10 18:59:09 Aze dbus-broker-launch[1754]: Service file ‘/usr/share//dbus-1/services/imsettings-daemon.service’ is not named after the D-Bus name '>
nov. 10 18:59:09 Aze dbus-broker-launch[1754]: Policy to allow eavesdropping in /usr/share/dbus-1/session.conf +31: Eavesdropping is deprecated and ign>
nov. 10 18:59:09 Aze dbus-broker-launch[1754]: Policy to allow eavesdropping in /usr/share/dbus-1/session.conf +33: Eavesdropping is deprecated and ign>
nov. 10 18:59:09 Aze systemd[1716]: Started dbus-broker.service - D-Bus User Message Bus.
nov. 10 18:59:09 Aze dbus-broker-launch[1754]: Ready
nov. 10 18:59:09 Aze systemd[1716]: Created slice app-dbus\x2d:1.2\x2dcom.redhat.imsettings.slice - Slice /app/dbus-:1.2-com.redhat.imsettings.
nov. 10 18:59:09 Aze systemd[1716]: Started dbus-:1.2-com.redhat.imsettings@0.service.
nov. 10 18:59:09 Aze systemd[1716]: Starting gvfs-daemon.service - Virtual filesystem service…
nov. 10 18:59:09 Aze systemd[1716]: Started gvfs-daemon.service - Virtual filesystem service.
nov. 10 18:59:09 Aze imsettings-daemon[1764]: [ 9.857459]: IMSettings-Daemon[1764]: INFO: Starting imsettings-daemon…
nov. 10 18:59:09 Aze imsettings-daemon[1764]: [ 9.857923]: IMSettings-Daemon[1764]: INFO: [HOME=/home/Eza/.config/imsettings]

And with journalctl -b

nov. 15 21:23:28 fedora kernel: Linux version 6.5.11-300.fc39.x86_64 (mockbuild>
nov. 15 21:23:28 fedora kernel: Command line: BOOT_IMAGE=(hd1,gpt5)/vmlinuz-6.5>
nov. 15 21:23:28 fedora kernel: BIOS-provided physical RAM map:
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x0000000000000000-0x0000000000>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000000a0000-0x0000000000>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x0000000000100000-0x0000000009>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x0000000009d82000-0x0000000009>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000a000000-0x000000000a>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000a200000-0x000000000a>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000a211000-0x000000000a>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000b000000-0x000000000b>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000b020000-0x00000000bb>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bb118000-0x00000000bb>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bb498000-0x00000000bb>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bb4fc000-0x00000000bc>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bcbfb000-0x00000000bd>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bdbff000-0x00000000be>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bf000000-0x00000000bf>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000f0000000-0x00000000f7>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fd200000-0x00000000fd>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fd600000-0x00000000fd>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fea00000-0x00000000fe>
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000feb80000-0x00000000fe>
lines 1-23…skipping…
nov. 15 21:23:28 fedora kernel: Linux version 6.5.11-300.fc39.x86_64 (mockbuild@d23353abed4340e492bce6e111e27898) (gcc (GCC) 13.2.1 20231011 (Red Hat 13.2.1-4>
nov. 15 21:23:28 fedora kernel: Command line: BOOT_IMAGE=(hd1,gpt5)/vmlinuz-6.5.11-300.fc39.x86_64 root=UUID=fb4f0bcc-3fd5-4208-99cf-60b6a3cdcb7a ro rhgb quiet
nov. 15 21:23:28 fedora kernel: BIOS-provided physical RAM map:
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000000a0000-0x00000000000fffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x0000000000100000-0x0000000009d81fff] usable
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x0000000009d82000-0x0000000009ffffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000a000000-0x000000000a1fffff] usable
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000a200000-0x000000000a210fff] ACPI NVS
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000a211000-0x000000000affffff] usable
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000b000000-0x000000000b01ffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000000b020000-0x00000000bb117fff] usable
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bb118000-0x00000000bb497fff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bb498000-0x00000000bb4fbfff] ACPI data
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bb4fc000-0x00000000bcbfafff] ACPI NVS
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bcbfb000-0x00000000bdbfefff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bdbff000-0x00000000beffffff] usable
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000bf000000-0x00000000bfffffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fd200000-0x00000000fd2fffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fd600000-0x00000000fd7fffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fea00000-0x00000000fea0ffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000feb80000-0x00000000fec01fff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fec10000-0x00000000fec10fff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fec30000-0x00000000fec30fff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fed00000-0x00000000fed00fff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fed40000-0x00000000fed44fff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fed80000-0x00000000fed8ffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fedc2000-0x00000000fedcffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000fedd4000-0x00000000fedd5fff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x0000000100000000-0x000000043f37ffff] usable
nov. 15 21:23:28 fedora kernel: BIOS-e820: [mem 0x000000043f380000-0x000000043fffffff] reserved
nov. 15 21:23:28 fedora kernel: NX (Execute Disable) protection: active
nov. 15 21:23:28 fedora kernel: e820: update [mem 0xb7c82018-0xb7c90057] usable ==> usable
nov. 15 21:23:28 fedora kernel: e820: update [mem 0xb7c82018-0xb7c90057] usable ==> usable
nov. 15 21:23:28 fedora kernel: e820: update [mem 0xb7c5b018-0xb7c81857] usable ==> usable
nov. 15 21:23:28 fedora kernel: e820: update [mem 0xb7c5b018-0xb7c81857] usable ==> usable
nov. 15 21:23:28 fedora kernel: extended physical RAM map:

I have no reference to Nvidia with these commands

Working with journactl requires finding the right filters, as it records “everything”. Unless you use a big monitor with a very wide window, you need to capture journalctl output in a file to ensure that lines don’t get truncated (important details are often near the end of the line).

  • look at man journctl for discussion of the grep search and priority options
  • Running “sudo journalctl” gives more information.

Example (old iMac, curretly running nouveau):

~% journalctl -b -g nvidia  
Nov 13 15:47:14 X kernel: nouveau 0000:01:00.0: NVIDIA GK107 (0e72a0a2)
Nov 13 15:47:18 X kernel: input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/soun>
[...]
Nov 13 15:47:37 fedorausb gnome-remote-desktop-daemon[2000]: Cannot load libnvidia-encode.so.1

Note truncated line. You can use redirection and tee to get full lines in terminal and in a file for future reference.

(base) [gnw3@fedorausb]~% journalctl -b -g nvidia | tee journalctl.out 
Nov 13 15:47:14 fedorausb kernel: nouveau 0000:01:00.0: NVIDIA GK107 (0e72a0a2)
Nov 13 15:47:18 fedorausb kernel: input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input12
[...]
Nov 13 15:47:37 fedorausb gnome-remote-desktop-daemon[2000]: Cannot load libnvidia-encode.so.1

Some news about my nvidia issue.

I’ve decided to reinstall from scratch Fedora 39. Everything works well until I install the nvidia drivers through rpm fusion and then my black screen appears again.

So I stick with nouveau for now.

I’m wondering : is sticking with nouveau a good idea ? I don’t play games, nor any video encoding.

Thank you again for your help

As you have seen, nvidia drivers are “high maintenance”, so if nouveau isn’t causing problems for your workflows, you probably have better ways to spend your time (such as working through Linux Command, a time-tested guide to linux command-line tools – the command-line is often needed to solve issues, in part because it makes it easier to discuss issues on online forums).

I use nouveau on my old (late 2012) iMac until I hit something (usually helping colleague with a software issue) that needs nvidia. It isn’t a big problem to switch, but I expect I will start to encounter things not supported on older Nvidia hardware. There is work on an open source replacement for nouveau, and Nvidia has dipped a toe in open source.

the command-line is often needed to solve issues, in part because it makes it easier to discuss issues on online forums)

Yes I know, I’m learning step by step but very slowly :sweat_smile:

Anyway, for now, I’ll keep nouveau and wait one or 2 months to check the new nvidia updates