---
title: Allgemeine System-Anpassungen
description: Dinge, die du nach der Installation anpassen kannst
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
---

import { Tabs, TabItem, Steps } from '@astrojs/starlight/components';
import ImageComponent from '~/components/image-component.astro';

## AMD Performance-Anpassungen

### AMD P-State-Treiber
---------------------------

`amd-pstate` ist der Treiber für die Leistungsanpassung von AMD-CPUs, der einen neuen Mechanismus zur Steuerung der CPU-Frequenz für moderne AMD APU- und CPU-Serien im Linux-Kernel einführt. Der neue Mechanismus basiert auf Collaborative Processor Performance Control (CPPC), was eine feiner abgestufte Frequenzverwaltung ermöglicht als die älteren ACPI Hardware P-States.

Aktuelle AMD CPU/APU-Plattformen nutzen den ACPI-P-States-Treiber, um die CPU-Frequenz und Taktraten zu verwalten, wobei nur zwischen 3 P-States gewechselt wird. CPPC ersetzt die ACPI-P-States-Steuerung und bietet eine flexible, latenzarme Schnittstelle für den Linux-Kernel, um Leistungshinweise direkt an die Hardware zu übermitteln.

Unten findest du die 3 Betriebsmodi des `amd_pstate`-Treibers und die Kernel-Parameter, um sie beim Booten zu verwenden:

- AMD P-State (Nicht-autonomer Modus): `amd_pstate=passive`
- AMD P-State Guided (Geführter autonomer Modus): `amd_pstate=guided`
- AMD P-State EPP (Autonomer Modus): `amd_pstate=active`

:::note
Der AMD P-State EPP-Treiber wird standardmäßig verwendet, wenn keine explizite Konfiguration vorgenommen wird.
:::

Du kannst auch zur Laufzeit zwischen den Betriebsmodi wechseln, um die Optionen zu testen:

- **Autonomer Modus**: Die Plattform berücksichtigt nur die eingestellten Werte für minimale Leistung, maximale Leistung und die Energie-Leistungs-Präferenz.
   ```sh
   echo active | sudo tee /sys/devices/system/cpu/amd_pstate/status
   ```

- **Geführter-autonomer Modus**: Die Plattform stellt das Leistungslevel entsprechend der aktuellen Auslastung und innerhalb der vom Betriebssystem gesetzten Grenzen durch minimale und maximale Leistungsregister ein.
   ```sh
   echo guided | sudo tee /sys/devices/system/cpu/amd_pstate/status
   ```

- **Nicht-autonomer Modus**: Die Plattform erhält das gewünschte Leistungslevel direkt vom Betriebssystem über das Desired Performance Register.
   ```sh
   echo passive | sudo tee /sys/devices/system/cpu/amd_pstate/status
   ```

Für weitere Informationen:

