Introduction

I installed CachyOS sometime in 2024 on my secondary laptop a Dell G5 from 2019. Used it without any problems until a

Now that CachyOS has developed a reputation for its processor generation optimizations, decided to try it on Legion . I was generally happy with the distribution initially, but was disappointed and frustrated by some of the choices made by the developers.

CachyOS installer allows customization of the installed system to a certain extent:

  • choice of desktop environments
  • impressively, a choice of bootloaders

Although there were frustrations and disappointments with CachyOS during the initial period of using it, which required me to tinker, there were some aspects of the distribution that I liked, one of is that

Review Summary

Recommendation

Review

For this review of CachyOS, I will eschew the usual format and begin with the most notable characteristics of CachyOS: its performance optimizations, its default use of the Btrfs filesystem, and the issues surrounding its choice of open Nvidia drivers. Other aspects of the distribution are discussed in the sections Pre-Installation Experience, Installation, and Fixes and Enhancements, below.

Pre-Installation Experience

The pre-installation experience, mostly centered around website resources concerning downloading the installation medium and verifying the downloaded ISO, is better than most on CachyOS. the signatures and checksums for verifying download integrity and authenticity, as well as instructions on performing the verification are easy to find on the CachyOS website. The following set of images show the main link to the downloads page (Image 1) and the download dropdown menu (Image 2).

Download

The initial download link, which takes users to another page where the actual download links are located -- one for desktops, and another for handheld gaming devices -- is prominent on the distribution's website's main page. The download link on the second download page is a dropdown with alternative download sources as well as the iso signature file and iso checksum and signature files.

ISO Verification

Two of the three items necessary for verification of the ISO, the ISO SHA256 checksum (cachyos-desktop-linux-260308.iso.sha256) and the ISO GPG signature (cachyos-desktop-linux-260308.iso.sig)files, are downloadable from the same dropdown menu as that contains the download links. Instructions for obtaining the third item, the distribution's ISO signing public key, are included with the instructions for the verification on the CachyOS wiki.

The aspect of the pre-installation experience that could possibly be improved is finding the page in the wiki that contains the verification instructions. (Incidentally, the best experience in this regard is the Mageia download page which provides all of the necessary instructions in a pop-up once the download link is activated.)The main menu bar of the website opens the main page of the wiki. From this page the most likely link for finding verification instructions is the card labeled "Installation Guide", but this only takes the user to CachyOS Installation Desktop/Laptop general installation considerations. Finding the verification instructions requires navigating to the page from the contents sidebar.

Live ISO Environment

The downloaded installation medium is a live ISO that uses Plasma as the desktop environment.

Boot Menu

CachyOS Hello

Once the desktop environment loads, the distribution's welcome application, CachyOS Welcome launches automatically. It has links to various CachyOS resources such as, among others, release information, the distribution's wiki and forum. Most notable is the link to its online package browser, shown in the fourth image of the following set.

CachyOS Hello

Live ISO Applications

The live ISO environment contains only the mimimum set of applications to be useful during installation. It includes both GParted and KDE Partition Manager to manage partiitons outside of the installation program, Firefox, and of course Konsole, KDE's terminal program.

Installer/Installation

Unique Features

CachyOS uses the Calamares installer as do many distributions. Its implementation includes two interesting capabilities not found in many distributions:

  • A package selection screen that allows users to select from a set of packages to be included in the final installed system. It is something not found in most distribution's installers, but openSUSE's installer does have a similar feature that allows installation of any package available in its repositories.
    The CachyOS Installer's Package Selection Screen
    The installer allows users to select packages from a limited set of important programs organized in categories to be installed as part of the OS installation.
  • a desktop environment selection screen that allows users to select one from eighteen desktop environments for the final installed system
    The CachyOS Installer Desktop Environment Selection Screen and DE Previews
    The installer allows users to select the desktop environment to be available on the system, a

Installer Problems

Desktop Environtments

As we saw above, one of the notable features of CachyOS is that the installer allows users to choose a desktop environment to make available in the final installed system.

Choices

The CachyOS Installer's Desktop Environment Selection Screen
The installer allows users to choose from eighteen desktop environments or window managers, or no desktop.

Theme and Settings

Btrfs

The CachyOS installation is on a Btrfs filesystem by default, with a usable subvolume layout created during installation. This is in contrast to what is done by some distributions that install on Btrfs filesystem, namely creating a Btrfs filesystem without making a subvolume layout which consists of a set of subvolumes under the top level default subvolume created by the filesystem creation utility. This set of additional subvolumes below the top level subvolume should inlcude a subvolume that is mounted at / for all parts of the root filesystem hierarchy that are to be included in snapshots and a subvlolume for each part of the filesystem hierarchy that should not be included in snapshots; these subvolumes are mounted at their respective paths. These other distributions don't make the subvolume layout and simply install the OS on the top level subvolume.

The subvolume layout created by CachyOS is shown below as an output of

btrfs subvolume list /

CachyOS's Subvolume Layout

Subvolumes are created under the top level default subvolume (subvolume iD 5) in a flat layout, unlike openSUSE's -- the Btrfs pioneer -- hierarchical layout. The @ (subvolume ID 256) subvolume is mounted at / and a subvolume for Snapper snapshots named .snapshots is created in its standard location under the @ subvolume during creation of the Snapper configuration.

❯ sudo btrfs subvolume list /
[sudo] password for brook: 
ID 256 gen 3167 top level 5 path @
ID 257 gen 1509 top level 5 path @root
ID 258 gen 28 top level 5 path @srv
ID 259 gen 3135 top level 5 path @cache
ID 260 gen 3155 top level 5 path @tmp
ID 261 gen 3165 top level 5 path @log
ID 262 gen 2946 top level 256 path .snapshots
ID 331 gen 1008 top level 256 path var/lib/portables
ID 332 gen 1008 top level 256 path var/lib/machines
ID 361 gen 1307 top level 262 path .snapshots/95/snapshot
... excised ...
ID 386 gen 2862 top level 262 path .snapshots/120/snapshot

