docs: add verified CPU OC benchmarks, fix CoolerControl install, add fan curve guide

- CPU OC results table (3500-3900 MHz tested with 7zip)
- bc250_smu_oc installation and permanent setup guide
- Dynamic CPU scaling: 800 MHz idle → 3900 MHz load (schedutil + SMU OC)
- Fix CoolerControl COPR repo (codifryed/CoolerControl, not terra)
- Add lightweight systemd fan curve script as alternative to CoolerControl
- Note about hwmon path changes between kernels
This commit is contained in:
Martin
2026-03-21 20:31:44 +01:00
parent 3f4d9d7d85
commit 5208722669
3 changed files with 93 additions and 168 deletions

View File

@@ -1,159 +0,0 @@
# Docs Update Brief — March 2026
## Sources of Truth (in priority order)
1. **mothenjoyer69/bc250-documentation** (GitHub) — the original community docs, maintained by the OG devs
2. **BC250 Discord resource channels** — where technical discoveries happen first
3. **r/BC250Gaming subreddit** — user-facing questions and builds
## Critical Issues to Fix
### 1. Community is calling the docs "AI generated outdated garbage"
Discord quotes (March 5-7):
- "really wouldn't use that guide it's not only outdated but it's AI generated outdated garbage"
- "don't trust anything except the section on BIOS flashing"
- "I keep vacillating between making an MR to fix the whole dang thing and not wanting to waste my time on correcting AI slop"
- "Problem is that it's SEO'd better than actually truthful resources"
### 2. Governor Landscape (MAJOR UPDATE NEEDED)
**Current state (March 2026):**
- **cyan-skillfish-governor-tt** — filippor's thermal throttling version. DEFAULT for Bazzite/Fedora via COPR `filippor/bazzite`. Service name: `cyan-skillfish-governor-tt`
- **cyan-skillfish-governor-smu** (NEW Jan 18 2026) — filippor's SMU variant. **Bypasses kernel patches entirely.** AUR: `cyan-skillfish-governor-smu`, COPR: `filippor/bazzite`
- **oberon-governor** — original by mothenjoyer69. COPR: `@exotic-soc/oberon-governor`. Still works, considered legacy but stable
- **NexGen3D setup script** — `github.com/NexGen-3D-Printing/SteamMachine` — installs cyan-skillfish-governor-tt + zram + CPU mitigations. De facto standard for Bazzite beginners
**filippor service name change (Dec 13 2025):**
- Renamed from `cyan-skillfish-governor` to `cyan-skillfish-governor-tt`
- Config folder moved from `/etc/cyan-skillfish-governor/` to `/etc/cyan-skillfish-governor-tt/`
- Migration: `sudo cp /etc/cyan-skillfish-governor/config.toml /etc/cyan-skillfish-governor-tt/config.toml`
**Minimum voltage bug:** Setting min voltage below 700mV locks GPU to 1500MHz. Must be ≥700mV.
### 3. Bazzite Kernel is Pre-Patched
- The GPU frequency range kernel patch is **already included in Bazzite's kernel**
- Manual kernel patching instructions on the overclocking page are **unnecessary for Bazzite users**
- The SMU governor also bypasses the need for kernel patching on ANY distro
- For CachyOS/Arch, either patch kernel or use SMU governor
### 4. ACPI Fix is Essential (not optional)
- Required for C-State support
- Without it, no proper power management
- GitHub: `bc250-collective/bc250-acpi-fix`
### 5. Mesa 25.1 Upstream Support
- Mesa 25.1 has upstream cyan-skillfish support
- mothenjoyer says: "should be shipped by most big distros at this point"
### 6. mothenjoyer's docs say:
- VRAM allocation: set to **512MB** for best APU experience (not 4/12 split)
- J1000 is standard 8-pin PCIe power (already fixed in our docs)
- ttm.pages_limit=3959290 and ttm.page_pool_size=3959290 kernel params needed for >8GB shared memory
- nct6683 driver for sensors (force=true needed), NOT nct6686 — check what our docs say
- "These boards more or less just work now" — install distro, install governor, done
- Windows: "No" — GPU not supported by any drivers
- Don't use Smokeless_UMAF — may cause permanent damage
- HW encode/decode does NOT work (VCN firmware blocked by Sony)
### 7. WiFi Drivers Issue (#10)
- User reported: installing performance mode killed wifi drivers
- Likely related to kernel swap or driver module changes during advanced setup
- Need warning on relevant page
## Specific Factual Errors Called Out by Community
1. **PCIe is 2.0 x2, NOT 3.0** — sapoperro flagged this Nov 22. mothenjoyer confirms 2.0
2. **"980 MHz is unstable across all boards"** — filippor questioned this Nov 22. Likely AI hallucination. Remove or caveat
3. **Case links were broken** — some fixed, verify all remain working
4. **Kernel 6.17.8 has a BC250 GPU bug** — fixed in 6.18, NOT backported. Important for CachyOS/Arch users. See https://gitlab.freedesktop.org/drm/amd/-/issues/4721
5. **nct6683 vs nct6686** — mothenjoyer says nct6683 with force=true. Check what our docs say
6. **HW encode/decode does NOT work** — VCN firmware blocked by Sony. If docs suggest it works, fix it
7. **ttm kernel params** — ttm.pages_limit=3959290 and ttm.page_pool_size=3959290 needed for >8GB shared memory
8. **Smokeless_UMAF warning** — "Don't try it, you may cause permanent damage" per mothenjoyer
## Alternative Community Guides (reference, don't copy)
- **DeathStalker Grimoire**: https://github.com/DeathStalker471/bc250theGrimoire — community-approved step-by-step guide in grimdark fiction style. Covers heatsink mod, thermal paste, BIOS flash, governor setup
- **NexGen3D SteamMachine scripts**: https://github.com/NexGen-3D-Printing/SteamMachine — automated setup for Bazzite
- **filippor's instructions** (Dec 15 on Discord): `dnf copr enable filippor/bazzite``dnf install cyan-skillfish-governor-tt``systemctl status cyan-skillfish-governor-tt`
## What NOT to Change
- BIOS flashing section — was rewritten by deathstalkerjr, considered accurate by the community
- Site structure — don't reorganize
- Cases catalogue — recently updated (145 designs)
## Additional Community Criticism (from Discord flex-chat + help threads)
### Specific pages called out:
- **quick-start.md Step 5 "Remove nomodeset"** — user says editing grub directly is outdated on Bazzite, should use user.cfg instead (Jan 8, bearofberlin)
- **hardware/power.md** — "outdated infos saying vram can run very hot and needs cooling and power supply needs 8 pins because 6 pins not recommended" (Dec 17, akxfile)
- **hardware/cooling.md** — "ram cooling nonsense" flagged (Dec 17, akxfile)
- **bios/overclocking.md** — "AI generated outdated garbage", "don't bother with manual patching" (Mar 4-6)
- **linux/bazzite.md** — "has issues" (Nov 30, deathstalkerjr)
- **getting-started/quick-start.md** — user followed it, couldn't find pp_dpm_sclk (card0 vs card1), empty grub file (Feb 4, ruben2099)
- **General sentiment** (Feb 2, big_trov): "It did that because it is ai generated slop"
- **General sentiment** (Feb 10, pops1cl): "docs seem a little outdated"
### GPU governor crash bug (IMPORTANT for troubleshooting)
- User reports (Feb 26, nohanmv): cyan-skillfish-governor can cause black screen on GPU reset. If GPU crashes while governor is running, it can't reset properly → stuck black screen. Workaround: disable governor before playing crash-prone games. This NEEDS to be documented in troubleshooting.
## VRAM Allocation Controversy
- mothenjoyer says: 512MB best for general APU use
- akxfile (Feb 23): "idk why everyone say 512 is good for gaming" — needed 6-8GB to stop crashes in Expedition 33
- Community consensus seems to be: 512MB for most games, but some newer/heavier titles need 4-8GB
- Docs should present both options with use cases, not just one recommendation
## Overclocking Page Issues
- FPS numbers (Star Wars Battlefront 2: 80-85→120-130 FPS +50%) — looks AI-generated, unverifiable
- Presents kernel patch as essential when Bazzite already includes it
- Should lead with "install a governor" not "patch your kernel"
- SMU governor (Jan 2026) bypasses all kernel patching — this is the modern approach
## Quick-Start Grub Issue
- Page tells users to edit /etc/default/grub directly
- On Bazzite (immutable), this is wrong — should use user.cfg
- User bearofberlin (Jan 8) flagged this
## NexGen3D Setup Scripts (the "just works" approach)
- https://github.com/NexGen-3D-Printing/SteamMachine
- Setup-16GB.sh — GPU governor + zram + CPU mitigations
- Setup-CPU.sh — CPU overclock + ACPI fix
- SteamMachinePro/ — full pro setup guide
- Community adapts these for CachyOS too (amirseni, Mar 2)
## CRITICAL: Native Support Status (March 2026)
The docs were written when BC250 needed lots of workarounds. As of March 2026, support is mostly NATIVE:
**Mesa:** 25.1+ has upstream cyan-skillfish support (landed May 2025). Fedora 43 ships mesa 25.x/26.x. All major distros have it.
**Kernel (as of March 18 2026):**
- 7.0-rc4 mainline
- 6.19.8 stable
- 6.18.18 LTS
- Bazzite includes frequency patch in its kernel
**Fedora:** 43 is current stable, 44 Beta just released (ships 6.19 + GNOME 50). Fedora 42 is EOL.
**CachyOS:** March 2026 release is latest.
**mothenjoyer (March 2026):** "These boards more or less just work now, and all you need to do is install a distro, install the GPU governor, and then go to town."
IMPORTANT: The docs reference old kernel versions (6.12-6.17) and old Fedora (42). Update to reflect current versions.
What's ACTUALLY still needed beyond a standard distro install:
1. Flash modded BIOS (for VRAM allocation + exposed settings)
2. Install a GPU governor (cyan-skillfish-governor-tt or -smu)
3. ACPI fix for C-States
4. ttm kernel params for >8GB shared memory
5. nct6683 module with force=true for sensors
Everything else (mesa, kernel, RADV) should be stock. Remove workarounds for things that are now native.
## Cross-Reference Map
Discord channel → Doc page:
- `Bazzite OS for starters` → linux/bazzite.md
- `oberon-governor optimization` → system/governor.md
- `Script to Install Governor and Fixes` → system/governor.md, linux/bazzite.md
- `CPU Overclocking & Undervolting Tools` → bios/overclocking.md
- `Increased GPU frequency range kernel patch` → linux/kernel.md
- `Making CachyOS work` → linux/cachyos.md
- `GPU Control for BC-250` → new tool, mention in governor.md
- `BIOS update/flasher program` → bios/flashing.md (DO NOT CHANGE - community approved)
- `zswap instead of zram` → could add to system/
- `Mem Timing Utility` → could add to bios/overclocking.md
Discord exports: ~/clawd/data/bc250-discord/ (35 resource channel files, ~8.8MB total)