*   [https://www.kernel.org/doc/html/v6.9/admin-guide/pm/amd-pstate.html](https://www.kernel.org/doc/html/v6.9/admin-guide/pm/amd-pstate.html)
*   [https://lore.kernel.org/lkml/20221110175847.3098728-1-Perry.Yuan@amd.com/](https://lore.kernel.org/lkml/20221110175847.3098728-1-Perry.Yuan@amd.com/)
*   [https://lore.kernel.org/lkml/20230119115017.10188-1-wyes.karny@amd.com/](https://lore.kernel.org/lkml/20230119115017.10188-1-wyes.karny@amd.com/)

### AMD P-State EPP konfigurieren


Um P-State EPP zu nutzen, stehen zwei CPU-Frequenz-Governor zur Verfügung: `powersave` und `performance`. Es wird empfohlen, den `powersave`-Governor zu verwenden und eine Präferenz festzulegen.

*   Powersave-Governor setzen: `sudo cpupower frequency-set -g powersave`
*   Performance-Governor setzen: `sudo cpupower frequency-set -g performance`

Um eine Präferenz festzulegen, führe den folgenden Befehl mit der gewünschten Präferenz aus:

```sh
echo power | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference
```

Verfügbare Präferenzen: `performance`, `power`, `balance_power`, `balance_performance`

Benchmarks für jede Präferenz findest du hier:
[https://lore.kernel.org/lkml/20221219064042.661122-1-perry.yuan@amd.com/](https://lore.kernel.org/lkml/20221219064042.661122-1-perry.yuan@amd.com/)

### AMD 3D V-Cache Optimierer

AMD hat einen Patch veröffentlicht, um das Cache-Scheduling auf Dual-CCD-3D-CPUs wie dem 7950X3D und 7900X3D zu optimieren.
Du musst im BIOS unter der CPPC-Option die „Driver“-Option einstellen. Dies erlaubt es, den verwendeten Modus per sysfs zu überschreiben.

Es gibt zwei Modi:
1. Frequency
2. Cache

Wenn `cache` eingestellt ist, versucht der Treiber, die Tasks zuerst auf den CCD mit dem größeren Cache zu legen, was hauptsächlich bei Spielen vorteilhaft ist.
Die `frequency`-Option versucht, die Tasks auf den zweiten CCD zu legen, der eine höhere Frequenz als der 3D-Cache-CCD hat.

Frequenz (Standard):
```sh
echo frequency | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode
```

Cache:
```sh
echo cache | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode
```

Nachdem du die Modi geändert hast, sollten die „amd preferred core stats“ eine andere Rangfolge anzeigen. Du kannst sie auslesen mit:
```sh
grep -v /sys/devices/system/cpu/cpu*/cpufreq/amd_pstate_prefcore_ranking
```

### AMD P-State Core Performance Boost

AMD Core Performance Boost, auch bekannt als AMD Turbo Core, ist eine dynamische Frequenzskalierungstechnologie von AMD, die es dem
Prozessor ermöglicht, die Betriebsfrequenz in bestimmten Prozessorversionen dynamisch anzupassen und zu steuern.
Das sorgt bei Bedarf für mehr Leistung, während im Normalbetrieb niedrigere Energie- und Wärmewerte beibehalten werden.

Seit `linux-cachyos` 6.9.6 ist der Kernel mit CPB-Unterstützung für AMDs P-State-Treiber (einschließlich `passive`, `active` und `guided`) gepatcht.
Nutzer können den Boost-Status jedes CPU-Kerns über die sysfs-Boost-Datei `/sys/devices/system/cpu/cpuX/cpufreq/boost` ändern
(X steht für die Kernnummer, z.B. cpu0 für den ersten Kern, cpu1 für den zweiten, usw.).

```sh
❯ echo 0 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/boost # Deaktiviert Boost für alle Kerne
❯ lscpu -ae # Dies zeigt, dass AMD CPB global deaktiviert ist
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE    MAXMHZ   MINMHZ       MHZ
  0    0      0    0 0:0:0:0          yes 3301.0000 400.0000 1212.8250
  1    0      0    0 0:0:0:0          yes 3301.0000 400.0000 1394.2180
  2    0      0    1 1:1:1:0          yes 3301.0000 400.0000 1204.4600

❯ echo 1 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/boost # Aktiviert Boost auf cpu0
❯ lscpu -ae
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE    MAXMHZ   MINMHZ       MHZ
  0    0      0    0 0:0:0:0          yes 4564.0000 400.0000 1393.2380
  1    0      0    0 0:0:0:0          yes 3301.0000 400.0000  400.0000
  2    0      0    1 1:1:1:0          yes 3301.0000 400.0000 2157.8469
```

CachyOS bietet auch eine Version von `power-profiles-daemon`, die einen Commit zurückportiert, welcher
Unterstützung für AMD CPB ermöglicht. AMD CPB wird deaktiviert, wenn das `powersave`-Profil verwendet wird, und bei `balanced` oder `performance` aktiviert.

Weitere Informationen findest du hier:
- https://lore.kernel.org/linux-pm/1a78eeaa-fadd-4734-aaeb-2fe11e96e198@amd.com/T/#m4a0c8917ea8fb033504055bd61512c80c85410c8
- https://lore.kernel.org/linux-pm/20240624213400.67773-1-mario.limonciello@amd.com/

## Performance-Verbesserungen

### [ADIOS I/O Scheduler](https://github.com/firelzrd/adios)

Erstellt von [firelzrd](https://github.com/firelzrd)

:::note
CachyOS enthält den stabilen Zweig von ADIOS im Kernel.

Aktuelle Version in **linux-cachyos**: `3.2.0`

Aktuelle Version in **linux-cachyos-rc**: `3.2.0`
:::

Kurze Einführung aus der README:

- *ADIOS (Adaptive Deadline I/O Scheduler) ist ein Block-Layer-I/O-Scheduler für den Linux-Kernel, der für moderne Multi-Queue-Blockgeräte (blk-mq) entwickelt wurde. Er zielt darauf ab, niedrige Latenzzeiten für I/O-Operationen zu bieten, indem er Deadline-Scheduling-Prinzipien mit einem lernbasierten, adaptiven Latenzkontrollmechanismus kombiniert.*
  - *Inspiriert von und aufbauend auf Konzepten der mq-deadline- und Kyber-I/O-Scheduler. Sein Hauptmerkmal ist die Fähigkeit, die I/O-Abschlusslatenz basierend auf vergangener Leistung und Anforderungsmerkmalen (Operationstyp, Größe) vorherzusagen und diese Vorhersage zu nutzen, um die Anforderungsdeadlines und das Batching-Verhalten dynamisch anzupassen.*

Kurz gesagt: ADIOS lernt das Latenzprofil deines Speichergeräts und nutzt dieses Wissen, um die Deadlines für I/O-Anfragen dynamisch festzulegen. Es priorisiert Anfragen in vier Stufen, von kritischen Systemoperationen (Stufe 0) bis zu Hintergrundaufgaben (Stufe 3), um ein flüssiges Nutzererlebnis zu gewährleisten. Obwohl es auf Reaktionsfähigkeit ausgelegt ist, kann sein Verhalten über sysfs-Einstellungen feinjustiert werden, um Latenz und Durchsatz auszubalancieren.

Für eine Live-Demo kannst du dir dieses [Video](https://www.youtube.com/watch?v=L9WDcEeHgy4) ansehen.

#### Wie du ADIOS aktivierst

<Tabs>
    <TabItem label='Temporär (wirkt zur Laufzeit)'>
        Diese Methode setzt den Scheduler für die aktuelle Sitzung. Die Änderung geht beim Neustart verloren.
        ```sh
        sync && echo adios | sudo tee /sys/block/<deinlaufwerk>/queue/scheduler
            # Ersetze <deinlaufwerk> durch die tatsächliche Laufwerksbezeichnung (z.B. sda, sdb, nvme0n1)
        ```
    </TabItem>
    <TabItem label='Dauerhaft nach Neustart'>
        <Steps>
            1. Öffne oder erstelle eine neue udev-Regeldatei in deinem bevorzugten Texteditor (z.B. nano, micro, vim)
                ```sh title='Beispiel'
                sudo nano /etc/udev/rules.d/60-ioschedulers.rules
                ```
            2. Füge die folgenden Regeln zur Datei hinzu. Diese Regeln wenden automatisch einen bestimmten I/O-Scheduler basierend auf dem Laufwerkstyp (HDD, SSD oder NVMe) an.
                ```text
                # HDD
                ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", \
                    ATTR{queue/scheduler}="bfq"

                # SSD
                ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", \
                    ATTR{queue/scheduler}="adios"

                # NVMe SSD
                ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", \
                    ATTR{queue/scheduler}="adios"
                ```
              3.  Speichere die Datei und schließe den Editor.
              4.  Lade die `udev`-Regeln neu, um die Änderungen sofort ohne Neustart anzuwenden.
                  ```sh
                  sudo udevadm control --reload-rules
                  sudo udevadm trigger
                  ```
        </Steps>
    </TabItem>
</Tabs>

FAQ:

- Wenn es die Reaktionsfähigkeit verbessert, warum ist es nicht standardmäßig aktiviert?
  - ADIOS befindet sich noch in aktiver Entwicklung und wird kontinuierlich getestet. Obwohl es erhebliche Vorteile für die Reaktionsfähigkeit des Desktops bietet, gilt es noch nicht als stabil genug, um der Standard für alle Workloads und Hardwaretypen zu sein. In einigen Grenzfällen könnten Fehler zu Problemen wie System-Lockups führen. Aus diesem Grund ist es eine optionale Funktion für Benutzer, die die neuesten Verbesserungen testen und davon profitieren möchten.

### NVIDIA Smooth Motion (RTX 40xx & 50xx Serie)

:::note[Spielekompatibilität.]
Spiele, die auf DX11, DX12 und Vulkan laufen.

Sowohl DXVK als auch VKD3D funktionieren ohne Probleme.

**Es werden nur 64-Bit-Anwendungen unterstützt. Smooth Motion funktioniert nicht mit 32-Bit-Anwendungen (z. B. alten DX11-Spielen).**

:::

Direkt aus der NVIDIA-Dokumentation:

*NVIDIA Smooth Motion ist ein neues, treiberbasiertes KI-Modell, das für ein flüssigeres Gameplay sorgt, indem es einen zusätzlichen Frame zwischen zwei gerenderte Frames einfügt. Für Spiele ohne DLSS Frame Generation ist NVIDIA Smooth Motion eine neue Option, um dein Spielerlebnis auf GeForce RTX 40er-Serie und neueren GPUs zu verbessern.*

- So aktivierst du NVIDIA Smooth Motion für ein Spiel:
  - Füge die folgende Umgebungsvariable hinzu:
    ```text
    NVPRESENT_ENABLE_SMOOTH_MOTION=1
    ```

FAQ:

- Warum sollte man Smooth Motion statt DLSS Frame Generation verwenden?
  - Wenn ein Spiel DLSS Frame Generation nicht unterstützt, dient Smooth Motion dank seines treiberbasierten KI-Modells als Alternative.
- Gibt es irgendwelche Nachteile bei der Verwendung von Smooth Motion?
  - Ja, die Aktivierung von Smooth Motion kann aufgrund des zusätzlichen Frame-Inferenz-Prozesses eine leichte Eingabeverzögerung verursachen.
  - Es kann zu Problemen mit Overlays von Drittanbietern kommen. Um dies zu vermeiden, füge die folgende Umgebungsvariable hinzu:
    ```text
    NVPRESENT_QUEUE_FAMILY=1
    ```
    :::note[Bei Verwendung dieser Variable kann es zu Leistungseinbußen kommen.]
    :::
- Warum zeigt MangoHud die erhöhte Framerate nicht an?
  - MangoHud berücksichtigt derzeit nicht die zusätzlich von Smooth Motion generierten Frames, was zu einer irreführenden Anzeige der Framerate führt.
    - Ein im Monitor integrierter FPS-Zähler liefert die korrekte Framerate.
- Wie ist die Bildqualität im Vergleich zu DLSS Frame Generation?
  - Die Bildqualität ist nicht ganz so gut und kann besonders in schnellen Szenen Artefakte aufweisen.
- Ist es mit externen Tools zur Begrenzung der Framerate kompatibel? Zum Beispiel: MangoHud.
  - Nein. Die Begrenzung im Spiel sollte aber problemlos funktionieren.
- Kann Smooth Motion mit DLSS Frame Generation kombiniert werden?
  - Nein. Es kann immer nur eine Methode zur Frame-Generierung aktiv sein.

## Energiespar-Anpassungen

### RCU Lazy aktivieren

RCU Lazy hilft, den Stromverbrauch bei Systemen im Leerlauf oder bei geringer Auslastung zu reduzieren. Dies kann für Laptops und Handheld-Geräte nützlich sein.
Die Verbesserung liegt bei 5-10% in Bezug auf die Energieeinsparung. Es ist jedoch wichtig zu beachten, dass diese Energiesparfunktion je nach Szenario mit einer leicht verringerten Leistung einhergehen kann.
Der linux-cachyos-deckify-Kernel hat diese Option standardmäßig aktiviert, da Energieeinsparung für diese Geräte entscheidend und notwendig ist.

Um RCU Lazy zu aktivieren, füge den folgenden Parameter zu deiner Kernel-[cmdline](/de/configuration/boot_manager_configuration/)-Parameterliste hinzu:
```text
rcutree.enable_rcu_lazy=1
```

## NVIDIA Fehlerbehebung

### NVIDIA GSP Firmware

Die NVIDIA GSP Firmware kann **„in einigen Fällen“** zu einer verringerten Leistung führen. Obwohl der NVIDIA-Treiber 555.58.02 dieses Problem weitgehend behoben hat, kann es auf bestimmten Systemen weiterhin bestehen.
Wenn du Ruckler in KDE oder in manchen Fällen eine schlechte Leistung feststellst, kannst du die GSP-Firmware mit der folgenden Konfigurationsdatei deaktivieren:
`/etc/modprobe.d/nvidia-gsp.conf`

```text
options nvidia NVreg_EnableGpuFirmware=0
```

Nachdem du die Datei erstellt hast, führe den folgenden Befehl aus:
```sh
sudo mkinitcpio -P
```

:::note
NVIDIAs [offene Kernel-Module](https://github.com/NVIDIA/open-gpu-kernel-modules) basieren auf der GSP-Firmware. Aus diesem Grund kann GSP nicht deaktiviert werden und diese modprobe-Option wird bei ihrer Verwendung ignoriert. Verwende `linux-cachyos-nvidia` oder `nvidia-dkms`.
:::

Es wird generell empfohlen, die GSP-Firmware nach jeder neuen NVIDIA-Treiberinstallation zu testen, da sie oft vorteilhafte Funktionen mit sich bringt. Außerdem hat NVIDIA hauptsächlich damit begonnen, QA-Tests mit der GSP-Firmware durchzuführen.

## Audio- und Software-Verbesserungen

### Sound von Laptop-Lautsprechern verbessern

Laptop-Lautsprecher klingen aufgrund ihrer kompakten Größe und begrenzten Hardwarefähigkeiten oft dünn und unspektakulär. [EasyEffects](https://wiki.archlinux.org/title/PipeWire#EasyEffects) kann die Klangqualität der eingebauten Lautsprecher deines Laptops durch Anwendung verschiedener Audioeffekte und benutzerdefinierter Konfigurationen erheblich verbessern.

Um anzufangen, musst du EasyEffects und die erforderlichen Abhängigkeiten installieren:

```bash
# EasyEffects installieren
sudo pacman -S easyeffects
# Zusätzliche Plugins für mehr Effekte installieren
sudo pacman -S lsp-plugins-lv2
sudo pacman -S zam-plugins
sudo pacman -S calf
sudo pacman -S mda.lv2
```

#### Konfiguration

Folge diesen Schritten, um EasyEffects zu konfigurieren:

1. Starte EasyEffects aus deinem Anwendungsmenü oder indem du `easyeffects` im Terminal eingibst.
2. Wechsle zum **Ausgabe**-Tab, um Effekte für den Ton deiner Lautsprecher zu verwalten.
3. Wechsle zum **Effekte**-Tab, um Audioeffekte hinzuzufügen, zu ändern oder anzupassen.

<ImageComponent imgsrc={import('~/assets/images/easyeffects.png')} />

##### Community-Presets verwenden

Für eine schnelle und effektive Einrichtung, beginne mit **von der Community erstellten Presets**, die für verschiedene Audio-Szenarien zugeschnitten sind:

1. Lade Presets aus dem [EasyEffects Community Presets](https://github.com/wwmm/easyeffects/wiki/Community-presets) Repository herunter.
2. Klicke in EasyEffects auf den **Presets**-Button und wähle **"Preset aus lokalem Speicher importieren"**.
3. Finde und wähle die heruntergeladene Preset-Datei aus.
4. Nach dem Import erscheint das Preset in deiner Liste – klicke auf **"Laden"**, um es auf deine Audioausgabe anzuwenden.

<ImageComponent imgsrc={import('~/assets/images/easyeffects-presets.png')} />

##### Ein eigenes Profil erstellen

Für ein persönlicheres Klangerlebnis erstelle ein eigenes Profil, das auf die Lautsprecher deines Laptops zugeschnitten ist:

1. Klicke auf den **"+"**-Button im Presets-Menü, um ein neues Preset zu erstellen (nenne es z.B. **"Laptop-Lautsprecher"**).
2. Wähle **"Laden"**, um das neue Preset zu aktivieren.
3. Füge im **Ausgabe** > **Effekte**-Tab Effekte hinzu und konfiguriere sie. Experimentiere mit Optionen wie Equalizern, Bass-Verstärkern oder Stereo-Erweiterungen.

##### Den Convolver-Effekt nutzen (Dolby Atmos Laptops)

Der **Convolver-Effekt** kann den Klang dramatisch verbessern, indem er Impulsantworten anwendet, die hochwertige Audioumgebungen simulieren. Dies erfordert jedoch eine präzise Einrichtung:

1. Füge den **Convolver**-Effekt zu deiner Effektkette im **Effekte**-Tab hinzu.
2. Lade eine Impulsantwortdatei (im `.wav`-Format), die speziell für dein Laptop-Modell ist, falls verfügbar. Du kannst online nach diesen Dateien suchen, z.B. hier:
   - https://wiki.archlinux.org/title/Lenovo_ThinkPad_T14_(AMD)_Gen_4#Speakers
   - https://github.com/m4tx/thinkpad-p14s-g4-linux/#sound
   - https://github.com/shuhaowu/linux-thinkpad-speaker-improvements/
3. **Clipping verhindern**: Der Convolver-Effekt kann die Lautstärke erheblich erhöhen. Füge einen **Limiter**-Effekt nach dem Convolver in deiner Effektkette hinzu, um Spitzen zu kontrollieren und Verzerrungen zu vermeiden.

<ImageComponent imgsrc={import('~/assets/images/easyeffects-convolver.png')} />

#### Tipps für optimale Ergebnisse

- **Experimentiere** mit verschiedenen Presets, um die beste Übereinstimmung für dein spezifisches Laptop-Modell und deine persönlichen Klangvorlieben zu finden.
- **Nimm schrittweise Anpassungen** an einzelnen Effekten vor, um Verzerrungen oder unnatürlichen Klang zu vermeiden.
- **Vergleiche durch Umschalten**: Schalte EasyEffects häufig **ein/aus**, um die Verbesserungen im Vergleich zum Standard-Audio zu bewerten.
- Suche nach **gerätespezifischen Presets oder Convolver-Impulsantworten** für beliebte Laptop-Modelle wie das **Framework Laptop 13** oder **ThinkPad T14**, um maßgeschneiderte Ergebnisse zu erzielen.
- **Autostart automatisieren**: Konfiguriere EasyEffects so, dass es automatisch beim Systemstart startet (über die App-Einstellungen), um sicherzustellen, dass dein benutzerdefiniertes Profil immer angewendet wird.
- **Presets für mehrere Geräte automatisch laden**: Nutze den **PipeWire** > **Presets Autoloading**-Tab, um spezifische Presets verschiedenen Ausgabegeräten (z.B. Lautsprecher vs. Kopfhörer) zuzuordnen, für einen nahtlosen Wechsel. <ImageComponent imgsrc={import('~/assets/images/easyeffects-autoloading.png')} />

#### Alternative zu EasyEffects

Als Alternative kannst du [JDSP4Linux](https://github.com/Audio4Linux/JDSP4Linux) ausprobieren, einen Audioeffekt-Prozessor für PipeWire- und PulseAudio-Clients.

### OBS Studio

Wir bieten in unserem Repository ein benutzerdefiniertes obs-studio-browser-Paket an, das über dem Standard-`obs-studio`-Paket empfohlen wird. Es enthält Patches, um einige der häufigen Probleme wie Cuda-Fehler und Probleme mit der virtuellen Kamera zu beheben.

```sh title='Öffne ein Terminal und führe den folgenden Befehl aus'
sudo pacman -S obs-studio-browser
# Wenn du vorher obs-studio installiert hattest, wird pacman dich fragen, ob
# du es ersetzen möchtest. Wenn ja, gib "J" ein.
```

## Swap-Konfiguration

### Von ZRam zu Zswap wechseln

Standardmäßig nutzt CachyOS ZRam für die Swap-Verwaltung. Wenn du aber lieber Zswap verwenden möchtest, kannst du mit den folgenden Schritten ganz einfach wechseln:

:::note
Diese Anleitung geht davon aus, dass du das Standard-Setup von CachyOS mit aktiviertem ZRam hast und während der Installation keine Swap-Partition oder -Datei erstellt wurde.
:::

<Steps>
    1. Deaktiviere ZRam, indem du einen Kernel-Parameter hinzufügst. [Bearbeite die Konfiguration deines Bootloaders](/de/configuration/boot_manager_configuration) und füge die folgende Zeile hinzu:
        ```text
        systemd.zram=0
        ```
    2. Erstelle eine leere Überschreibungsdatei, um die [udev-Regel von CachyOS](https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/lib/udev/rules.d/30-zram.rules) zu deaktivieren, die Zswap abschaltet:
        ```bash
        sudo touch /etc/udev/rules.d/30-zram.rules
        ```
    3. Aktiviere Zswap, indem du den folgenden Kernel-Parameter hinzufügst:
        ```text
        zswap.enabled=1 zswap.shrinker_enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=30
        ```
    4. Erstelle eine Swap-Datei für Zswap.
        <details>
            <summary>Wenn du Btrfs benutzt:</summary>
                <Steps>
                    1. Erstelle ein Btrfs-Subvolume für die Swap-Datei:
                        ```bash
                        sudo btrfs subvolume create /swap
                        ```
                    2. Erstelle eine Swap-Datei mit deiner gewünschten Größe (z.B. 8GB), indem du den `--size`-Parameter änderst:
                        ```bash "--size"
                        sudo btrfs filesystem mkswapfile --size 4g --uuid clear /swap/swapfile
                        ```
                    3. Aktiviere die Swap-Datei:
                        ```bash
                        sudo swapon /swap/swapfile
                        ```
                    4. Füge die Swap-Datei zu `/etc/fstab` hinzu, damit sie nach einem Neustart erhalten bleibt:
                        ```bash
                        sudo echo "/swap/swapfile none swap defaults 0 0" >> /etc/fstab
                        ```
                </Steps>
        </details>
        <details>
            <summary>Wenn du nicht Btrfs benutzt:</summary>
            <Steps>
                1. Erstelle eine Swap-Datei mit deiner gewünschten Größe (z.B. 8GB), indem du den `count=`-Parameter änderst:
                    ```bash "count=8"
                    sudo dd if=/dev/zero of=/swapfile bs=1G count=8
                    ```
                2. Setze die richtigen Berechtigungen für die Swap-Datei:
                    ```bash
                    sudo chmod 0600 /swapfile
                    ```
                3. Formatiere die Swap-Datei:
                    ```bash
                    sudo mkswap /swapfile
                    ```
                4. Füge die Swap-Datei zu `/etc/fstab` hinzu, damit sie nach einem Neustart erhalten bleibt:
                    ```bash
                    sudo echo "/swapfile none swap defaults 0 0" >> /etc/fstab
                    ```
                5. Aktiviere die Swap-Datei:
                    ```
                    sudo swapon /swapfile
                    ```
            </Steps>
        </details>
    5. Erstelle dein Initramfs neu, um die Änderungen zu übernehmen. Der Befehl hängt von deinem Bootloader ab:
        <details>
            <summary>systemd-boot</summary>
            ```bash
            sudo sdboot-manage gen
            ```
        </details>
        <details>
            <summary>GRUB</summary>
            ```bash
            sudo grub-mkconfig -o /boot/grub/grub.cfg
            ```
        </details>
        <details>
            <summary>Limine</summary>
            ```bash
            sudo limine-mkinitcpio
            ```
        </details>
    6. Starte dein System neu, um alle Änderungen zu übernehmen.
</Steps>