Snapper

CachyOS also confiures Snapper for snaphots and rollbacks of the / filesystem hierarchy. All of the associated features provided by various tools are also configured out-of-the-box. This includes grub-btrfs, which adds a submenu of available read-only Snapper Btrfs snapshots to the GRUB menu and snap-pac, which automates the creation of Pre and Post snapshots during package managment transactions with pacman

Snapper/pacman Integration

The image below shows the Snapper snapshots created and remaining after automatic cleanup in six days of usage. It is apparent from the "Description" column of the output that the pre and post snapshots, according to the "Type" column of the output, are created during pacman transactions. The "pre" snapshot description lists the actual command used during the transaction and the "post" snapshot, simply lists the packages.

Btrfs/Snapper/GRUB Integration

CachyOS also configures the GRUB menu to allow selection of read-only bootable snapshots. The following set of images shows the menu, which incidentally has a very nice theme in my opinion.

Periodic and Boot Automatic Snapshot Creation

CachyOS does not enable the systemd timers for automatic perioidic or boot-time snapshot creation or periodic snapshot cleanup. The timers shown in the following listing must be enabled by the user.

❯ sudo systemctl status snapper-*.timer
[sudo] password for brook: 
● snapper-boot.timer - Take snapper snapshot of root on boot
     Loaded: loaded (/usr/lib/systemd/system/snapper-boot.timer; enabled; preset: disabled)
     Active: active (elapsed) since Sun 2026-04-12 15:14:10 EDT; 2h 44min ago
 Invocation: 03a889929b7d4d44bd8eb97471f163bb
    Trigger: n/a
   Triggers: ● snapper-boot.service

Apr 12 15:14:10 cachyos-16ith6 systemd[1]: Started Take snapper snapshot of root on boot.

● snapper-cleanup.timer - Hourly Cleanup of Snapper Snapshots
     Loaded: loaded (/usr/lib/systemd/system/snapper-cleanup.timer; enabled; preset: disabled)
     Active: active (waiting) since Sun 2026-04-12 15:14:10 EDT; 2h 44min ago
 Invocation: e0a90368d7784bd38d69ea215fa25d3a
    Trigger: Sun 2026-04-12 18:28:15 EDT; 29min left
   Triggers: ● snapper-cleanup.service
       Docs: man:snapper(8)
             man:snapper-configs(5)

Apr 12 15:14:10 cachyos-16ith6 systemd[1]: Started Hourly Cleanup of Snapper Snapshots.

● snapper-timeline.timer - Timeline of Snapper Snapshots
     Loaded: loaded (/usr/lib/systemd/system/snapper-timeline.timer; enabled; preset: disabled)
     Active: active (waiting) since Sun 2026-04-12 15:14:10 EDT; 2h 44min ago
 Invocation: b1d010a679504eacb02a05d95eb6fd37
    Trigger: Sun 2026-04-12 18:00:00 EDT; 1min 8s left
   Triggers: ● snapper-timeline.service
       Docs: man:snapper(8)
             man:snapper-configs(5)

Apr 12 15:14:10 cachyos-16ith6 systemd[1]: Started Timeline of Snapper Snapshots.

Btrfs Assistant

The distribution installs Btrfs Assistant GUI application for maintaining the Btrfs filesystem and amintaining snapshots., by directly using btrfs-progs commands as opposed to using Snapper commands so I wouldn't use it for managing snapshots. Where it is useful, is running and automating the Btrfs providd maintenance commands and setting up automation for these commands through systmd timeres. The automation of the btrfs balance command is especially usefult to avoid the sutuation described in Not Enough Space on Btrfs Filesystem Due to Exhausted Metadata Block Group Allocation. Unfortunately, this aspect of the utility requures the otpional dependency package, btrfsmaintenance, which CachyOS does not install by default. Installation of the package and enablement of the timers to periodically run btrfs balance and btrfs scrub command timers is discussed in Fixes and Enhancements, below. (The latter command is especially useful with mirrored disks or partitions to magically repair corrupted files.)

CachyOS Performance Optimizations

Of course, the standout feature of CachyOS, one of the reasons it is getting some attention -- especially from gamers -- is its focus on performance. In creating the distribution, it does two major things in order to optimize performance: it compiles packages for specific generations of the x86_64 processor architecture and it provides a variety of tuned schedulers.

In the distribution's own words:

Every package is compiled with x86-64-v3, x86-64-v4, and Zen4 instruction sets plus LTO. Core packages receive additional PGO and BOLT optimization — no manual rebuilds required.
In addition, the
linux-cachyos kernel ships with a tuned scheduler for responsive interactivity, plus options for BORE, sched-ext, BMQ, and RT. All kernel builds are CPU-optimized with x86-64-v3/v4, Zen4 and LTO.

Processor Specific Packages

CachyOS, compiles packages specifically for each of the microprocessor architecture feature levels, x86-64-v3, x86-64-v4, defined collaboratively by AMD, Intel, Red Hat, and SUSE. Each of these levels is successively more recent with improvements in and added features compared to the previous level. The processor level can be determined as shown in the following listing.

❯ sudo /lib64/ld-linux-x86-64.so.2 --help
Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]
You have invoked 'ld.so', the program interpreter for dynamically-linked
ELF programs.  Usually, the program interpreter is invoked automatically
when a dynamically-linked executable is started.

... excised ...

This program interpreter self-identifies as: /usr/lib/ld-linux-x86-64.so.2

Shared library search path:
  (libraries located via /etc/ld.so.cache)
  /usr/lib (system search path)

Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4 (supported, searched)
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)

Since I don't have a

The last three lines of the output shows the levels supported by the processor.

CachyOS maintains three sets of repositories for packages compiled processor level optimizations, one set for each processor level. There are also repositores for packages not optimized by processor level. The installer enables the approporiate optimized packager repositores along with the unoptimized package repositories. The following listing shows the enabled repositories for the processor level features in the Lenovo Legion 5i Pro's processor.

❯ pacman-conf --repo-list
cachyos-v4
cachyos-core-v4
cachyos-extra-v4
cachyos
core
extra
multilib