View File

@@ -357,19 +357,53 @@ CoolerControl provides a GUI for creating custom fan curves.
ujust install-coolercontrol
# Fedora
sudo dnf copr enable terra/terra
sudo dnf install liquidctl coolercontrol
sudo dnf copr enable codifryed/CoolerControl
sudo dnf install coolercontrol
sudo systemctl enable --now coolercontrold
# Arch
yay -S coolercontrol
```
Web UI available at `https://localhost:11987` after installation.
**Configuration:**
1. Launch CoolerControl
2. Select BC-250 fan header
3. Create custom curve (e.g., 30% at 50°C, 100% at 80°C)
1. Open CoolerControl web UI or launch the GUI app
2. Select the nct6686 device (BC-250's SuperIO chip)
3. Create custom curve on pwm2 (Pump Fan header) using k10temp Tctl as source
4. Apply and test
### Systemd Fan Curve (Lightweight Alternative)
If you prefer a simple script without a GUI:
```bash
# Create fan curve script
sudo tee /usr/local/bin/bc250-fancurve << 'SCRIPT'
#!/bin/bash
HWMON_PWM=/sys/class/hwmon/hwmon1/pwm2
HWMON_ENABLE=/sys/class/hwmon/hwmon1/pwm2_enable
TEMP_INPUT=/sys/class/hwmon/hwmon3/temp1_input
echo 1 > $HWMON_ENABLE
while true; do
TEMP=$(($(cat $TEMP_INPUT) / 1000))
if [ $TEMP -le 40 ]; then PWM=60
elif [ $TEMP -le 50 ]; then PWM=80
elif [ $TEMP -le 60 ]; then PWM=120
elif [ $TEMP -le 70 ]; then PWM=160
elif [ $TEMP -le 80 ]; then PWM=200
elif [ $TEMP -le 85 ]; then PWM=230
else PWM=255; fi
echo $PWM > $HWMON_PWM
sleep 3
done
SCRIPT
sudo chmod +x /usr/local/bin/bc250-fancurve
```
!!!note "hwmon numbering"
hwmon paths may change between kernel versions or reboots. Verify `cat /sys/class/hwmon/hwmon*/name` to find the correct hwmon for nct6686 (fan control) and k10temp (CPU temperature).
### BIOS Fan Settings
The BIOS offers three fan modes:

View File

@@ -641,11 +641,61 @@ sudo systemctl restart cyan-skillfish-governor-tt
# Monitor temperatures
```
**Known Limits:**
- **1000 MHz:** Minimum safe frequency on stock kernel
**Known GPU Limits:**
- **350 MHz:** Minimum with kernel frequency range patch
- **1000 MHz:** Minimum on stock kernel
- **2000 MHz @ 1000mV:** Safe starting point
- **2100-2175 MHz @ 1025mV:** Works on many boards, test thoroughly
- **2230 MHz:** Maximum with kernel patch, requires good cooling
- **2230 MHz:** Maximum confirmed stable with kernel patch, requires good cooling
## CPU Overclocking with bc250_smu_oc
The [bc250_smu_oc](https://github.com/bc250-collective/bc250_smu_oc) tool overclocks the CPU via SMU commands. It raises the boost clock ceiling while keeping dynamic frequency scaling intact.
### Installation
```bash
git clone https://github.com/bc250-collective/bc250_smu_oc.git
cd bc250_smu_oc
pip install --user .
```
### Testing Frequencies
```bash
# Test 3700 MHz (auto-tunes voltage)
sudo bc250-detect -f 3700 -v 1231
# Test with --keep to maintain OC after tool exits
sudo bc250-detect -f 3900 -v 1280 -k
```
### Verified CPU Overclock Results (Fedora 43, kernel 6.19.8)
| Frequency | Auto-Tuned Voltage | 7zip MIPS | Temp (full load) | vs Stock |
|-----------|-------------------|-----------|------------------|----------|
| 3500 (stock) | auto | 26,062 | 60°C | baseline |
| 3600 MHz | 1150 mV | 26,518 | 65°C | +1.7% |
| 3700 MHz | 1199 mV | 27,212 | 68°C | +4.4% |
| 3800 MHz | 1250 mV | 27,919 | 72°C | +7.1% |
| 3900 MHz | 1275 mV | 28,410 | 75°C | +9.0% |
| 4000 MHz | — | throttles | 77°C | ❌ |
!!!note "Cooling Matters"
These results were obtained with a fan curve service ramping PWM based on temperature. With the stock fan at PWM 80 (~1400 RPM), 3900 MHz throttles. Good cooling extends the OC headroom.
### Making CPU OC Permanent
```bash
# Test and generate config
sudo bc250-detect -f 3900 -v 1280 -k -c /etc/bc250-overclock.conf
# Install as systemd service
sudo bc250-apply -a -i /etc/bc250-overclock.conf
sudo systemctl enable bc250-smu-oc
```
The OC service raises the boost ceiling at boot. Combined with ACPI P-States and the `schedutil` governor, the CPU scales dynamically: **800 MHz at idle → 3900 MHz under load**.
!!!warning "Overclocking Risks"
Overclocking can cause instability, crashes, and potentially hardware damage. Always monitor temperatures and test thoroughly.
@@ -736,4 +786,4 @@ echo schedutil | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
---
**Last Updated:** 2026-03-18
**Last Updated:** 2026-03-21