From fec46ef46f71e5ef5d1b642a2c14d0f6b55df1ae Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 6 Sep 2026 22:50:54 +0200 Subject: [PATCH] Feature: systemd-oomd gegen Einfrieren bei Speicherdruck aktiviert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ergänzt das bestehende zram-Swap um einen modernen, cgroup-v2/PSI- basierten Out-of-Memory-Schutz, um Systemfreezes bei gleichzeitiger Speicher-/Swap-Auslastung (z. B. Spiel + Discord + Browser) zu verhindern. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_017WMUd2fGsPCtTCVQkSS5TA --- AGENTS.md | 2 +- README.md | 3 +++ config/packages/01-base.list | 1 + stages/06-services.sh | 7 +++++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 352d906..5543494 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -44,7 +44,7 @@ Dieses Repository ist ein modulares, automatisiertes Setup- und Konfigurations-F │ ├── 03-bootloader.sh # GRUB Kernel-Parameter, Vimix-Theme, Plymouth Solar │ ├── 04-packages.sh # Installation der thematischen Paketlisten │ ├── 05-fonts.sh # Download & Installation von Coding- & Nerd-Fonts -│ ├── 06-services.sh # Aktivierung von AppArmor, Docker, Libvirt, zram, Ollama, GameMode/CoreCtrl +│ ├── 06-services.sh # Aktivierung von AppArmor, Docker, Libvirt, zram, Ollama, GameMode/CoreCtrl, systemd-oomd │ ├── 07-skel-and-user.sh # /etc/skel Vorlagen, ZSH-Shell-Setzen, Dotfiles-Sync │ ├── 08-flatpaks.sh # Flathub Setup, Flatpak-Paketlisten-Installation │ ├── 09-apps.sh # Spotify, Waydroid, OpenDeck, Desktop-Starter, MIME-Types diff --git a/README.md b/README.md index 8234640..9417e9d 100644 --- a/README.md +++ b/README.md @@ -151,6 +151,9 @@ Installiere nur bestimmte Phasen (z. B. nur Paketlisten und Schriften): - **MangoHud**: `data/skel/.config/MangoHud/MangoHud.conf` liefert ein vorkonfiguriertes Overlay (FPS, Frametime, CPU/GPU-Temperatur & -Takt, VRAM/RAM, GameMode-Indikator), das über `stages/07-skel-and-user.sh` automatisch für neue und bestehende Benutzer bereitgestellt wird. Umschalten mit `Shift+F12` (Position mit `Shift+F11`). - **CoreCtrl**: Für Fankurven, Power-States und Undervolting von AMD-CPU/GPU. Eine PolicyKit-Regel (`90-corectrl.rules`) erlaubt Mitgliedern der `sudo`-Gruppe den Start ohne wiederholte Passwortabfrage. +### systemd-oomd (Out-of-Memory-Schutz) +- Wird aktiviert, um Einfrieren des Systems bei gleichzeitiger Speicher-/Swap-Auslastung (Spiel + Discord + Browser) zu verhindern – ergänzt das bestehende zram-Swap. + ### CPU P-State & Kernel-Parameter In `stages/03-bootloader.sh` wird der CPU-Hersteller automatisch ermittelt und in `/etc/default/grub` eingetragen: - **AMD CPUs**: `amd_pstate=active` diff --git a/config/packages/01-base.list b/config/packages/01-base.list index a483e85..9308709 100644 --- a/config/packages/01-base.list +++ b/config/packages/01-base.list @@ -69,6 +69,7 @@ ripgrep rpi-imager shellcheck sl +systemd-oomd systemd-timesyncd tar tealdeer diff --git a/stages/06-services.sh b/stages/06-services.sh index 3fd838a..89add4a 100755 --- a/stages/06-services.sh +++ b/stages/06-services.sh @@ -190,4 +190,11 @@ if [[ -f "$SCRIPT_DIR/data/etc/polkit-1/rules.d/90-corectrl.rules" ]]; then log_success "CoreCtrl PolicyKit rule installed for the 'sudo' group." fi +# 10. systemd-oomd Out-of-Memory Protection +log_substep "Enabling systemd-oomd out-of-memory protection..." +if command_exists systemctl; then + systemctl enable --now systemd-oomd.service 2>/dev/null || log_warn "Could not enable systemd-oomd.service." + log_success "systemd-oomd enabled (protects against freezes under heavy memory/swap pressure)." +fi + log_success "Stage 06: System services configuration completed successfully!"