LTO, PGO, AutoFDO and BOLT Optimizations

In addition to optimizations achieved by compiling packaged programs for specific microprocessor architecture feature level of CPUs, CachyOS also uses tools and methods that optimize genrated executable code. These are the LTO, PTO, AutoFDO, and BOLT. These are briefly described below.

LTO

In this optimization technique, which is also known as intermodular optimization or interprocedural optimization, first, the compiler creates an intermediate representation (IR) object, a unified object consisting of the various input source code files. Then, the linker performs optimizations of this unified object, increasing the speed of the final executable and reducing its size. The source of optimization compared to standard compilation linking is that optimizations can be performed on a unified view of the input source code files as opposed to the individual source code files. This allows the linker to reduce or eliminate duplicate calculations, improve inefficient memory use, simplify iterative loops, and eliminate code that is never executed.

A faster and less resource intensive mode of LTO also exists, where in addition to the intermediate representation is created by the compiler, as with regular LTO, a compact summary of each input is created. The actual optimization is performed using a combined summary index of code instead of the intermediate representation.

PGO
Profile guided optimization operates on an instrumented program -- a program modified as source code or binary (object files) in order to allow analysis of its operation. A profile of the program's operation is created based on simulated executions of the program using a representative sample of inputs in likely usage scenarios. The profile is then used to make optimizations based on the frequency of execution of certain parts of the code. Reference 6 gives specific examples of the types of optimizations.
AutoFDO
AutoFDO is a profiling optimization technique similar to PGO but has lower overhead at the expense of some performance gain. Unlike PGO, it does not create a profile using instrumented program, but uses the perf command to create a profile which is directed back to the compiler.
BOLT
Binary optimization and layout tool operates after compilation and linking on executable files -- on Unix-like systems, the ELF (see References 7 and 8) -- to optimize the performance when they are executed. The optimizations are based on reordering, removing, and other manipulations of the contents of the executable file and recreating a new executable file. The details of the tool is described in a paper published by its creator, Meta, in Reference 9, which also provides performance improvement data.
Propeller
This optimization tool is a PLO similar to

Process Schedulers

CachyOS allows users to select a CPU process scheduler from a variety of choices in order to use the best performing scheduler for their use case. The process schedulers are incorporated into the various kernel options (see below) that CachyOS provides and are thus selected by choosing the appropriate kernel for the desired process scheduler.

In order to discuss the scheduler choices, the following diagram illustrates some of the concepts involved

Process Scheduler Classes, Schedulers, and Scheduler Policies
CachyOS Linux kernel options incorporate EEVDF, BORE, or BMQ CPU Processor Schedulers

The available schedulers are EEVDF -- the default linux process scheduler since kernel 6.6, BORE, and BMQ. These schedulers operate on processes that are in the FAIR "generic" scheduling class, the relationship of which to other scheduling classes is shown in the diagram below.

EEVDF

This FAIR schedular class scheduler gradually replaced the previous default FAIR schedular class CFS between Linux 6.6 and 6.12, when CFS code was removed from the kenel code. EEVDF uses the core scheduler mechanism but extends it in order to remove the accummulated technical debt incurred by CFS in continuous developemnt efforts to fix its problems while properly fixing CFS's limitations, primarily that it had no latency guarantee. (See Reference 14 for CFS's other limitations.)

BORE

The Solus forum describes the BORE process scheduler as this:

The BORE CPU scheduler is a modification of the default CFS scheduler but optimized for interactive desktops. It is designed so that under heavy CPU load the system will try to prioritize processes that it thinks are interactive, this should help keep your desktops responsive when you are doing something tasking on the system.

CachyOS does not have anything to say in its wiki bout this scheduler except to link to the GitHub page, which states:

BORE (Burst-Oriented Response Enhancer) is an enhanced versions of the EEVDF (Earliest Eligible Virtual Deadline First) Linux schedulers. Developed with the aim of maintaining these schedulers' high performance while delivering resilient responsiveness to user input under as versatile load scenario as possible. To achieve this, BORE introduces a dimension of flexibility known as "burstiness" for each individual tasks, partially departing from CFS's inherent "complete fairness" principle. Burstiness refers to the score derived from the accumulated CPU time a task consumes after explicitly relinquishing it, either by entering sleep, IO-waiting, or yielding. This score represents a broad range of temporal characteristics, spanning from nanoseconds to hundreds of seconds, varying across different tasks. Leveraging this burstiness metric, BORE dynamically adjusts scheduling properties such as weights and delays for each task. Consequently, in systems experiencing diverse types of loads, BORE prioritizes tasks requiring high responsiveness, thereby improving overall system responsiveness and enhancing the user experience.

BMQ

BMQ, based on Google's Fuscia OS scheduler, is a scheduler supporting the Deadline, Real-Time, and Fair scheduler policies which is designed to improve latency on desktop systems. According to the notes in Gentoo's kernel patch that incorporates BMQ (Reference 16):

The intent in this system is to ensure that interactive threads are serviced quickly. These are usually the threads that interact directly with the user and cause user-perceivable latency. These threads usually do little work and spend most of their time blocked awaiting another user event. So they get the priority boost from unblocking while background threads that do most of the processing receive the priority penalty for using their entire timeslice.

Kernel Variants Optimized for Use Case

The default kernel installed by the installer is linux-cachyos, which is compiled using Clang as opposed to GCC, allowing for ThinLTO oprimization instead of LTO, and further optimized with AutoFDO. It also sets the largest timer frequncy rate for increased responsiveness.

In addition to the default linux-cachyos, the distribution offers a variety of Linux kernels, some of which offer alternative CPU process schedulers for the FAIR scheduling class (for regular user processes), compilation with Clang or GCC, various timer frequency options (specifies how often the scheduler reorders processes), and different PGO tools.

The table below attempts to summarize the features of the various kernels based on information found on the kernel page of the CachyOS wiki. Note that for each of the kernels in the table, with the exception of the default kernel, there is a variant available compiled with Clang using ThinLTO optimization; these kernels have names like the non-LTO variant, but suffixed with -lto.

