TL;DR: Make sure you’re booting from the correct bootloader and kernel, then blacklist nouveau using a new initramfs.
I’ve booted into NVIDIA proprietary graphics properly! So here’s the full fix, at least for me. Here’s the TL;DR for anyone who is looking for their own fix.
Oddly enough, I had to skip the bootloader installation with Anaconda because it wasn’t detecting a stage1
device. I was working with a Windows 11 dual boot with Arch Linux booting from the rEFInd bootloader prior to this.
This error have had its own fix, but I decided to deal with the bootloader after the OS installation (as you may read in this topic), which was a bad mistake!
Because of these circumstances, I’d like to assume that my case ended up being sort of an edge case… Not sure, though.
By following this guide, I am NOT responsible for any damage you do to your system. I would recommend backing up everything in your /boot
with your ESP partitions. Please do your own research.
Part 1: Adding EFI to /boot/efi
Verify that your EFI is mounted to /boot/efi
.
If your EFI does not mount on startup:
- Run
lsblk -o PATH,FSTYPE,UUID,MOUNTPOINT
- Find your EFI partition and copy its UUID.
- Check your
/etc/fstab
and add this line (if not present):
UUID=REPLACE-WITH-ID /boot/efi vfat umask=0077,shortname=winnt 1 1
(If you already have a line for your EFI and it’s not mounting, then something might be broken. You may want to troubleshoot this separately in that case.)
Once you’ve done this, verify your EFI is auto-mounting on boot by rebooting the machine.
Part 2: Bootloader Fix
This applies only to EFI partitions. You’ll need to do this step yourself if you’re not on a UEFI system.
To verify if you’ve booted off of an EFI system, use this:
➜ ~ cat /sys/firmware/efi
cat: /sys/firmware/efi: Is a directory
I’m running on an NVIDIA Optimus laptop with a 1650 graphics card.
The real issue arose from my kernel version being mismatched, due to my bootloader pointing at the right kernel. I’ll spare you the details here (you can read above), but it took a while to figure out I was running Arch’s version of GRUB instead of Fedora’s GRUB 2 bootloader.
To verify that you’re running the correct version of GRUB on boot, run efibootmgr -v
in your terminal of choice, and look for a boot entry that looks like this one:
➜ ~ efibootmgr -v
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,0001,0000,0019,001A,001B,001C,001D,001E,001F,0020,0021,0022,0023,0024
Boot0000* Windows Boot Manager HD(1,GPT,windows-boot-id-goes-here,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...7................
Boot0001* GRUB HD(1,GPT,really-long-id-goes-here,0x800,0x82000)/File(\EFI\GRUB\grubx64.efi)
Boot0002* fedora HD(1,GPT,another-very-long-id-here,0x800,0x82000)/File(EFI\fedora\grubx64.efi)
Note the paths at the end of each line. If it looks like this, then you’ve got a good boot going:
File(EFI\fedora\grubx64.efi)
If not, then please see this post on how I made my boot entry.
If you see the boot, then pay attention to the Boot000X
ID to the left and compare it with the BootCurrent
list. If the fedora boot isn’t the first ID on this list, then look into efibootmgr -o
to switch your boot order so the fedora bootloader is listed first.
Part 3: Installing and using NVIDIA
By this point, your system should be closer to a relatively normal Fedora install! 
To install graphics drivers for your GPU, See https://rpmfusion.org/Howto/NVIDIA#Installing_the_drivers, then reboot your system.
Now that the drivers are installed after a fresh reboot, run nvidia-settings
. If you don’t see your GPU listed there, then your GPU isn’t active under your configuration.
There’s two ways to do this. There’s a way to boot NVIDIA graphics via GRUB, but it didn’t work for me, so I ended up rebuilding my initramfs
files instead.
Please backup your /boot
directory in case you need to roll back!
Firstly, create a new file called /etc/modprobe.d/blacklist-nvidia-nouveau.conf
and add the following contents:
blacklist nouveau
options nouveau modeset=0
Then, after backing up your system’s current initramfs files (/boot/initramfs-*
), run sudo dracut --regenerate-all --force
to rebuild those files with the current kernel settings.
Then reboot. If you’re seeing a black screen, see this post: https://discussion.fedoraproject.org/t/fedora-36-black-screen/76499/26?u=treeway7