Fedora Silverblue 31 on Dell XPS 15 9570

Hi, everyone!

Wanted to share a bit of my experience installing latest Silverblue on the troublesome Dell XPS 15 9570 with its hybrid graphics. :triumph:

First issue is that after the initial install the desktop doesn’t come up and you’re greeted with a nice black screen.

  1. To prevent this, right after the installer is done, reboot and keep pressing F12 to get the boot loader options (step two won’t work without going through the boot selector.)
  2. Select your Fedora entry and press down arrow to interrupt the automatic boot process.
  3. You should see 4 options + “System setup” in the boot loader menu.
  4. Select the first option (don’t hit Enter yet). Press “e” to enter the edit mode for the 1st boot entry.
  5. Go to the line begging with “linux” with your cursor under the “L” letter and hit CTRL+E to go to the end of the line.
  6. Hit Space and add “modprobe.blacklist=nouveau” (without quotes).
  7. Press CTRL+X to finally boot to Gnome.

Once you get your account setup and are in the desktop, go to Software and check for updates.
After a while you’ll be asked to reboot to finish the upgrade. Don’t yet. :exclamation:

  1. Open a terminal and type “rpm-ostree kargs --append=modprobe.blacklist=nouveau”. Wait for it to finish and then “systemctl reboot” as instructed.
  2. Now there should be no need to interrupt the boot process and you can get into Gnome safely.
  3. Once you’re back in action you can finally setup NVIDIA drivers.
  4. Open a terminal and type “rpm-ostree install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-31.noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-31.noarch.rpm”. Wait for it to finish and then “systemctl reboot” as instructed.
  5. Open a terminal and type “rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia-cuda libva-utils libva-vdpau-driver gstreamer1-libav”. NOTE: “libva-utils libva-vdpau-driver gstreamer1-libav” are optional, but recommended for video acceleration to work. Don’t reboot yet.
  6. Type “rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=nvidia-drm.modeset=1”. Wait for it to finish and then “systemctl reboot” as instructed.

At this point you should have a working NVIDIA setup with Intel graphics as your main driver. :partying_face:

Still trying to figure things out, but it looks promising so far.

Silverblue is AWESOME. :smiling_face_with_three_hearts:

1 Like

Awesome! We get asked in the Fedora Discord all the time about Optimus set ups so this will be handy.

libva-utils libva-vdpau-driver gstreamer1-libav

If you use Flatpak for your applications, these probably won’t ever get used, as Firefox doesn’t use them.

2 Likes

Thanks a lot for the extra info about those libs. :love_you_gesture:

Any idea how to force non-flatpak apps to use the NVIDIA card instead of the intel one?

I see that the card and is setup, but I cannot seem to get apps to use it. Am I missing some optirun/bumblebee? :thinking:

Thanks for sharing your experiences.

Today I downloaded and installed Fedora 31 on my Dell XPS 15 9570. I get as far as booting into Gnome from the hard drive after editing the Grub menu as described in steps 1-7. But then why I try to run the command “rpm-ostree kargs --append=modprobe.blacklist=nouveau” from a terminal I get the following message: “error: This system was not booted via libostree; cannot operate”. Subsequent reboot of the system does not bring me back into Gnome (the manually edited Grub entry to blacklist the nouveau driver is also gone).

Any idea as to what could be causing this and what I can try next?

jwilms,

Did you install regular Fedora 31 Workstation or Silverblue? Just asking because it wasn’t mentioned and your error message seems to back that up.

If you are just running regular Fedora Workstation then you don’t need the rpm-ostree kargs command. What you want to do is, from the terminal, “sudo vi /etc/default/grub”. Press “i”. Go to where it says GRUB_CMDLINE_LINUX and then go to the end of the line (usually says rhgb quiet"). Make a space between the word quiet and the quotation, then type modprobe.blacklist=nouveau. Hit Escape. Type :wq and hit enter.

Now if you are running on UEFI, do “sudo grub2-mkconfig /boot/efi/EFI/fedora/grub.cfg”. If you are on legacy I believe it is “sudo grub2-mkconfig /boot/grub2/grub.cfg”.

Hope that works! If you are on Silverblue then just disregard.

The way I’ve disabled nouveau with the kernel parameters in Fedora 31 Workstation is using grub2-editenv rather than editing files by hand.

check the current kernel parameters: sudo grub2-editenv - list | grep kernelopts

Add the kernel parameters to it and set that as the kernel parameters (or copy-paste the output of the previous comand instead of running it in a subshell):
sudo grub2-editenv - set kernelopts="$(sudo grub2-editenv - list | grep kernelopts) rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1"