CachyOS Kernel Variants and Process Schedulers
Kernel Variant Process Scheduler Optimizations Patch Set Use Case
linux-cachyos Default scheduler (EEVDF since kernel 6.6) ThinLTO, AutoFDO, 1MHz timer frequency
linux-cachyos-bore BORE
linux-cachyos-bmq BMQ
linux-cachyos-deckify BORE patches specifically for handheld devices Only for handheld devices
linux-cachyos-eevdf Enhanced EEVDF
linux-cachyos-lts BORE minimally patched for increased stability Stability
linux-cachyos-hardened BORE linux-hardened patchset
linux-cachyos-rc BORE mainline kernel use to test new features
linux-cachyos-server Default scheduler (EEVDF since kernel 6.6) no preemption, 300Hz timer
linux-cachyos-rt-bore BORE real-time preemption

Other Optimizations

The distribution also makes some other choices of lesser importance and effect for the sake of performance. One such choice is to disable the kernel's watchdog, a system heartbeat monitoring system. The distribution uses the imprecise kernel command line parameter nowatchdog. This does indeed reduce the overhead due to the continuous system monitoring, and it does prevent the "Watchdog did not stop!" error message when powering down the system. However, this particular optimization is not worth it as it prevents the intended functionality of the system which allows the system to recover after errors. A performance optimization, a marginal one at that, is not worth a decrease in reliability, in my opinion.

Shells

fish shell is the default login shell, very well configured with a fzf type list of autosuggestions and completions. not the best choice for compatibility with bourne type shells, switched to zsh, first time using it interactive dialog for setting up powerline 10k, config uses oh-my-zsh, but not configured enough to have bash type globs

Nvidia Graphics

On the Lenovo Legion 5i Pro with an Nvidia GeForce RTX 3050, I had no issues initially with the graphics setup. The default Wayland session was working even with an external monitor connected through USB-C/Thunerbolt. Later I discovered issues (see below) caused by CachyOS's choices with respect to graphics driver packages.

Selecting the default option in the live ISO GRUB menu installs the Nvidia open drivers, something that is not obvious or prominently advertised on the CachyOS wiki or website. In my experience, the Nvidia open drivers work fine for the simplest graphics display functionality, but they cause issues with more complex uses and also cause porblems with other aspects of the system. For example on openSUSE, the open Nvidia driver modules caused big issues for me -- only resolved by replacing the open Nvidia modules with the proprietary Nvidia modules -- when trying to use an external monitor. In my use of CachyOS also there were issues with other parts of the system because the distribution chooses to install the open driver module instead of the proprietary module.

Not only does the distribution choose to install the open driver by default, it does not offer prebuilt proprietary nvidia driver packages for any of its kernels. Examining the pacman output below shows that the only prebuilt Nvidia kernel module is linux-cachyos-rc-gcc-nvidia intended for use with the linux-cachyos-rc-gcc, not for the default installed linux-cachyos kernel, for which the only prebuilt Nvidia driver package is linux-cachyos-nvidia-open. Like linux-cachyos-nvidia-open all other prebuilt Nvidia driver packages are open packages, not the poprietary version.

❯ sudo pacman -Ss nvidia
cachyos-v4/lib32-nvidia-utils 595.58.03-1
    NVIDIA drivers utilities (32-bit)
cachyos-v4/lib32-opencl-nvidia 595.58.03-1
    OpenCL implemention for NVIDIA (32-bit)
cachyos-v4/libxnvctrl 595.58.03-1 [installed]
    NVIDIA NV-CONTROL X extension
cachyos-v4/linux-cachyos-bmq-lto-nvidia-open 6.19.9-2
    nvidia open modules of 595.58.03 driver for the linux-cachyos-bmq-lto kernel
cachyos-v4/linux-cachyos-bmq-nvidia-open 6.19.9-2
    nvidia open modules of 595.58.03 driver for the linux-cachyos-bmq kernel
cachyos-v4/linux-cachyos-bore-lto-nvidia-open 6.19.11-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-bore-lto kernel
cachyos-v4/linux-cachyos-bore-nvidia-open 6.19.12-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-bore kernel
cachyos-v4/linux-cachyos-deckify-lto-nvidia-open 6.19.11-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-deckify-lto kernel
cachyos-v4/linux-cachyos-deckify-nvidia-open 6.19.11-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-deckify kernel
cachyos-v4/linux-cachyos-eevdf-lto-nvidia-open 6.19.11-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-eevdf-lto kernel
cachyos-v4/linux-cachyos-eevdf-nvidia-open 6.19.12-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-eevdf kernel
cachyos-v4/linux-cachyos-gcc-nvidia-open 6.19.12-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-gcc kernel
cachyos-v4/linux-cachyos-hardened-lto-nvidia-open 6.19.11-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-hardened-lto kernel
cachyos-v4/linux-cachyos-hardened-nvidia-open 6.19.12-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-hardened kernel
cachyos-v4/linux-cachyos-lts-lto-nvidia-open 6.12.69-2
    nvidia open modules of 590.48.01 driver for the linux-cachyos-lts-lto kernel
cachyos-v4/linux-cachyos-lts-nvidia-open 6.18.22-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-lts kernel
cachyos-v4/linux-cachyos-nvidia-open 6.19.12-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos kernel
cachyos-v4/linux-cachyos-rc-gcc-nvidia 6.15.rc7-6
    nvidia module of 570.153.02 driver for the linux-cachyos-rc-gcc kernel
cachyos-v4/linux-cachyos-rc-gcc-nvidia-open 7.0.rc7-3
    nvidia open modules of 595.58.03 driver for the linux-cachyos-rc-gcc kernel
cachyos-v4/linux-cachyos-rc-lto-nvidia 6.17.rc7-2
    nvidia module of 580.95.05 driver for the linux-cachyos-rc-lto kernel
cachyos-v4/linux-cachyos-rc-lto-nvidia-open 6.19.rc6-1
    nvidia open modules of 590.48.01 driver for the linux-cachyos-rc-lto kernel
