Ottimizzazioni gaming per l'ASRock BC-250 (AMD Ryzen Embedded V2000 / Cyan Skillfish GPU) sotto Bazzite Linux.
Bazzite è il target principale, completamente testato. Lo script rileva inoltre automaticamente il tuo SO e il tuo bootloader (gestore di pacchetti e metodo per i kernel args — rpm-ostree, GRUB, Limine, systemd-boot o rEFInd), quindi gira in modalità best-effort anche sugli altri sistemi documentati per la BC-250 (SteamOS/HoloISO, CachyOS/Arch, Fedora, Debian…). La compatibilità fuori da Bazzite è validata tramite le segnalazioni della community — apri una issue se qualcosa non va sulla tua distro.
Sostituzione manuale del patcher image di vietsman, non più mantenuto per Bazzite 43+.
curl -sL https://raw.githubusercontent.com/Necrosiak/bc250-tweaks/main/bootstrap.sh | sudo bashQuesto singolo comando installa tutto per un BC-250 nuovo: i tweak di sistema più DeckyLoader e i nostri plugin (BC250-Toolkit, SkullKey, Steamcord). Poi esegui bc250-status quando vuoi per un riepilogo dello stato (temps, ventola, VRAM/UMA, RAM, tweak attivi, Proton-GE, plugin).
Lo script clona questo repo in /opt/bc250-tweaks e installa un servizio systemd che si aggiorna automaticamente ad ogni avvio (git pull + apply).
| # | Tweak | File | Descrizione |
|---|---|---|---|
| 1 | Tuned/PPD | /etc/tuned/ppd.conf |
balanced-bazzite a riposo → throughput-performance-bazzite in gioco |
| 2 | Variabili gaming | ~/.config/environment.d/gaming.conf |
RADV_DEBUG=nohiz, RADV_PERFTEST, FSR, Anti-lag, cache shader 10 GB |
| 3 | DRI unified heap | /etc/drirc |
GPU usa il pool RAM di sistema — evita OOM VRAM sui giochi APU grandi |
| 4 | Latenza Pipewire | ~/.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 | Argomenti kernel | 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 installati manualmente (assenti nell'immagine base Bazzite) |
| 8 | Switch PPD | /usr/local/bin/gamemode-{start,end}.sh |
Cambia PPD performance↔balanced via busctl all'avvio dei giochi |
| 9 | HHD | /etc/hhd/state.yml |
Profilo balanced a riposo |
| 10 | scx_lavd | /etc/scx_loader/config.toml |
Scheduler orientato alla latenza, caricato da bc250-scx-start, che si disarma se l'avvio precedente si è inceppato (vedi sotto) |
| 11 | MangoHud | ~/.config/MangoHud/MangoHud.conf |
Overlay leggero, toggle Shift+F12 |
| 12 | vkBasalt CAS | ~/.config/vkBasalt.conf |
Sharpening adattivo, toggle Home |
| 13 | Proton-GE | ~/.steam/steam/compatibilitytools.d/ |
Ultima versione GE-Proton installata |
| 14 | umr sudoers | /etc/sudoers.d/bc250-umr |
Regola NOPASSWD sudo per umr (richiesta dalla scheda CU del plugin BC250-Toolkit) |
| 15 | CU boot sudoers | /etc/sudoers.d/bc250-cu-boot |
Regole NOPASSWD sudo per la persistenza CU al boot (tee, chmod, systemctl) |
| 16 | Helper UMA | /usr/local/bin/bc250-uma-helper |
Helper root (NOPASSWD via /etc/sudoers.d/bc250-uma) per leggere/scrivere la variabile EFI UMA Frame Buffer del BIOS — usato dalla sezione VRAM (UMA) del plugin BC250-Toolkit |
| 17 | uaccess input | /etc/udev/rules.d/70-bc250-input-uaccess.rules |
Concede all'utente della sessione attiva l'accesso in lettura ai nodi tastiera/mouse (Bazzite etichetta solo i joystick) — necessario per associare un tasto fisico mentre un gioco ha il focus, es. il push-to-talk di Steamcord. |
| 18 | Core boot sudoers | /etc/sudoers.d/bc250-core-boot |
Regole NOPASSWD che permettono al Toolkit di installare il servizio 8C/16T all'avvio (tee, chmod, systemctl enable/disable) |
scx_lavd offre una schedulazione orientata alla latenza, ma su questa scheda il kernel a volte lo espelle: sched_ext: BPF scheduler "lavd_…" disabled (runnable task stall), con un task che risulta non eseguito da 35 a 45 secondi. Tutta l'interfaccia si congela — nello stesso istante alcuni servizi systemd vanno in timeout, quindi è il sistema a bloccarsi e non solo il video — poi scx_loader lo ricarica e il ciclo ricomincia.
Misurato sulla BC-250 di riferimento (6C/12T, kernel 7.2.1-ogc2, scx-scheds 1.1.3-3) il 30/08/2026: accade con --autopower e con --performance. Cambiare modalità energetica non risolve. Fra le vittime osservate c'è winedevice.exe, quindi può colpire anche durante un gioco, non solo sul desktop.
Per questo il servizio di avvio non tira a indovinare sulle versioni: osserva. bc250-scx-start conta le espulsioni dell'avvio precedente e, oltre due, si disarma lasciando in campo lo scheduler del kernel (EEVDF) invece di imporre blocchi ripetuti. Per riprovare: sudo rm /var/lib/bc250-scx/disabled e riavviare. ./status.sh mostra una riga ↳ blocages scx non appena l'avvio corrente ne ha viste.
--performance resta in uso, per un altro motivo: una scheda da mining alimentata a rete e senza batteria non ha bisogno di un profilo energetico, né tantomeno della compattazione dei core.
MANGOHUD=1 MANGOHUD_CONFIG=no_display ENABLE_VKBASALT=1 gamemoderun %command%
Il servizio bc250-tweaks.service viene eseguito ad ogni avvio:
- Verifica la rete
git pullda questo repo- Riesegue
apply.sh(idempotente — tocca solo i file modificati)
# Visualizza i log
journalctl -u bc250-tweaks -f
tail -f /var/log/bc250-tweaks.log
# Forza l'aggiornamento ora
sudo /opt/bc250-tweaks/update.sh- GPU: Cyan Skillfish, device ID
731F, vendor1002 - Alcuni giochi non riconoscono questa GPU → spoof DXVK:
DXVK_CONFIG="dxgi.customDeviceId=731F dxgi.customVendorId=1002" - TDP: ryzenadj e adjustor non supportati su V2000 (Fam17h model 71)
- Kernel da evitare: 6.15.0–6.15.6 e 6.17.8–6.17.10 (driver GPU non funzionante)
- ReBAR/SAM: la capacità Resizable BAR è presente ma si limita a 1 GB sul BC-250 (spesso lasciata a 256 MB) — insufficiente per i giochi DX12 grandi. Usare invece l'UMA Frame Buffer del BIOS.
- UE5 DX12 «out of video memory»: alcuni giochi Unreal Engine 5 in DX12 vanno in crash all'inizializzazione del render pur con VRAM libera. L'unified heap globale (tweak #3) aiuta i giochi DXVK/Vulkan ma nasconde la VRAM dedicata a VKD3D (DX12). Fix: impostare l'UMA Frame Buffer del BIOS su Auto (~8 GB su una scheda da 16 GB) e disattivare l'unified heap per gioco — il BC250 Toolkit lo fa automaticamente tramite il suo preset
ue5_dx12_oom.
- BC250 Toolkit (plugin DeckyLoader) — database giochi della community, applica le impostazioni da Steam
- AMD BC-250 Docs — wiki community BC-250 Linux
- bc250.info
Lavoriamo attivamente perché questi tweak funzionino su tutti i sistemi operativi documentati per la BC-250 (documentazione della comunità) — Bazzite, SteamOS, CachyOS/Arch, Fedora… L'obiettivo: rilevamento automatico dell'OS perché apply.sh usi il metodo giusto (argomenti kernel, pacchetti, servizi) sulla tua distribuzione.
L'IA (Claude di Anthropic e Codex di OpenAI) è stata usata nella realizzazione di questo progetto: per reverse engineering, sviluppo e documentazione. Non per grafica o scrittura creativa. Tutto ciò che viene pubblicato è riletto da un umano, e il risultato resta sotto la mia responsabilità. Se la cosa ti dà fastidio, ora lo sai.
Se questo progetto ti è utile, puoi sostenere il suo sviluppo continuo su Ko-fi.