Fedora Silverblue Setup Guide

A Quickstart Guide to Fedora Silverblue and Asus-Linux

Fedora Silverblue

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

If you are installing on a Zephyrus G14 (2022), there is a guide here which has lots of information.

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'

[copr:copr.fedorainfracloud.org:lukenukem:asus-linux]
name=Copr repo for asus-linux owned by lukenukem
baseurl=https://download.copr.fedorainfracloud.org/results/lukenukem/asus-linux/fedora-$releasever-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/lukenukem/asus-linux/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

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 supergfxctl
rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=nvidia-drm.modeset=1
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

__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia

GNOME Shell extension asusctl-gex

A desktop widget to operate some aspects of asusctl and supergfxctl: GNOME Shell extension asusctl-gex

Legal Matters

ASUS and ROG Trademark is either a US registered trademark or trademark of ASUSTeK Computer Inc. in the United States and/or other countries.

Reference to any ASUS products, services, processes, or other information and/or use of ASUS Trademarks does not constitute or imply endorsement, sponsorship, or recommendation thereof by ASUS.

The use of ROG and ASUS trademarks within this website and associated tools and libraries is only to provide a recognisable identifier to users to enable them to associate that these tools will work with ASUS ROG laptops.

Privacy Policy

We use Matomo

Matomo is an open source web analytics platform. A web analytics platform is used by a website owner in order to measure, collect, analyse and report visitor data for purposes of understanding and optimizing their website.

Purpose of the processing

Matomo is used to get an idea how our website is used by our users so we can optimize things further so that the user may find the most relevant information more quickly.

Data Matomo is processing

  • User IP address
  • Optional User ID
  • Date and time of the request
  • Title of the page being viewed
  • URL of the page being viewed
  • Referrer URL
  • Screen resolution being used
  • Time in local user’s timezone
  • Files that were clicked and downloaded
  • Links to an outside domain that were clicked
  • Page generation time
  • User location: country, region, city, approximate latitude and longitude
  • Main Language of the browser being used
  • User Agent of the browser being used

Pick up the one you are using:

  • Cookies
  • IP address
  • User ID
  • Custom Dimensions
  • Custom Variables
  • Location of the user

And also:

  • Date and time
  • Title of the page being viewed
  • URL of the page being viewed
  • URL of the page that was viewed prior to the current page
  • Screen resolution
  • Time in local timezone
  • Files that were clicked and downloaded
  • Link clicks to an outside domain
  • Pages generation time
  • Country, region, city
  • Main Language of the browser
  • User Agent of the browser

This list can be completed with additional features such as:

  • Form interactions
  • Media interactions
  • A/B Tests

The processing of personal data with Matomo is based on legitimate interests

If you wish us to not process any personal data with Matomo, you can opt-out from it at any time. There will be no consequences at all regarding the use of our website.

You can withdraw at any time your consent by clicking here

The right to lodge a complaint with a supervisory authority

If you think that the way we process your personal data with Matomo analytics is infringing the law, you have the right to lodge a complaint with a supervisory authority.

We are not doing any profiling.