cachyos-v4/linux-cachyos-rc-nvidia-open 7.0.rc7-2
    nvidia open modules of 595.58.03 driver for the linux-cachyos-rc kernel
cachyos-v4/linux-cachyos-rt-bore-lto-nvidia-open 6.19.11-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-rt-bore-lto kernel
cachyos-v4/linux-cachyos-rt-bore-nvidia-open 6.19.12-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-rt-bore kernel
cachyos-v4/linux-cachyos-server-lto-nvidia-open 6.19.11-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-server-lto kernel
cachyos-v4/linux-cachyos-server-nvidia-open 6.19.12-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-server kernel
cachyos-v4/nvidia-open-dkms 595.58.03-1
    NVIDIA open kernel modules - module sources
cachyos-v4/nvidia-settings 595.58.03-1 [installed]
    Tool for configuring the NVIDIA graphics driver
cachyos-v4/nvidia-utils 595.58.03-1
    NVIDIA drivers utilities
cachyos-v4/opencl-nvidia 595.58.03-1
    OpenCL implemention for NVIDIA
cachyos-extra-v4/cudnn 9.20.0.48-1.1
    NVIDIA CUDA Deep Neural Network library
cachyos-extra-v4/egl-gbm 1.1.3-1.1 [installed]
    The GBM EGL external platform library
cachyos-extra-v4/egl-wayland 4:1.1.21-1.1 [installed]
    EGLStream-based Wayland external platform
cachyos-extra-v4/egl-wayland2 1.0.1-1.1 [installed]
    EGLStream-based Wayland external platform (2)
cachyos-extra-v4/egl-x11 1.0.5-1.1 [installed]
    NVIDIA XLib and XCB EGL Platform Library
cachyos-extra-v4/libnvidia-container 1.19.0-1.1
    NVIDIA container runtime library
cachyos-extra-v4/libva-nvidia-driver 0.0.16-1.2 [installed]
    VA-API implementation that uses NVDEC as a backend
cachyos-extra-v4/libvdpau 1.5-4.1 [installed]
    Nvidia VDPAU library
cachyos-extra-v4/libxnvctrl 595.58.03-1.1 [installed: 595.58.03-1]
    NVIDIA NV-CONTROL X extension
cachyos-extra-v4/nccl 2.29.7-1.1
    Library for NVIDIA multi-GPU and multi-node collective communication primitives
cachyos-extra-v4/nsight-compute 2026.1.0.9-3.1
    Interactive profiler for NVIDIA CUDA and OptiX
cachyos-extra-v4/nvhpc 26.3-1.1
    NVIDIA HPC SDK
cachyos-extra-v4/nvhpc-comm-libs 26.3-1.1
    NVIDIA HPC SDK - communication libraries
cachyos-extra-v4/nvhpc-compilers 26.3-1.1
    NVIDIA HPC SDK - compilers
cachyos-extra-v4/nvidia-cg-toolkit 3.1-8.1
    NVIDIA Cg libraries
cachyos-extra-v4/nvidia-container-toolkit 1.19.0-1.1
    NVIDIA container toolkit
cachyos-extra-v4/nvidia-open 595.58.03-3.1
    NVIDIA open kernel modules
cachyos-extra-v4/nvidia-open-lts 1:595.58.03-4.1
    NVIDIA open kernel modules
cachyos-extra-v4/nvidia-settings 595.58.03-1.1 [installed: 595.58.03-1]
    Tool for configuring the NVIDIA graphics driver
cachyos-extra-v4/nvtop 3.3.2-1.1
    GPUs process monitoring for AMD, Intel and NVIDIA
cachyos-extra-v4/nvtx 3.5.0-1.1
    NVIDIA Tools Extension (NVTX) library
cachyos-extra-v4/python-cuda 13.2.0-1.1
    Python interface for CUDA provided by NVIDIA
cachyos-extra-v4/python-cuda-bindings 13.2.0-1.1
    Python interface for CUDA provided by NVIDIA
cachyos-extra-v4/python-cuda-tile 1.2.0-1.1
    A Python-based DSL and parallel programming model for NVIDIA GPUs
cachyos-extra-v4/python-nvmath 0.8.0-2.1
    NVIDIA Math Libraries for Python
cachyos-extra-v4/python-nvtx 3.5.0-1.1
    NVIDIA Tools Extension (NVTX) library - Python bindings
cachyos-extra-v4/python-pycuda 2026.1-2.1
    Python wrapper for Nvidia CUDA
cachyos-extra-v4/xf86-video-nouveau 1.0.18-1.1 (xorg-drivers)
    Open Source 3D acceleration driver for nVidia cards
cachyos/gwe 0.15.9-4
    A system utility for controlling NVIDIA GPUs
cachyos/lib32-nvidia-390xx-utils 390.157-3
    NVIDIA drivers utilities (32-bit), 390xx legacy branch
cachyos/lib32-nvidia-470xx-utils 470.256.02-1
    NVIDIA drivers utilities (32-bit)
cachyos/lib32-nvidia-535xx-utils 535.288.01-1
    NVIDIA drivers utilities (32-bit), 535 branch
cachyos/lib32-nvidia-550xx-utils 550.163.01-2
    NVIDIA drivers utilities (32-bit), 550 branch
cachyos/lib32-nvidia-580xx-utils 580.142-1 [installed]
    NVIDIA drivers utilities (32-bit) (580xx)
cachyos/lib32-nvidia-utils 595.58.03-1
    NVIDIA drivers utilities (32-bit)
cachyos/lib32-opencl-nvidia 595.58.03-1
    OpenCL implemention for NVIDIA (32-bit)
cachyos/lib32-opencl-nvidia-390xx 390.157-3
    OpenCL implemention for NVIDIA (32-bit), 390xx legacy branch
cachyos/lib32-opencl-nvidia-470xx 470.256.02-1
    OpenCL implemention for NVIDIA (32-bit)
