#!/bin/bash
# 1. SETUP REPOSITORIES
echo ">>> Setting up Repositories (RPM Fusion, Copr, Cisco)..."
# Install RPM Fusion (Free & Nonfree)
sudo dnf install -y 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
# Enable Cisco OpenH264
sudo dnf config-manager --set-enabled fedora-cisco-openh264
# Enable Vanilla Kernel Copr
sudo dnf -y copr enable @kernel-vanilla/stable
# Enable Caprine Copr
sudo dnf copr enable dusansimic/caprine
# 2. SYSTEM UPDATES & FIRMWARE
echo ">>> Updating System and Firmware..."
sudo dnf upgrade --refresh -y
# Update Core Group
sudo dnf groupupdate core -y
# Check Firmware (Only if supported hardware is found)
fwupdmgr refresh
fwupdmgr get-updates
fwupdmgr update -y
# 3. INSTALL DRIVERS & CODECS
echo ">>> Installing Multimedia Codecs and Intel Drivers..."
# Install basic multimedia packages and libraries
sudo dnf install -y libfreeaptx libldac fdk-aac ffmpeg-libs libva libva-utils openh264 gstreamer1-plugin-openh264 mozilla-openh264 intel-gpu-tools
# Swap restricted codecs (Allowerasing handles the swap)
sudo dnf swap -y ffmpeg-free ffmpeg --allowerasing
sudo dnf swap -y mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap -y mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
# Install Multimedia Groups (excluding PackageKit plugin to prevent conflicts)
sudo dnf group upgrade -y multimedia sound-and-video --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
# INTEL DRIVERS
# Note: 'libva-intel-driver' is the legacy i965 driver (Sandy Bridge to Skylake).
# Newer Intel CPUs (Broadwell+) use 'intel-media-driver'.
# Since you specified Sandy Bridge, we keep 'libva-intel-driver'.
sudo dnf install -y libva-intel-driver
# 4. INSTALL APPLICATIONS & TOOLS
echo ">>> Installing Applications and Tools..."
# Archive Tools, System Info, Monitoring
sudo dnf install -y unzip p7zip p7zip-plugins unrar inxi btop lm_sensors git make gcc mono-devel vlc caprine
# Viber (Assumes you have downloaded the RPM, otherwise download it first)
# wget https://download.cdn.viber.com/cdn/desktop/Linux/viber.rpm
# sudo dnf install -y ./viber.rpm
# 5. KERNEL CONFIGURATION
echo ">>> Installing Vanilla Kernel..."
sudo dnf upgrade -y 'kernel*'
# Update metadata expiration for Copr
sudo sed -i 's!baseurl=https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/\(mainline\|stable-rc\|next\).*!&\nmetadata_expire=1h!g; s!baseurl=https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/\(stable\|fedora\)/.*!&\nmetadata_expire=3h!g;' /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:group_kernel-vanilla:*.repo
# Secure Boot State
mokutil --sb-state
# 6. POWER & THERMAL MANAGEMENT
echo ">>> Configuring Power and Thermals..."
# Detect sensors
sudo sensors-detect --auto
# Install Thermald
sudo dnf install -y thermald
sudo systemctl enable --now thermald
# --- OPTION A: Power Profiles Daemon (Default/Recommended for GNOME/KDE) ---
#sudo dnf install -y power-profiles-daemon
#sudo systemctl enable --now power-profiles-daemon
#powerprofilesctl set performance
# --- OPTION B: TLP (Advanced battery life, conflicts with Option A) ---
# DO NOT RUN BOTH Option A and B. Uncomment below only if you remove power-profiles-daemon.
# sudo dnf install -y tlp tlp-rdw
# sudo systemctl mask power-profiles-daemon
# sudo systemctl enable --now tlp
# Disable NetworkManager wait online (speeds up boot)
sudo systemctl disable NetworkManager-wait-online.service
# 7. BUILD NBFC-LINUX (Manual Build)
echo ">>> Building NBFC-Linux..."
if [ ! -d "nbfc-linux" ]; then
git clone https://github.com/nbfc-linux/nbfc-linux.git
fi
cd nbfc-linux
make
sudo make install
cd ..
# 8. FILESYSTEM MAINTENANCE
echo ">>> Filesystem Maintenance..."
sudo fstrim -av
# Only run defrag on BTRFS root
sudo btrfs filesystem defragment -r -v /
# 9. MANUAL CONFIGURATION STEPS
echo ">>> Opening Config Files (Manual intervention required)..."
# sudo nano /etc/dnf/dnf.conf
# sudo nano /etc/default/grub
# After editing grub, run: sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# 10. FINAL CHECK
echo ">>> Done. System Stats:"
systemd-analyze blame | head -n 10
vainfo
sudo intel_gpu_top
git clone https://github.com/AdnanHodzic/auto-cpufreq.git
cd auto-cpufreq && sudo ./auto-cpufreq-installer
sudo auto-cpufreq --install
auto-cpufreq --stats
in /etc/environment:
LIBVA_DRIVER_NAME=i965
Notes: sudo dnf install xfce4-notes-plugin
#disable autoupdates && save ram
sudo systemctl stop packagekit
sudo systemctl mask packagekit
Tune ZRAM for performance.
Edit/Create the config:
Bash
[zram0]
zram-size = ram
compression-algorithm = zstd
Restart the service:
sudo systemctl restart systemd-zram-setup@zram0.service
List services:systemctl list-units --type=service
Fedora specific:
sudo systemctl disable --now switcheroo-control.service ModemManager.service pcscd.service
sudo systemctl disable --now abrtd.service abrt-journal-core.service abrt-oops.service abrt-xorg.service rsyslog.service atd.service
sudo systemctl disable --now gssproxy.service rpc-statd-notify.service
sudo systemctl disable --now irqbalance.service
balooctl disable sudo systemctl disable --now pcscd.service
sudo systemctl mask power-profiles-daemon
edit /etc/default/grub and add mitigations=off to the GRUB_CMDLINE_LINUX line
sudo grub2-mkconfig -o /boot/grub2/grub.cfg