Fedora Silverblue Setup Guide

🔗 Fedora Silverblue

The following process will help you to setup your Asus machine with Fedora Silverblue.

🔗 Installation

The user may exercise their own discretion with the options given, however be sure to decline the enabling of "third-party" repositories.

🔗 Asus-Linux Repository

First we will add the Asus-Linux repository in order to install asusctl and supergfxctl.

Open a terminal window and enter

sudo nano /etc/yum.repos.d/asus.repo

We can then paste in the following with the key combination 'control + shift + v'

name=Copr repo for asus-linux owned by lukenukem

We can save and exit with 'control + x'

🔗 Nvidia

We can now start the process of acquiring and installing the NVIDIA drivers.

rpm-ostree install --apply-live https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
rpm-ostree update \
            --uninstall rpmfusion-free-release-35-1.noarch \
            --uninstall rpmfusion-nonfree-release-35-1.noarch \
            --install rpmfusion-free-release \
            --install rpmfusion-nonfree-release         

Note that the specific rpmfusion release (e.g 35-1) will change with time. Use the command 'rpm-ostree status' to ensure you are removing the correct version in the above command.

rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-power asusctl 
rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=nvidia-drm.modeset=0
sudo cp /usr/lib/udev/rules.d/61-gdm.rules /etc/udev/rules.d/ && sudo nano  /etc/udev/rules.d/61-gdm.rules

Change 'set daemon WaylandEnable false' to 'set daemon WaylandEnable true' in each observed case. Press 'control + x' to save and exit.

systemctl reboot
systemctl enable nvidia-{suspend,resume,hibernate} 
systemctl enable --now supergfxd.service
systemctl mask nvidia-fallback.service
flatpak update

🔗 Optional Optimisations

🔗 Install the ROG Kernel

The ROG Kernel often contains patches that may provide benefit for the hardware you are running. The need for this will depend on your use case, your hardware and the current upstream status of these patches.

Unfortunately Silverblue is currently unable to automatically install a kernel from a COPR. Thus we will have to install and update this locally ourselves.

Head over here and grab the following .rpm files from the latest build.

  • kernel
  • kernel-core
  • kernel-devel
  • kernel-modules
  • kernel-modules-extra

We can now use the following syntax to override the default kernel

rpm-ostree override replace <path_to_kernel> <path_to_kernel-core> <path_to_kernel-devel> <path_to_kernel-modules> <path_to_kernel-modules-extra>

🔗 Flatpak Cleaning

In order to streamline our dependency on flatpak it is worthwhile to have everything working with the same fundamentals.

flatpak remove --all 
flatpak remote-delete fedora 
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak update

🔗 Replace Firefox RPM with Flathub Flatpak and Force Wayland

rpm-ostree override remove firefox && flatpak install flathub org.mozilla.firefox flathub org.freedesktop.Platform.ffmpeg-full
sudo flatpak override --socket=wayland --env=MOZ_ENABLE_WAYLAND=1 org.mozilla.firefox

🔗 Enable hardware decoding in Firefox

Enter about:config into the Firefox address bar. Ensure that the following settings are matched in your setup.

media.ffmpeg.vaapi.enabled = true

media.ffvpx.enabled = false

media.navigator.mediadatadecoder_vpx_enabled = true

media.rdd-vpx.enabled = false

🔗 Flatseal and Steam

flatpak install flathub com.github.tchx84.Flatseal flathub com.valvesoftware.Steam

Open Flatseal and then add the following environment variables for Steam


🔗 Asusctl-gex Extension

Download the latest release as a .zip file from here

Create an Extension folder if it does not exist

mkdir .local/share/gnome-shell/extensions

And then

cd Downloads && unzip asusctl-gex_asus-linux.org.zip && cp -r asusctl-gex@asus-linux.org /var/home/*/.local/share/gnome-shell/extensions

You may need to logout for the extension to start.