cachyos/lib32-opencl-nvidia-535xx 535.288.01-1
    OpenCL implemention for NVIDIA (32-bit), 535 branch
cachyos/lib32-opencl-nvidia-550xx 550.163.01-2
    OpenCL implemention for NVIDIA (32-bit), 550 branch
cachyos/lib32-opencl-nvidia-580xx 580.142-1 [installed]
    OpenCL implemention for NVIDIA (32-bit) (580xx)
cachyos/lib32-vulkan-nouveau 2:26.0.4-2
    Open-source Vulkan driver for Nvidia GPUs - 32-bit
cachyos/libxnvctrl 595.58.03-1 [installed]
    NVIDIA NV-CONTROL X extension
cachyos/libxnvctrl-390xx 390.157-2
    NVIDIA NV-CONTROL X extension, 390xx legacy branch
cachyos/libxnvctrl-470xx 470.256.02-3
    NVIDIA NV-CONTROL X extension
cachyos/libxnvctrl-535xx 535.288.01-1
    NVIDIA NV-CONTROL X extension
cachyos/libxnvctrl-580xx 580.126.18-1
    NVIDIA NV-CONTROL X extension (580xx)
cachyos/linux-cachyos-bmq-nvidia-open 6.19.6-1
    nvidia open modules of 590.48.01 driver for the linux-cachyos-bmq kernel
cachyos/linux-cachyos-bore-nvidia-open 6.19.10-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-bore kernel
cachyos/linux-cachyos-deckify-nvidia-open 6.19.10-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-deckify kernel
cachyos/linux-cachyos-eevdf-nvidia-open 6.19.10-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-eevdf kernel
cachyos/linux-cachyos-hardened-nvidia-open 6.19.10-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-hardened kernel
cachyos/linux-cachyos-lts-nvidia-open 6.18.20-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-lts kernel
cachyos/linux-cachyos-nvidia-open 6.19.10-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos kernel
cachyos/linux-cachyos-rc-nvidia 6.16.rc7-2
    nvidia module of 575.64.05 driver for the linux-cachyos-rc kernel
cachyos/linux-cachyos-rc-nvidia-open 7.0.rc5-2
    nvidia open modules of 595.58.03 driver for the linux-cachyos-rc kernel
cachyos/linux-cachyos-rt-bore-nvidia-open 6.19.10-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-rt-bore kernel
cachyos/linux-cachyos-server-nvidia-open 6.19.10-1
    nvidia open modules of 595.58.03 driver for the linux-cachyos-server kernel
cachyos/linux-firmware-nvidia 1:20260309-1 [installed]
    Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs
cachyos/nouveau-fw 340.108-1
    This package provides video & pgraph firmwares for all NVIDIA chipsets that need them
cachyos/nvidia-390xx-dkms 390.157-24
    NVIDIA drivers - module sources
cachyos/nvidia-390xx-settings 390.157-2
    Tool for configuring the NVIDIA graphics driver, 390xx legacy branch
cachyos/nvidia-390xx-utils 390.157-24
    NVIDIA drivers utilities
cachyos/nvidia-470xx-dkms 470.256.02-17
    NVIDIA drivers - module sources
cachyos/nvidia-470xx-settings 470.256.02-3
    Tool for configuring the NVIDIA graphics driver
cachyos/nvidia-470xx-utils 470.256.02-17
    NVIDIA drivers utilities
cachyos/nvidia-535xx-dkms 535.288.01-1
    NVIDIA drivers - module sources, 535 branch
cachyos/nvidia-535xx-settings 535.288.01-1
    Tool for configuring the NVIDIA graphics driver, 535 branch
cachyos/nvidia-535xx-utils 535.288.01-1
    NVIDIA drivers utilities, 535 branch
cachyos/nvidia-550xx-dkms 550.163.01-3
    NVIDIA drivers - module sources, 550 branch
cachyos/nvidia-550xx-utils 550.163.01-3
    NVIDIA drivers utilities, 550 branch
cachyos/nvidia-580xx-dkms 580.142-2 [installed]
    NVIDIA kernel modules - module sources (580xx)
cachyos/nvidia-580xx-open-dkms 580.142-2
    NVIDIA open kernel modules - module sources (580xx)
cachyos/nvidia-580xx-settings 580.126.18-1
    Tool for configuring the NVIDIA graphics driver (580xx)
cachyos/nvidia-580xx-utils 580.142-2 [installed]
    NVIDIA drivers utilities (580xx)
cachyos/nvidia-fake-powerd 0.1.0-2
    dbus blackhole for nvidia.powerd.server for working around a bug in nvidia-495 drivers.
cachyos/nvidia-module-extractor 6-1
    Extracts nvidia kernel modules to separate directory
cachyos/nvidia-open-dkms 595.58.03-1
    NVIDIA open kernel modules - module sources
cachyos/nvidia-settings 595.58.03-1 [installed]
    Tool for configuring the NVIDIA graphics driver
cachyos/nvidia-utils 595.58.03-1
    NVIDIA drivers utilities
cachyos/opencl-nvidia 595.58.03-1
    OpenCL implemention for NVIDIA
cachyos/opencl-nvidia-390xx 390.157-24
    OpenCL implemention for NVIDIA
cachyos/opencl-nvidia-470xx 470.256.02-17
    OpenCL implemention for NVIDIA
cachyos/opencl-nvidia-535xx 535.288.01-1
    OpenCL implemention for NVIDIA, 535 branch
cachyos/opencl-nvidia-550xx 550.163.01-3
    OpenCL implemention for NVIDIA, 550 branch
cachyos/opencl-nvidia-580xx 580.142-2 [installed]
    OpenCL implemention for NVIDIA (580xx)
cachyos/optimus-manager-git 4:803.python3.14-1
    Allows using Nvidia Optimus laptop graphics
cachyos/supergfxctl 5.2.7-2
    A utility for Linux graphics switching on Intel/AMD iGPU + nVidia dGPU laptops
cachyos/supergfxctl-git 5.0.0.rc1.r8.g2473ced-1
    A utility for Linux graphics switching on Intel/AMD iGPU + nVidia dGPU laptops
