Optimisations gaming pour l'ASRock BC-250 (AMD Ryzen Embedded V2000 / Cyan Skillfish GPU) sous Bazzite Linux.
Bazzite est la cible principale, entièrement testée. Le script détecte aussi automatiquement ton OS et ton bootloader (gestionnaire de paquets et méthode de kernel args — rpm-ostree, GRUB, Limine, systemd-boot ou rEFInd), et tourne donc en best-effort sur les autres systèmes documentés pour la BC-250 (SteamOS/HoloISO, CachyOS/Arch, Fedora, Debian…). La compatibilité hors Bazzite est validée via les retours de la communauté — ouvre une issue si quelque chose cloche sur ta distro.
Remplacement manuel du patcher image de vietsman, non maintenu pour Bazzite 43+.
curl -sL https://raw.githubusercontent.com/Necrosiak/bc250-tweaks/main/bootstrap.sh | sudo bashCette seule commande installe tout pour un BC-250 neuf : les tweaks système plus DeckyLoader et nos plugins (BC250-Toolkit, SkullKey, Steamcord). Ensuite, lance bc250-status à tout moment pour un résumé santé d'un coup d'œil (temps, ventilo, VRAM/UMA, RAM, tweaks actifs, Proton-GE, plugins).
Le script clone ce repo dans /opt/bc250-tweaks et installe un service systemd qui se met à jour automatiquement à chaque boot (git pull + apply).
| # | Tweak | Fichier | Description |
|---|---|---|---|
| 1 | Tuned/PPD | /etc/tuned/ppd.conf |
balanced-bazzite au repos → throughput-performance-bazzite en jeu |
| 2 | Variables gaming | ~/.config/environment.d/gaming.conf |
RADV_DEBUG=nohiz, RADV_PERFTEST, FSR, Anti-lag, cache shaders 10 Go |
| 3 | DRI unified heap | /etc/drirc |
GPU utilise le pool RAM système — évite OOM VRAM sur gros jeux APU |
| 4 | Pipewire latence | ~/.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 | Kargs 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 installés manuellement (absent de l'image Bazzite) |
| 8 | Switch PPD | /usr/local/bin/gamemode-{start,end}.sh |
Bascule PPD performance↔balanced via busctl au lancement des jeux |
| 9 | HHD | /etc/hhd/state.yml |
Profil balanced au repos |
| 10 | scx_lavd | /etc/scx_loader/config.toml |
Scheduler orienté latence, chargé par bc250-scx-start — qui se désarme si le boot précédent a calé (voir plus bas) |
| 11 | MangoHud | ~/.config/MangoHud/MangoHud.conf |
Overlay léger, toggle Shift+F12 |
| 12 | vkBasalt CAS | ~/.config/vkBasalt.conf |
Sharpening adaptatif, toggle Home |
| 13 | Proton-GE | ~/.steam/steam/compatibilitytools.d/ |
Dernière version GE-Proton installée |
| 14 | umr sudoers | /etc/sudoers.d/bc250-umr |
Règle NOPASSWD pour umr (requis par l'onglet CU du plugin BC250-Toolkit) |
| 15 | CU boot sudoers | /etc/sudoers.d/bc250-cu-boot |
Règles NOPASSWD pour la persistance CU au boot (tee, chmod, systemctl) |
| 16 | Helper UMA | /usr/local/bin/bc250-uma-helper |
Helper root (NOPASSWD via /etc/sudoers.d/bc250-uma) pour lire/écrire la variable EFI UMA Frame Buffer du BIOS — utilisé par la section VRAM (UMA) du plugin BC250-Toolkit |
| 17 | uaccess entrées | /etc/udev/rules.d/70-bc250-input-uaccess.rules |
Donne à l'utilisateur de la session active l'accès en lecture aux nœuds clavier/souris (Bazzite ne tague que les joysticks) — nécessaire pour lier une touche physique pendant qu'un jeu a le focus, ex. le push-to-talk de Steamcord. |
| 18 | Core boot sudoers | /etc/sudoers.d/bc250-core-boot |
Règles NOPASSWD permettant au Toolkit d'installer le service 8C/16T au boot (tee, chmod, systemctl enable/disable) |
scx_lavd apporte un ordonnancement orienté latence, mais sur cette carte le noyau l'évince parfois : sched_ext: BPF scheduler "lavd_…" disabled (runnable task stall), avec une tâche annoncée comme n'ayant pas tourné pendant 35 à 45 secondes. Toute l'interface gèle — des services systemd échouent en timeout au même instant, c'est donc bien le système qui bloque et pas seulement l'affichage — puis scx_loader le relance et le cycle recommence.
Mesuré sur la BC-250 de référence (6C/12T, kernel 7.2.1-ogc2, scx-scheds 1.1.3-3) le 30/08/2026 : ça se produit en --autopower et en --performance. Changer le mode d'énergie n'y change rien. Parmi les victimes relevées, winedevice.exe — ça peut donc aussi frapper en jeu, pas seulement au bureau.
Le service de boot ne devine donc aucune version : il observe. bc250-scx-start compte les évictions du boot précédent et, au-delà de deux, se désarme et laisse l'ordonnanceur du noyau (EEVDF) en place plutôt que d'imposer des gels à répétition. Pour réessayer : sudo rm /var/lib/bc250-scx/disabled puis redémarrer. ./status.sh affiche une ligne ↳ blocages scx dès que le boot courant en a vu.
--performance reste utilisé, pour une autre raison : une carte de minage alimentée sur secteur, sans batterie, n'a que faire d'un profil d'énergie — et encore moins d'une compaction de cœurs.
MANGOHUD=1 MANGOHUD_CONFIG=no_display ENABLE_VKBASALT=1 gamemoderun %command%Le service bc250-tweaks.service s'exécute à chaque boot :
- Vérifie le réseau
git pulldepuis ce repo- Relance
apply.sh(idempotent — ne touche qu'aux fichiers différents)
# Voir les logs
journalctl -u bc250-tweaks -f
tail -f /var/log/bc250-tweaks.log
# Forcer une mise à jour maintenant
sudo /opt/bc250-tweaks/update.sh- GPU : Cyan Skillfish, device ID
731F, vendor1002 - Certains jeux ne reconnaissent pas ce GPU → spoof DXVK :
DXVK_CONFIG="dxgi.customDeviceId=731F dxgi.customVendorId=1002" - TDP : ryzenadj et adjustor non supportés sur V2000 (Fam17h model 71)
- Kernels à éviter : 6.15.0–6.15.6 et 6.17.8–6.17.10 (driver GPU broken)
- ReBAR/SAM : la capacité Resizable BAR existe mais plafonne à 1 Go sur le BC-250 (souvent laissée à 256 Mo) — insuffisant pour les gros jeux DX12. Utiliser l'UMA Frame Buffer du BIOS à la place.
- UE5 DX12 « out of video memory » : certains jeux Unreal Engine 5 en DX12 crashent à l'init du rendu alors qu'il reste de la VRAM libre. Le unified heap global (tweak #3) aide les jeux DXVK/Vulkan mais masque la VRAM dédiée à VKD3D (DX12). Fix : régler l'UMA Frame Buffer du BIOS sur Auto (~8 Go sur une carte 16 Go) et désactiver le unified heap par jeu — le BC250 Toolkit le fait automatiquement via son preset
ue5_dx12_oom.
- BC250 Toolkit (plugin DeckyLoader) — base de données de jeux optimisés, applicable depuis Steam
- AMD BC-250 Docs — wiki communautaire BC-250 Linux
- bc250.info
Nous faisons le nécessaire pour que ces tweaks fonctionnent sur tous les systèmes d'exploitation documentés pour le BC-250 (doc communautaire) — Bazzite, SteamOS, CachyOS/Arch, Fedora… L'objectif : détection automatique de l'OS pour qu'apply.sh utilise la bonne méthode (arguments noyau, paquets, services) sur votre distribution.
L'IA (Claude d'Anthropic et Codex d'OpenAI) a été utilisée dans la réalisation de ce projet — pour la rétro-ingénierie, le développement et la documentation. Elle n'a pas servi pour de l'art ni de l'écriture créative. Tout ce qui est publié est relu par un humain, et le résultat reste sous ma responsabilité. Si cela vous dérange, vous voilà informé.
Si ce projet vous est utile, vous pouvez soutenir son développement continu sur Ko-fi.