Gaming-Optimierungen für den ASRock BC-250 (AMD Ryzen Embedded V2000 / Cyan Skillfish GPU) unter Bazzite Linux.
Bazzite ist das primäre, vollständig getestete Ziel. Das Skript erkennt außerdem automatisch dein Betriebssystem und deinen Bootloader (Paketmanager und Kernel-Args-Methode — rpm-ostree, GRUB, Limine, systemd-boot oder rEFInd) und läuft daher als Best-Effort auch auf den anderen für die BC-250 dokumentierten Systemen (SteamOS/HoloISO, CachyOS/Arch, Fedora, Debian…). Die Unterstützung außerhalb von Bazzite wird über Community-Rückmeldungen validiert — bitte erstelle ein Issue, falls auf deiner Distro etwas nicht stimmt.
Manueller Ersatz für vietsmanns Image-Patcher, der für Bazzite 43+ nicht mehr gepflegt wird.
curl -sL https://raw.githubusercontent.com/Necrosiak/bc250-tweaks/main/bootstrap.sh | sudo bashDieser eine Befehl installiert alles für einen frischen BC-250: die System-Tweaks plus DeckyLoader und unsere Plugins (BC250-Toolkit, SkullKey, Steamcord). Danach jederzeit bc250-status ausführen für einen Gesundheits-Überblick (Temps, Lüfter, VRAM/UMA, RAM, aktive Tweaks, Proton-GE, Plugins).
Das Skript klont dieses Repository nach /opt/bc250-tweaks und installiert einen systemd-Dienst, der bei jedem Boot automatisch aktualisiert (git pull + apply).
| # | Tweak | Datei | Beschreibung |
|---|---|---|---|
| 1 | Tuned/PPD | /etc/tuned/ppd.conf |
balanced-bazzite im Ruhezustand → throughput-performance-bazzite im Spiel |
| 2 | Gaming-Umgebungsvariablen | ~/.config/environment.d/gaming.conf |
RADV_DEBUG=nohiz, RADV_PERFTEST, FSR, Anti-lag, 10 GB Shader-Cache |
| 3 | DRI Unified Heap | /etc/drirc |
GPU nutzt System-RAM-Pool — verhindert VRAM OOM bei großen APU-Spielen |
| 4 | Pipewire-Latenz | ~/.config/pipewire/pipewire.conf.d/ |
quantum=512, rate=48000 |
| 5 | Sysctl Gaming | /etc/sysctl.d/99-bc250-gaming.conf |
compaction=0, numa_balancing=0, tcp_fastopen |
| 6 | Kernel-Argumente | auto (rpm-ostree / grubby / GRUB / Limine / systemd-boot / rEFInd) | amdgpu.ppfeaturemask=0xffffffff, amdgpu.gttsize=8000, split_lock_detect=off, transparent_hugepage=madvise |
| 7 | Gamemode | /usr/local/bin/ |
Daemon + Libs manuell installiert (im Bazzite-Basisimage nicht enthalten) |
| 8 | PPD-Schalter | /usr/local/bin/gamemode-{start,end}.sh |
Schaltet PPD performance↔balanced via busctl beim Spielstart |
| 9 | HHD | /etc/hhd/state.yml |
balanced-Profil im Ruhezustand |
| 10 | scx_lavd | /etc/scx_loader/config.toml |
Latenzorientierter Scheduler, geladen von bc250-scx-start — entschärft sich, wenn der vorherige Start hing (siehe unten) |
| 11 | MangoHud | ~/.config/MangoHud/MangoHud.conf |
Leichtes Overlay, Toggle Shift+F12 |
| 12 | vkBasalt CAS | ~/.config/vkBasalt.conf |
Adaptives Schärfen, Toggle Home |
| 13 | Proton-GE | ~/.steam/steam/compatibilitytools.d/ |
Neueste GE-Proton-Version installiert |
| 14 | umr sudoers | /etc/sudoers.d/bc250-umr |
NOPASSWD sudo-Regel für umr (benötigt vom CU-Tab des BC250-Toolkit-Plugins) |
| 15 | CU boot sudoers | /etc/sudoers.d/bc250-cu-boot |
NOPASSWD sudo-Regeln für CU-Boot-Persistenz (tee, chmod, systemctl) |
| 16 | UMA-Helper | /usr/local/bin/bc250-uma-helper |
Root-Helper (NOPASSWD via /etc/sudoers.d/bc250-uma) zum Lesen/Schreiben der BIOS-EFI-Variable UMA Frame Buffer — genutzt vom VRAM (UMA)-Bereich des BC250-Toolkit-Plugins |
| 17 | Eingabe-uaccess | /etc/udev/rules.d/70-bc250-input-uaccess.rules |
Gewährt dem Benutzer der aktiven Sitzung Lesezugriff auf Tastatur-/Maus-Event-Nodes (Bazzite taggt nur Joysticks) — nötig, um eine physische Taste zu belegen, während ein Spiel den Fokus hat, z. B. Steamcord Push-to-Talk. |
| 18 | Core boot sudoers | /etc/sudoers.d/bc250-core-boot |
NOPASSWD sudo-Regeln, damit das Toolkit den 8C/16T-Boot-Dienst installieren kann (tee, chmod, systemctl enable/disable) |
scx_lavd bietet latenzorientiertes Scheduling, aber auf dieser Platine wirft der Kernel ihn mitunter hinaus: sched_ext: BPF scheduler "lavd_…" disabled (runnable task stall), mit einer Task, die 35 bis 45 Sekunden nicht gelaufen ist. Die gesamte Oberfläche friert ein — im selben Moment laufen systemd-Dienste in Timeouts, es blockiert also das System und nicht nur die Anzeige — dann lädt scx_loader neu und der Zyklus beginnt von vorn.
Gemessen auf der Referenz-BC-250 (6C/12T, Kernel 7.2.1-ogc2, scx-scheds 1.1.3-3) am 30.08.2026: Es passiert mit --autopower und mit --performance. Der Energiemodus ändert daran nichts. Unter den beobachteten Opfern war winedevice.exe — es kann also auch im Spiel zuschlagen, nicht nur auf dem Desktop.
Der Boot-Dienst rät deshalb nicht an Versionen herum, er beobachtet. bc250-scx-start zählt die Evictions des vorherigen Starts und entschärft sich ab zwei selbst, statt wiederholte Freezes zu erzwingen; dann bleibt der Kernel-Scheduler (EEVDF) aktiv. Erneut versuchen: sudo rm /var/lib/bc250-scx/disabled und neu starten. ./status.sh zeigt eine Zeile ↳ blocages scx, sobald der aktuelle Start welche gesehen hat.
--performance bleibt in Gebrauch, aus einem anderen Grund: Ein netzbetriebenes Mining-Board ohne Akku braucht kein Energieprofil — und erst recht keine Kern-Kompaktierung.
MANGOHUD=1 MANGOHUD_CONFIG=no_display ENABLE_VKBASALT=1 gamemoderun %command%
Der bc250-tweaks.service läuft bei jedem Boot:
- Prüft das Netzwerk
git pullaus diesem Repository- Führt
apply.sherneut aus (idempotent — ändert nur geänderte Dateien)
# Logs anzeigen
journalctl -u bc250-tweaks -f
tail -f /var/log/bc250-tweaks.log
# Update jetzt erzwingen
sudo /opt/bc250-tweaks/update.sh- GPU: Cyan Skillfish, Device ID
731F, Vendor1002 - Einige Spiele erkennen diese GPU nicht → DXVK-Spoof:
DXVK_CONFIG="dxgi.customDeviceId=731F dxgi.customVendorId=1002" - TDP: ryzenadj und adjustor nicht unterstützt auf V2000 (Fam17h model 71)
- Zu vermeidende Kernel: 6.15.0–6.15.6 und 6.17.8–6.17.10 (defekter GPU-Treiber)
- ReBAR/SAM: Die Resizable-BAR-Fähigkeit ist vorhanden, ist auf dem BC-250 aber auf 1 GB begrenzt (oft bei 256 MB belassen) — zu klein für große DX12-Titel. Stattdessen den BIOS-UMA Frame Buffer verwenden.
- UE5 DX12 „out of video memory": Manche Unreal-Engine-5-Spiele in DX12 stürzen bei der Render-Initialisierung ab, obwohl noch VRAM frei ist. Der globale Unified Heap (Tweak #3) hilft DXVK/Vulkan-Spielen, verbirgt aber den dedizierten VRAM vor VKD3D (DX12). Fix: BIOS-UMA Frame Buffer auf Auto setzen (~8 GB auf einer 16-GB-Karte) und den Unified Heap pro Spiel deaktivieren — das BC250 Toolkit macht das automatisch über sein
ue5_dx12_oom-Preset.
- BC250 Toolkit (DeckyLoader-Plugin) — Community-Spieldatenbank, Einstellungen direkt aus Steam anwenden
- AMD BC-250 Docs — BC-250 Linux Community-Wiki
- bc250.info
Wir arbeiten aktiv daran, dass diese Tweaks auf jedem für den BC-250 dokumentierten Betriebssystem (Community-Doku) laufen — Bazzite, SteamOS, CachyOS/Arch, Fedora… Ziel: automatische OS-Erkennung, damit apply.sh die richtige Methode (Kernel-Argumente, Pakete, Dienste) für deine Distribution verwendet.
Bei der Entwicklung dieses Projekts wurde KI (Claude von Anthropic und Codex von OpenAI) eingesetzt — für Reverse Engineering, Entwicklung und Dokumentation. Nicht für Grafik oder kreatives Schreiben. Alles Veröffentlichte wird von einem Menschen geprüft, und ich stehe für das Ergebnis gerade. Wer damit nicht einverstanden ist, weiß nun Bescheid.
Wenn dir dieses Projekt hilft, kannst du seine weitere Entwicklung auf Ko-fi unterstützen.