cachyos/vulkan-nouveau 2:26.0.4-2
    Open-source Vulkan driver for Nvidia GPUs
core/linux-firmware-nvidia 20260309-1 [installed: 1:20260309-1]
    Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs
extra/bumblebee 3.2.1-21
    NVIDIA Optimus support for Linux through VirtualGL
extra/cuda 13.2.0-1
    NVIDIA's GPU programming toolkit
extra/cudnn 9.20.0.48-1
    NVIDIA CUDA Deep Neural Network library
extra/egl-gbm 1.1.3-1 [installed: 1.1.3-1.1]
    The GBM EGL external platform library
extra/egl-wayland 4:1.1.21-1 [installed: 4:1.1.21-1.1]
    EGLStream-based Wayland external platform
extra/egl-wayland2 1.0.1-1 [installed: 1.0.1-1.1]
    EGLStream-based Wayland external platform (2)
extra/egl-x11 1.0.5-1 [installed: 1.0.5-1.1]
    NVIDIA XLib and XCB EGL Platform Library
extra/ffnvcodec-headers 13.0.19.0-1
    FFmpeg version of headers required to interface with Nvidias codec APIs
extra/hip-runtime-nvidia 7.2.1-2
    Heterogeneous Interface for Portability (Nvidia runtime)
extra/libnvidia-container 1.19.0-1
    NVIDIA container runtime library
extra/libva-nvidia-driver 0.0.16-1 [installed: 0.0.16-1.2]
    VA-API implementation that uses NVDEC as a backend
extra/libvdpau 1.5-4 [installed: 1.5-4.1]
    Nvidia VDPAU library
extra/libxnvctrl 595.58.03-1 [installed]
    NVIDIA NV-CONTROL X extension
extra/nccl 2.29.7-1
    Library for NVIDIA multi-GPU and multi-node collective communication primitives
extra/nsight-compute 2026.1.0.9-3
    Interactive profiler for NVIDIA CUDA and OptiX
extra/nvhpc 26.3-1
    NVIDIA HPC SDK
extra/nvhpc-comm-libs 26.3-1
    NVIDIA HPC SDK - communication libraries
extra/nvhpc-compilers 26.3-1
    NVIDIA HPC SDK - compilers
extra/nvidia-cg-toolkit 3.1-8
    NVIDIA Cg libraries
extra/nvidia-container-toolkit 1.19.0-1
    NVIDIA container toolkit
extra/nvidia-open 595.58.03-3
    NVIDIA open kernel modules
extra/nvidia-open-dkms 595.58.03-1
    NVIDIA open kernel modules - module sources
extra/nvidia-open-lts 1:595.58.03-4
    NVIDIA open kernel modules
extra/nvidia-prime 1.0-5 [installed]
    NVIDIA Prime Render Offload configuration and utilities
extra/nvidia-settings 595.58.03-1 [installed]
    Tool for configuring the NVIDIA graphics driver
extra/nvidia-utils 595.58.03-1
    NVIDIA drivers utilities
extra/nvshmem 3.6.5-1
    NVIDIA parallel programming interface based on OpenSHMEM
extra/nvtop 3.3.2-1
    GPUs process monitoring for AMD, Intel and NVIDIA
extra/nvtx 3.5.0-1
    NVIDIA Tools Extension (NVTX) library
extra/opencl-nvidia 595.58.03-1
    OpenCL implemention for NVIDIA
extra/primus_vk 1.6.2-1
    Nvidia Vulkan offloading for Bumblebee
extra/python-cuda 13.2.0-1
    Python interface for CUDA provided by NVIDIA
extra/python-cuda-bindings 13.2.0-1
    Python interface for CUDA provided by NVIDIA
extra/python-cuda-tile 1.2.0-1
    A Python-based DSL and parallel programming model for NVIDIA GPUs
extra/python-nsight 0.9.6-1
    Python kernel profiling interface based on NVIDIA Nsight Tools
extra/python-nvidia-ml-py 13.595.45-1
    Python bindings for the NVIDIA Management Library (NVML)
extra/python-nvmath 0.8.0-2
    NVIDIA Math Libraries for Python
extra/python-nvtx 3.5.0-1
    NVIDIA Tools Extension (NVTX) library - Python bindings
extra/python-pycuda 2026.1-2
    Python wrapper for Nvidia CUDA
extra/vulkan-nouveau 1:26.0.4-1
    Open-source Vulkan driver for Nvidia GPUs
extra/xf86-video-nouveau 1.0.18-1 (xorg-drivers)
    Open Source 3D acceleration driver for nVidia cards
multilib/lib32-libvdpau 1.5-3
    Nvidia VDPAU library
multilib/lib32-nvidia-cg-toolkit 3.1-10
    NVIDIA Cg libraries
multilib/lib32-nvidia-utils 595.58.03-1
    NVIDIA drivers utilities (32-bit)
multilib/lib32-opencl-nvidia 595.58.03-1
    OpenCL implemention for NVIDIA (32-bit)
multilib/lib32-primus_vk 1.6.2-1
    Nvidia Vulkan offloading for Bumblebee
multilib/lib32-vulkan-nouveau 1:26.0.4-1
    Open-source Vulkan driver for Nvidia GPUs - 32-bit

Problems

CachyOS is a good distribution for the various reasons discussed in this article, however it does have some problems that require tinkering, which makes it not completely an out-of-the-box ready to use distribution for some users. This is in addition to the installation problems described in the Installation section.

Hibernation

After a few days without any issues, I came across the first of three problems two CachyOS characteristics that did not meet my expectations. The first was that hibernation capability is not enabled by the CachyOS installer, even if a swap partition is available on the laptop.

  • they do not create a suitable swap file or partition, or do not use an existing swap partition and add it to the /etc/fstab
  • they do not build an initramfs that includes resume modules, on Arch based distributions with the default initramfs creation utility, this means not including "resume" in the list of hooks in /etc/mkinitcpio.conf
  • they do not specify a resume device in the default kernel command line parameters list /etc/default/grub, if GRUB.

Many distributions typically do not enable hibernation, and it can be easily enabled after installation. The second issue, which I discovered only after the standard procedure for enabling hibernation did not result in a working hibernation.

Nvidia Open Drivers

related note the chwd utility has a profile for nvidia-dkms (see below) but this profile only uses the open

Wacom Graphics Tablet

Fixes and Enhancements

Enable Hibernation

Enabling hibernation requires the following steps.

  1. Making a swap file or swap partition available. In my case there was a pre-existing swap partition on one of the disks of the Lenovo Legion. I added the partition to /etc/fstab ensuring a priority is set in the mount options because CachyOS uses zRAM
    UUID=980ddbbf-9b79-4390-be21-850e62b7ebb2	none      	swap      	defaults,pri=5  	0 0
  2. Adding the swap partition as a resume device in the kernel command line in /etc/default/GRUB, if using GRUB as the bootloader.
    GRUB_CMDLINE_LINUX_DEFAULT='resume=UUID=980ddbbf-9b79-4390-be21-850e62b7ebb2 quiet splash loglevel=3'
  3. Adding the "resume" hook to the list of hooks in /etc/mkinitcpio.conf:
    HOOKS=(base systemd autodetect microcode kms modconf block keyboard sd-vconsole plymouth filesystems resume fsck)

These steps are normally what is required to enable hibernation. Unfortunately, for users with an Nvidia GPU on a laptop, the default Nvidia open drivers installed by default on CachyOS prevented hibernation form actually working. So, for these users, replacing the Nvidia open drivers with the proprietary drivers, as described below, is also necessary.

Enable Watchdog

watchdog disabled in kernel comand line, maybe makes marginal difference in performance at the cost of reliability, the system will not recover from some major errors nvme_load kernel parameter spcified in kernel command line causes issues for the Legion 5i Pro

Replace Nvidia Open Drivers

The CachyOS Hardware Detection Daemon and its chwd command could not be used to remove the open driver. It was necessary to uninstall the linux-cachyos-nvidia-open and replace it with the latest versioned proprietary Nvidia DKMS package, nvidia-dkms-580xx. After these actions, the installed nvidia packages were those shown in the following listing of a pacman command output.

	❯ sudo pacman -Ss nvidia | grep installed
cachyos-v4/libxnvctrl 595.58.03-1 [installed]
cachyos-v4/nvidia-settings 595.58.03-1 [installed]
cachyos-extra-v4/egl-gbm 1.1.3-1.1 [installed]
cachyos-extra-v4/egl-wayland 4:1.1.21-1.1 [installed]
cachyos-extra-v4/egl-wayland2 1.0.1-1.1 [installed]
cachyos-extra-v4/egl-x11 1.0.5-1.1 [installed]
cachyos-extra-v4/libvdpau 1.5-4.1 [installed]
cachyos-extra-v4/libxnvctrl 595.58.03-1.1 [installed: 595.58.03-1]
cachyos-extra-v4/nvidia-settings 595.58.03-1.1 [installed: 595.58.03-1]
cachyos/lib32-nvidia-580xx-utils 580.142-1 [installed]
cachyos/lib32-opencl-nvidia-580xx 580.142-1 [installed]
cachyos/libxnvctrl 595.58.03-1 [installed]
cachyos/linux-firmware-nvidia 1:20260309-1 [installed]
cachyos/nvidia-580xx-dkms 580.142-2 [installed]
cachyos/nvidia-580xx-utils 580.142-2 [installed]
cachyos/nvidia-settings 595.58.03-1 [installed]
cachyos/opencl-nvidia-580xx 580.142-2 [installed]
core/linux-firmware-nvidia 20260309-1 [installed: 1:20260309-1]
extra/egl-gbm 1.1.3-1 [installed: 1.1.3-1.1]
extra/egl-wayland 4:1.1.21-1 [installed: 4:1.1.21-1.1]
extra/egl-wayland2 1.0.1-1 [installed: 1.0.1-1.1]
extra/egl-x11 1.0.5-1 [installed: 1.0.5-1.1]
extra/libvdpau 1.5-4 [installed: 1.5-4.1]
extra/libxnvctrl 595.58.03-1 [installed]
extra/nvidia-prime 1.0-5 [installed]
extra/nvidia-settings 595.58.03-1 [installed]	
	

Enable X11 Plasma Session

Install and Set Graphics Mode with Envycontrol

Pre-Installation Experience

Installation

complained of 510MB EFI System Partition too small. iincreased it to 512MB. installation failed on btrfs partition because could not overwrite existing btrfs paritition a feature of btrfs.mkfs without a spcial option.deleted partition, created new partition tried installation failed. finally worked I think because I deleted partitions, rebooted live system, then created parition in the installer (or maybe in kde partition manager).the point is I've attempted to do the same thing with other distributions with no problems

Sone of the notable features of the installer:

  • choice of bootloader, with previews and descriptions; I chose grub for feature and functionality completeness, without any workarounds or further configuration
  • choice of desktop environments, with previews and descriptions
  • selection/desection of important packages to be installed
  • buggy when attempting to reuse existing Btrfs partitions, even id deleting them and recreating paritions in the installer's partitioning tool

References

  1. Wikipedia: x86-64 > Microarchitecture Levels
  2. What Is X86-64-v3?
  3. What is Link Time Optimization (LTO)
  4. Interprocedural Optimization
  5. Profile-guided optimization
  6. Profile-guided optimizations
  7. Executable and Linkable Format
  8. How is a binary executable organized? Let's explore it!
  9. BOLT: A Practical Binary Optimizer for Data Centers and Beyond
  10. CachyOS Kernel
  11. Clang 23.0.0git documentation: ThinLTO
  12. SFO17- 421 The Linux Kernel Scheduler
  13. Linux Scheduler Architecture
  14. Linux Kernel Programming Lecture 07: CPU Scheduling: CFS to EEVDF
  15. What is cachyos bore
  16. Thnx Gentoo for this experimental patch: BMQ scheduler
  17. Zircon scheduler