From b3bf9eb724dd0b415223f5808cac40918cd276f1 Mon Sep 17 00:00:00 2001 From: Martin Date: Fri, 21 Nov 2025 21:59:00 +0100 Subject: [PATCH] Initial commit: AMD BC250 Documentation - MkDocs site with Material theme (teal/cyan, system theme matching) - 20 comprehensive documentation pages - Content from 9,716 Discord messages + GitHub sources - GitHub Actions workflow for automated deployment - Custom compact styling optimized for wide displays Coverage: - Getting Started (3 pages) - Hardware (4 pages) - BIOS & Firmware (4 pages) - Linux Setup (4 pages) - System Configuration (1 page) - Gaming & Performance (1 page) - Troubleshooting (1 page) - Reference (1 page) --- .github/workflows/ci.yml | 49 +++ .gitignore | 48 +++ README.md | 81 ++++ docs/bios/flashing.md | 374 ++++++++++++++++ docs/bios/overclocking.md | 394 +++++++++++++++++ docs/bios/recovery.md | 411 ++++++++++++++++++ docs/bios/vram.md | 370 ++++++++++++++++ docs/gaming/compatibility.md | 400 +++++++++++++++++ docs/getting-started/introduction.md | 108 +++++ docs/getting-started/prerequisites.md | 246 +++++++++++ docs/getting-started/quick-start.md | 195 +++++++++ docs/hardware/cooling.md | 463 ++++++++++++++++++++ docs/hardware/display.md | 417 ++++++++++++++++++ docs/hardware/power.md | 410 ++++++++++++++++++ docs/hardware/specifications.md | 237 +++++++++++ docs/index.md | 135 ++++++ docs/linux/distributions.md | 385 +++++++++++++++++ docs/linux/fedora.md | 345 +++++++++++++++ docs/linux/kernel.md | 385 +++++++++++++++++ docs/linux/mesa.md | 461 ++++++++++++++++++++ docs/reference/quick-reference.md | 385 +++++++++++++++++ docs/stylesheets/extra.css | 334 +++++++++++++++ docs/system/governor.md | 514 ++++++++++++++++++++++ docs/troubleshooting/display.md | 589 ++++++++++++++++++++++++++ mkdocs.yml | 191 +++++++++ 25 files changed, 7927 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 README.md create mode 100644 docs/bios/flashing.md create mode 100644 docs/bios/overclocking.md create mode 100644 docs/bios/recovery.md create mode 100644 docs/bios/vram.md create mode 100644 docs/gaming/compatibility.md create mode 100644 docs/getting-started/introduction.md create mode 100644 docs/getting-started/prerequisites.md create mode 100644 docs/getting-started/quick-start.md create mode 100644 docs/hardware/cooling.md create mode 100644 docs/hardware/display.md create mode 100644 docs/hardware/power.md create mode 100644 docs/hardware/specifications.md create mode 100644 docs/index.md create mode 100644 docs/linux/distributions.md create mode 100644 docs/linux/fedora.md create mode 100644 docs/linux/kernel.md create mode 100644 docs/linux/mesa.md create mode 100644 docs/reference/quick-reference.md create mode 100644 docs/stylesheets/extra.css create mode 100644 docs/system/governor.md create mode 100644 docs/troubleshooting/display.md create mode 100644 mkdocs.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f0820dd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,49 @@ +name: Deploy MkDocs to GitHub Pages + +on: + push: + branches: + - main + - master + pull_request: + branches: + - main + - master + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Cache pip packages + uses: actions/cache@v3 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install dependencies + run: | + pip install mkdocs-material + + - name: Build site + run: mkdocs build --strict + + - name: Deploy to GitHub Pages + if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./site + cname: false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b177bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,48 @@ +# MkDocs build output +site/ + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info/ +dist/ +build/ + +# Virtual environments +venv/ +.venv/ +ENV/ +env/ + +# macOS +.DS_Store +.AppleDouble +.LSOverride + +# IDEs +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Discord exports (raw data - 50MB+) +# Keep cleaned and parsed versions only +discord-export/general/ +discord-export/text-channels/ +discord-export/reference/ + +# Keep these important files: +# !discord-export/cleaned/ +# !discord-export/FORUM_THREADS_SUMMARY.md +# !discord-export/all_channels_and_threads.txt + +# Environment variables +.env +.env.local + +# Logs +*.log diff --git a/README.md b/README.md new file mode 100644 index 0000000..a358652 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ +# AMD BC250 Documentation + +Comprehensive community-driven documentation for the AMD BC250 board - a powerful ex-mining board featuring a PlayStation 5 APU. + +## About the BC250 + +The AMD BC250 is a compact motherboard built around AMD's "Cyan Skillfish" APU (6x Zen 2 cores, 24 RDNA2 CUs, 16GB GDDR6) originally designed for cryptocurrency mining. The community has transformed this hardware into a capable Linux gaming and desktop system. + +## Documentation + +Visit the documentation site: [https://YOUR_GITHUB_USERNAME.github.io/amd-bc250-docs/](https://YOUR_GITHUB_USERNAME.github.io/amd-bc250-docs/) + +## Key Features + +- **Linux Setup Guides** - Step-by-step instructions for Fedora, Bazzite, Arch, CachyOS, and Debian +- **BIOS Configuration** - Flashing procedures, VRAM allocation, overclocking guides +- **Hardware Reference** - Specifications, power requirements, cooling solutions, pinouts +- **Troubleshooting** - Common issues and verified solutions from 1000+ community members +- **Gaming Compatibility** - 30+ tested games with performance data + +## Project Structure + +``` +amd-bc250-docs/ +├── docs/ # MkDocs documentation source (20 pages) +├── parsed-content/ # Extracted Discord discussions (550KB, 13 files) +├── discord-export/ # Discord server exports and analysis +├── mkdocs.yml # MkDocs configuration +└── scripts/ # Utility scripts +``` + +## Building Locally + +```bash +# Install MkDocs and Material theme +pip install mkdocs-material + +# Serve locally (with live reload) +mkdocs serve + +# Build static site +mkdocs build +``` + +The site will be available at http://127.0.0.1:8000/ + +## Content Sources + +This documentation is built from: + +- **Primary:** BC250 Discord community (9,716 technical messages analyzed from 1000+ members) +- **Secondary:** [BC250 GitHub repository](https://github.com/mothenjoyer69/bc250-documentation) +- **Last Updated:** November 21, 2025 + +## Critical Requirements + +- **Kernel:** 6.12.x - 6.14.x LTS (⚠️ AVOID 6.15+) +- **Mesa:** 25.1.3+ minimum, 25.1.5+ recommended +- **BIOS:** P3.00 with 512MB dynamic VRAM allocation +- **Governor:** Required for optimal GPU performance + +## Contributing + +This documentation is community-driven. If you find errors or have improvements: + +1. Join the [BC250 Discord](https://discord.com/invite/uDvkhNpxRQ) +2. Submit issues or pull requests to this repository +3. Share your testing results and solutions + +## Deployment + +This site is automatically deployed to GitHub Pages via GitHub Actions on every push to the main branch. + +## License + +Documentation content: CC BY-SA 4.0 +Code and configuration: MIT + +--- + +**Built with:** [MkDocs](https://www.mkdocs.org/) + [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) diff --git a/docs/bios/flashing.md b/docs/bios/flashing.md new file mode 100644 index 0000000..6e6891f --- /dev/null +++ b/docs/bios/flashing.md @@ -0,0 +1,374 @@ +# BIOS Flashing Guide + +Flashing the modded BIOS is essential for unlocking the BC-250's full potential. It enables dynamic VRAM allocation, overclocking, better fan control, and access to advanced chipset settings. + +!!!danger "Critical First Step" + ALWAYS clear CMOS after USB-based BIOS flashing. Settings will not stick properly otherwise, causing mysterious boot failures and RAM issues. + +## Why Flash the BIOS? + +The stock BIOS has limited configuration options. The modded BIOS unlocks: + +- **Dynamic VRAM allocation** (512MB setting that auto-allocates between CPU/GPU) +- **Custom VRAM splits** beyond the stock 8GB/8GB and 12GB/4GB options +- **Chipset menu** access for advanced settings +- **Fan control** improvements +- **Overclocking options** (though GPU frequency is mainly controlled by governor) + +## Flashing Methods + +There are two ways to flash the BIOS: + +### Method 1: USB Flashing (Recommended) + +**Pros:** +- No special hardware needed +- Fast +- Works on most boards + +**Cons:** +- Requires working board +- Small risk of bricking (recoverable with hardware method) +- MUST clear CMOS afterward + +### Method 2: Hardware Programmer + +**Pros:** +- Can recover from failed USB flash +- Most reliable method +- Can backup original BIOS + +**Cons:** +- Requires CH341A/CH347 programmer +- More technical +- Slower process + +!!!tip "Recommendation" + Start with USB method. Only get hardware programmer if USB flash fails or you want a backup option. + +--- + +## USB Flashing Method + +### What You Need + +- BC-250 board (with working stock BIOS) +- USB stick (any size, FAT32 formatted) +- Modded BIOS files +- PC to prepare USB stick +- DisplayPort cable or adapter (to access BIOS menu) + +### Step 1: Download BIOS Files + +Get the latest modded BIOS from: +[https://gitlab.com/TuxThePenguin0/bc250-bios/](https://gitlab.com/TuxThePenguin0/bc250-bios/) + +The ZIP contains: + +- `BC250_3.00_CHIPSETMENU.ROM` - The modded BIOS file +- Flashing utility (Windows executable) +- Instructions + +!!!info "BIOS Version" + P3.00 is the recommended modded version. Your board may have P2.00, P4.00, or P5.00 stock - doesn't matter, flash to P3.00 modded. + +### Step 2: Prepare USB Stick + +1. Format USB stick as **FAT32** (not exFAT or NTFS) +2. Copy BIOS file to root directory +3. **Rename file to:** `robin5.00` (no file extension) + +!!!warning "File Name Critical" + The file MUST be named exactly `robin5.00` (no .ROM extension). The bootloader looks for this specific name. + +### Step 3: Flash Using Utility + +**If using Windows:** + +1. Extract flashing utility from ZIP +2. Run as administrator +3. Select BIOS file +4. Follow prompts + +**If using Command Line Method:** + +1. Copy renamed file to USB root +2. Boot BC-250 with USB inserted +3. Access boot menu (usually F11 or F12) +4. Select USB device +5. Flashing starts automatically + +The process takes 2-5 minutes. **Do not power off during flashing.** + +### Step 4: Clear CMOS (CRITICAL) + +!!!danger "Do Not Skip This Step" + Failing to clear CMOS is the #1 cause of "BIOS settings won't stick" issues. The board will appear to work but RAM allocation won't apply properly. + +**Option A: Remove Battery (Recommended)** + +1. Power off and unplug board +2. Locate CMOS battery (CR2032 coin cell) +3. Remove battery for 30 seconds +4. Reinsert battery +5. Power on + +**Option B: Use CMOS Jumper** + +1. Power off and unplug board +2. Locate CMOS clear jumper (check pinout diagram) +3. Move jumper to clear position for 10 seconds +4. Return jumper to normal position +5. Power on + +### Step 5: Configure BIOS + +On first boot after flashing: + +1. Press **Del** repeatedly during boot to enter BIOS +2. Navigate to **Chipset Configuration** +3. Find **UMA Frame Buffer Size** +4. Set to **512MB** (or desired fixed allocation) +5. Optional: Set fan curves, disable unused ports +6. **Save and Exit** (F10) + +!!!tip "BIOS Navigation" + Use arrow keys to navigate, Enter to select, F10 to save. Mouse doesn't work in BIOS. + +--- + +## Hardware Programmer Method + +### What You Need + +- **CH341A or CH347 programmer** ($10-30 on AliExpress/Amazon) +- **SOP8 test clip** (usually included with programmer) +- **USB cable** (usually included) +- **Another PC** to run flashing software + +### BIOS Chip Location + +The BIOS chip is located near the M.2 slot: + +- **Chip Model:** MX25L12835F or MX25L12873F (128Mb/16MB) +- **Package:** SOP8 +- **Position:** Near PCIe slot, marked "BIOS" on some boards + +### Flashing Steps + +1. **Download flashrom:** + ```bash + # Linux + sudo apt install flashrom # Debian/Ubuntu + sudo dnf install flashrom # Fedora + + # macOS + brew install flashrom + ``` + +2. **Connect programmer:** + - Power off BC-250 + - Attach SOP8 clip to BIOS chip (pin 1 indicator aligns) + - Connect programmer to PC via USB + +3. **Backup original BIOS (recommended):** + ```bash + sudo flashrom -p ch341a_spi -r backup.bin + # Read twice and compare to verify + sudo flashrom -p ch341a_spi -r backup2.bin + diff backup.bin backup2.bin # Should be identical + ``` + +4. **Write new BIOS:** + ```bash + sudo flashrom -p ch341a_spi -w BC250_3.00_CHIPSETMENU.ROM + ``` + +5. **Verify write:** + ```bash + sudo flashrom -p ch341a_spi -v BC250_3.00_CHIPSETMENU.ROM + ``` + +6. **Disconnect and test:** + - Remove clip + - Clear CMOS (same as USB method) + - Power on + +--- + +## Post-Flash Configuration + +### Essential BIOS Settings + +After flashing, configure these critical settings: + +| Setting | Location | Recommended Value | +|---------|----------|-------------------| +| UMA Frame Buffer Size | Chipset → UMA | 512MB | +| IOMMU | Advanced → IOMMU | Disabled | +| Fan Control | H/W Monitor → Fan Control | Customize (50-100%) | +| Boot Mode | Boot → Boot Mode | UEFI | + +### VRAM Allocation Options + +**512MB (Dynamic) - Recommended:** +- Automatically allocates between CPU and GPU +- Best for general use +- May conflict with ZRAM in some games (use fixed instead) + +**Fixed Allocations:** +- 10GB RAM / 6GB VRAM - Good for AAA games +- 8GB RAM / 8GB VRAM - Balanced +- 12GB RAM / 4GB VRAM - Light gaming, more system RAM + +[Detailed VRAM guide →](vram.md) + +--- + +## Troubleshooting + +### USB Flash Failed / No Response + +**Symptoms:** +- USB boot doesn't start +- Flashing hangs + +**Solutions:** +1. Verify USB is FAT32 formatted +2. Check file is named exactly `robin5.00` +3. Try different USB stick +4. Ensure file is in root directory (not in folder) +5. Try different USB port + +### Board Won't Boot After Flash + +**Symptoms:** +- No display +- Power on but nothing happens +- Fan spins but no boot + +**Solutions:** +1. **Clear CMOS again** (most common fix) +2. Check power connections (8-pin firmly seated) +3. Try hardware programmer recovery +4. Reseat RAM (some boards have removable RAM) + +### BIOS Settings Don't Stick + +**Symptoms:** +- Set 512MB but system still shows 8GB/8GB split +- Settings reset after reboot +- Changes don't apply + +**Solution:** +Clear CMOS properly. This is almost always the cause. + +1. Remove CMOS battery for 60 seconds (not just 10) +2. With battery removed, press power button 5 times (discharges capacitors) +3. Reinsert battery +4. Boot and reconfigure + +### Display Shows But BIOS Menu Won't Appear + +**Symptoms:** +- Board boots to black screen +- No BIOS logo +- Can't access BIOS setup + +**Solutions:** +1. Try different display cable/adapter +2. Spam **Del** key earlier (right when powering on) +3. Try **F2** or **F12** instead +4. Check monitor is set to correct input + +### Accidentally Flashed Wrong File + +**Recovery:** +1. If board still boots: Flash correct file via USB +2. If board doesn't boot: Use hardware programmer with backup BIOS + +--- + +## BIOS Recovery + +### If USB Flash Bricked the Board + +1. Order CH341A programmer +2. While waiting, verify it's actually bricked: + - Check all power connections + - Try clearing CMOS again + - Test with different display adapter +3. When programmer arrives, follow hardware method above +4. Flash known-good BIOS file + +### If No Backup BIOS Available + +Community members have uploaded stock BIOS dumps: + +- Stock P2.00: Available in Discord #bc250-resources +- Stock P3.00: Available on GitLab +- Stock P5.00: Available in community archives + +Join Discord server (link in GitHub) for assistance. + +--- + +## Advanced: Custom BIOS Modifications + +Some users create custom BIOS mods using tools like: + +- **AMIBCP** - Edit AMI BIOS setup options +- **UEFITool** - Extract and modify UEFI modules +- **Smokeless UMAF** - Unlock hidden AMD settings + +!!!warning "Advanced Users Only" + Custom BIOS modification can permanently brick your board. Only attempt if you have hardware programmer and know what you're doing. + +--- + +## Verification + +After successful flash and configuration: + +```bash +# Check VRAM allocation in Linux +cat /proc/meminfo | grep -i mem +# Should show ~10-12GB depending on your split + +# Check GPU detected +lspci | grep VGA +# Should show AMD Radeon Graphics + +# Verify BIOS version +sudo dmidecode -t bios +# Should show P5.00 or your modded version +``` + +--- + +## FAQ + +**Q: Can I flash without clearing CMOS?** +A: Technically yes, but you'll have weird issues. Always clear CMOS. + +**Q: Will this void my warranty?** +A: These boards are sold "as-is" with no warranty anyway. + +**Q: Can I revert to stock BIOS?** +A: Yes, flash your backup or download stock BIOS and flash it. + +**Q: Do I need to reflash when updating Linux?** +A: No, BIOS is independent of OS. + +**Q: What if power fails during USB flash?** +A: Board may be bricked. Recover using hardware programmer. + +**Q: Can I flash from Linux?** +A: The USB method requires booting the BC-250 itself. Hardware programmer works from any OS running flashrom. + +--- + +**Next Steps:** +- [VRAM Configuration Guide](vram.md) +- [BIOS Settings Explained](../reference/bios-settings.md) +- [Recovery Guide](../troubleshooting/bios-recovery.md) diff --git a/docs/bios/overclocking.md b/docs/bios/overclocking.md new file mode 100644 index 0000000..7fec372 --- /dev/null +++ b/docs/bios/overclocking.md @@ -0,0 +1,394 @@ +# BIOS Overclocking Guide + +Advanced guide to overclocking the BC-250 GPU via BIOS settings and manual configuration. + +!!!danger "Advanced Users Only" + Overclocking can cause system instability, crashes, and potential hardware damage. Only proceed if you understand the risks. + +## Overclocking Overview + +### What Can Be Overclocked + +- **GPU Frequency:** 1500 MHz (locked) → 2000-2230 MHz (with governor/kernel patch) +- **GPU Voltage:** 700-1100 mV +- **Memory:** Not user-adjustable (GDDR6 runs at fixed speed) + +### Requirements + +1. **Kernel Patch:** Extended frequency range (350-2230 MHz) + - OR use distribution with patch included (Bazzite, PikaOS) +2. **GPU Governor:** For automatic frequency scaling +3. **Adequate Cooling:** Arctic P12 Max or better +4. **Quality PSU:** 250W+ on 12V rail + +## Safe Overclocking Limits + +### Community-Tested Safe Limits + +| Frequency | Voltage | Stability | Power Draw | Cooling Required | +|-----------|---------|-----------|------------|------------------| +| 2000 MHz | 1000 mV | ✅ Safe (all boards) | 190-200W | Stock + fan | +| 2100 MHz | 1025 mV | ✅ Good (most boards) | 200-210W | Arctic P12 | +| 2175 MHz | 1025 mV | ⚠️ Some boards | 210-220W | Arctic P12 Max | +| 2230 MHz | 1035-1050 mV | ⚠️ Best boards only | 220-235W | Dual fans | +| 2230 MHz | 1085 mV | ⚠️ High risk | 250W+ | Excellent cooling | + +### Known Unstable Frequencies + +!!!warning "980 MHz Instability" + **980 MHz is unstable** across all boards tested. Avoid this frequency. + +## Manual Overclocking + +### Method 1: Via sysfs (Temporary) + +**Test frequencies before making permanent:** + +```bash +# View current frequency/voltage table +cat /sys/class/drm/card0/device/pp_od_clk_voltage + +# Set voltage and frequency +# Format: vc +echo "vc 0 2100 1025" | sudo tee /sys/class/drm/card0/device/pp_od_clk_voltage + +# Commit changes +echo "c" | sudo tee /sys/class/drm/card0/device/pp_od_clk_voltage + +# Verify +cat /sys/class/drm/card0/device/pp_od_clk_voltage +``` + +**Test with benchmark:** +```bash +# Run Unigine Superposition or game for 30+ minutes +# Monitor temperatures and stability +``` + +### Method 2: Via Governor Config (Permanent) + +**Edit governor config:** +```bash +sudo nano /etc/oberon-config.yaml +``` + +**Safe overclock example:** +```yaml +opps: + frequency: + min: 1000 # 1000 MHz idle + max: 2100 # 2100 MHz load + voltage: + min: 700 # 700 mV idle + max: 1025 # 1025 mV load +``` + +**Aggressive overclock example:** +```yaml +opps: + frequency: + min: 1000 + max: 2175 # 2175 MHz load + voltage: + min: 700 + max: 1050 # Higher voltage for stability +``` + +**Apply changes:** +```bash +sudo systemctl restart oberon-governor +``` + +### Method 3: Cyan-Skillfish Governor (Multi-Point) + +**Edit config:** +```bash +sudo nano /etc/cyan-skillfish-governor/config.toml +``` + +**Multi-voltage point configuration:** +```toml +safe-points = [ + [1000, 700], # 1000 MHz @ 700 mV + [1500, 900], # 1500 MHz @ 900 mV + [2000, 1000], # 2000 MHz @ 1000 mV + [2100, 1025], # 2100 MHz @ 1025 mV + [2175, 1050], # 2175 MHz @ 1050 mV (overclock) +] +``` + +**Restart governor:** +```bash +sudo systemctl restart cyan-skillfish-governor +``` + +## Testing Stability + +### Stress Testing + +**1. Unigine Superposition (Recommended):** +```bash +# Download from: https://benchmark.unigine.com/superposition + +# Run benchmark +# 1080p Extreme preset +# Loop for 30+ minutes +``` + +**2. Gaming Stress Test:** +- Run demanding game for 60+ minutes +- Test different scenarios (loading screens, open world, combat) + +**3. Monitor During Testing:** +```bash +# Watch sensors +watch -n 1 sensors + +# Check for: +# - GPU temp < 85°C (< 80°C better) +# - No crashes or artifacts +# - Stable frame rates +``` + +### Signs of Instability + +**Reduce frequency or increase voltage if:** +- System crashes/freezes +- Visual artifacts (flickering, black textures, corrupted graphics) +- Performance degradation +- GPU temp > 90°C + +## Performance Gains + +### Benchmark Results + +**Unigine Superposition (1080p Extreme):** + +| Config | Score | FPS | GPU Temp | Power | +|--------|-------|-----|----------|-------| +| Stock 2000 MHz @ 1000mV | 3888 | ~57 | 76°C | 190W | +| Patch 2230 MHz @ 1035mV | 4118 | ~60 | 86°C | 235W | +| Gain | +230 | +3 | +10°C | +45W | + +**Cyberpunk 2077 (1080p High):** + +| Config | FPS | Notes | +|--------|-----|-------| +| Stock 2000 MHz | 57.66 | Without overlay | +| OC 2220 MHz | 60.82 | +5.5% performance | + +### Performance vs Power Trade-Off + +**Analysis:** +- 2000 MHz → 2230 MHz: +11.5% frequency +- Performance gain: +5-6% (not linear due to other bottlenecks) +- Power increase: +20-25% +- Temperature increase: +10°C + +**Conclusion:** Diminishing returns above 2100 MHz for most users + +## Voltage Tuning + +### Undervolting for Efficiency + +**Goal:** Reduce voltage while maintaining frequency + +**Process:** +1. Start at stock frequency (2000 MHz @ 1000mV) +2. Reduce voltage by 25mV (to 975mV) +3. Test stability +4. If stable, reduce another 25mV +5. If crashes, increase by 25mV +6. Find minimum stable voltage + +**Example Results:** +- Some boards stable at 2000 MHz @ 950mV (-50mV) +- Reduces power by ~10-15W +- Lowers temperature by 5-7°C + +### Overvolting for Higher Clocks + +**Use Case:** Pushing beyond 2100 MHz + +**Caution:** +- Higher voltage = more heat and power +- Diminishing stability gains above 1050mV +- Risk of hardware degradation + +**Safe limits:** +- **Maximum recommended:** 1085mV +- **Absolute maximum:** 1100mV (high risk) + +## Cooling Requirements + +### Temperature Targets by Overclock + +| Overclock Level | Max Temp | Recommended Cooling | +|-----------------|----------|---------------------| +| Stock (2000 MHz) | 76°C | Single Arctic P12 | +| Light OC (2100 MHz) | 80°C | Arctic P12 Max | +| Medium OC (2175 MHz) | 85°C | Dual fans or Arctic P12 Max | +| Heavy OC (2230 MHz) | 90°C | Dual high-performance fans | + +!!!danger "Thermal Throttling" + Above 85°C, performance may be reduced. Above 90°C, system instability is likely. + +### Improving Cooling for Overclock + +1. **Upgrade fan:** Arctic P12 Max (highest static pressure) +2. **Add second fan:** For VRM/memory cooling +3. **Improve airflow:** Remove case panels for testing +4. **Replace thermal paste:** Quality paste (Arctic MX-6, Kryonaut) +5. **Straighten fins:** Improve heatsink airflow +6. **Add thermal pads:** Cool memory chips on underside + +## Power Supply Considerations + +### Power Requirements by Overclock + +| Overclock | Typical Power | Peak Power | PSU Recommendation | +|-----------|---------------|------------|---------------------| +| Stock 2000 MHz | 190W | 200W | 220W+ | +| 2100 MHz | 200W | 215W | 250W+ | +| 2175 MHz | 210W | 230W | 270W+ | +| 2230 MHz | 220W | 250W | 300W+ | + +!!!warning "PSU Overload" + Inadequate PSU will trigger over-current protection, causing crashes under load. + +### Furmark Power Draw + +**Unrealistic stress test:** +- Stock: 250W +- OC 2230 MHz @ 1085mV: **320W** + +**Note:** No game reaches Furmark power levels. Use game testing. + +## Overclocking Checklist + +Before overclocking: + +- [ ] BIOS flashed and configured (VRAM split set) +- [ ] Kernel 6.12-6.14 LTS (with frequency patch if needed) +- [ ] Mesa 25.1.3+ installed +- [ ] GPU governor installed and running +- [ ] Adequate cooling (Arctic P12 Max minimum) +- [ ] PSU rated for 250W+ on 12V rail +- [ ] Thermal monitoring set up (`sensors`) +- [ ] Backup of current config + +During overclocking: + +- [ ] Increase frequency in 50-100 MHz steps +- [ ] Test stability for 30+ minutes per step +- [ ] Monitor temperatures (< 85°C target) +- [ ] Monitor power draw +- [ ] Check for visual artifacts +- [ ] Verify no performance degradation + +## Troubleshooting Overclocking Issues + +### System Crashes Immediately + +**Cause:** Voltage too low for frequency + +**Solution:** +- Increase voltage by 25-50mV +- OR reduce frequency by 50-100 MHz + +### Crashes After 10-30 Minutes + +**Cause:** Thermal throttling or marginal stability + +**Solutions:** +1. Check temperatures (should be < 85°C) +2. Improve cooling +3. Increase voltage slightly +4. Reduce frequency + +### Visual Artifacts + +**Symptoms:** +- Black textures +- Flickering +- Corrupted graphics + +**Causes:** +- Memory clock too high (not adjustable) +- Unstable frequency/voltage +- Overheating + +**Solutions:** +- Reduce GPU frequency +- Add RADV_DEBUG=nohiz to environment +- Check cooling + +### Performance Worse After Overclock + +**Possible Causes:** +1. Thermal throttling (too hot) +2. Power limit hit (PSU insufficient) +3. Hitting frequency that triggers instability + +**Solutions:** +- Check temperatures +- Verify PSU wattage +- Try different frequency (avoid 980 MHz range) + +### Governor Not Applying Overclock + +**Check:** +```bash +# Verify governor running +systemctl status oberon-governor + +# Check config loaded +cat /etc/oberon-config.yaml + +# Restart governor +sudo systemctl restart oberon-governor + +# Check applied settings +cat /sys/class/drm/card0/device/pp_od_clk_voltage +``` + +## Advanced: Multiple Voltage Points + +For Cyan-Skillfish Governor or manual tuning: + +**Create voltage curve:** + +1. Test each frequency point: +```bash +# Test 1500 MHz +echo "vc 0 1500 875" | sudo tee /sys/class/drm/card0/device/pp_od_clk_voltage +echo "c" | sudo tee /sys/class/drm/card0/device/pp_od_clk_voltage +# Run benchmark, find minimum stable voltage + +# Test 1750 MHz +echo "vc 0 1750 950" | sudo tee /sys/class/drm/card0/device/pp_od_clk_voltage +echo "c" | sudo tee /sys/class/drm/card0/device/pp_od_clk_voltage +# Run benchmark, find minimum stable voltage + +# Repeat for 2000, 2100, 2175, 2230 MHz +``` + +2. Record stable voltage for each frequency +3. Add to governor config + +**Benefits:** +- More efficient (lower voltage at mid frequencies) +- Better temperature management +- Smoother frequency transitions + +**Time Investment:** +- Testing each frequency point thoroughly +- Recording stable voltages +- Validating with benchmarks + +## See Also + +- [GPU Governor Setup](../system/governor.md) +- [Cooling Solutions](../hardware/cooling.md) +- [Power Requirements](../hardware/power.md) +- [BIOS Recovery](recovery.md) diff --git a/docs/bios/recovery.md b/docs/bios/recovery.md new file mode 100644 index 0000000..3ab6520 --- /dev/null +++ b/docs/bios/recovery.md @@ -0,0 +1,411 @@ +# BIOS Recovery Guide + +Guide to recovering from a bad BIOS flash or corrupted BIOS on the BC-250. + +!!!danger "Last Resort Guide" + Only use this guide if your BC-250 won't boot after a BIOS flash. Prevention is always better than recovery. + +## When You Need Recovery + +### Symptoms of Corrupted BIOS + +- No display output (black screen) +- No POST (no beep, no activity) +- Board powers on but nothing happens +- Fans spin but no boot +- BIOS settings don't persist after reboot + +### Causes + +1. **Bad BIOS flash:** Flashing incorrect BIOS file +2. **Interrupted flash:** Power loss during flashing +3. **Corrupted BIOS file:** Downloaded corrupted file +4. **Wrong flash method:** Used incompatible flashing tool +5. **CMOS not cleared:** After USB flash, settings don't stick + +## Recovery Methods + +### Method 1: Clear CMOS (Try First) + +**When to use:** Settings don't stick, board acts strange after flash + +**Process:** + +1. Power off board completely +2. Unplug power cable +3. Locate CMOS battery (small coin cell on board) +4. Remove CMOS battery +5. Wait 30 seconds +6. Reinsert CMOS battery +7. Reconnect power +8. Boot and reconfigure BIOS + +**OR use CMOS jumper:** + +1. Power off and unplug +2. Locate CMOS clear jumper (near battery) +3. Move jumper to clear position +4. Wait 10 seconds +5. Move jumper back +6. Reconnect power and boot + +!!!tip "USB Flash CMOS Issue" + If you flashed via USB and settings don't persist, clearing CMOS usually fixes it. This is a known issue with USB flashing. + +### Method 2: Re-flash via USB (Partial Brick) + +**When to use:** Board boots but unstable, or partial BIOS corruption + +**Requirements:** +- USB flash drive (FAT32 formatted) +- Correct BIOS file (P3.00 Segfault mod recommended) +- Flasher program + +**Steps:** + +1. Format USB drive as FAT32 +2. Copy BIOS files to root of USB: + - `SHELL.efi` or flasher executable + - BIOS file (rename to required name if needed) +3. Insert USB into BC-250 +4. Power on +5. Access BIOS recovery mode (if available) +6. Flash BIOS from USB + +**Note:** This only works if board still partially boots + +### Method 3: Hardware Programmer (Full Brick) + +**When to use:** Board completely dead, no activity + +**Required Equipment:** +- CH341A programmer (~$5-15) OR +- CH347T programmer (~$15-30, recommended) +- SOP8 test clip OR +- SOIC8 chip clip +- Jumper wires (if needed) + +#### SPI Flash Chip Details + +**Location:** Near BIOS chip on board + +**Chip Model:** +- **MX25L12873F** (most common) +- MX25L12835F (some boards) +- Winbond 25Q128 (rare) + +**Chip Package:** SOP8 or SOIC8 (8-pin) + +**Pinout (Standard SPI):** +``` +Pin 1: CS (Chip Select) +Pin 2: DO (Data Out) +Pin 3: WP (Write Protect) +Pin 4: GND (Ground) +Pin 5: DI (Data In) +Pin 6: CLK (Clock) +Pin 7: HOLD (Hold) +Pin 8: VCC (3.3V) +``` + +#### Hardware Programmer Setup + +**CH341A Programmer:** + +!!!danger "CH341A 5V Risk" + Some CH341A programmers output 5V instead of 3.3V. This can damage the SPI flash chip. Verify voltage before connecting! + +**Voltage Mod (if needed):** +1. Locate voltage regulator (AMS1117) +2. Replace with 3.3V variant OR +3. Use voltage divider/mod + +**Safer Option:** Use CH347T (native 3.3V support) + +**CH347T Programmer (Recommended):** +- Native 3.3V support +- Faster flash speeds +- Better software support +- No voltage mod needed + +#### Flashing Process + +**Software Options:** +- **flashrom** (Linux, recommended) +- **CH341A Programmer Software** (Windows) +- **AsProgrammer** (Windows) + +**Linux flashrom method:** + +```bash +# Install flashrom +sudo apt install flashrom # Debian/Ubuntu +sudo dnf install flashrom # Fedora +sudo pacman -S flashrom # Arch + +# Connect programmer to PC +# Connect clip to SPI chip on BC-250 + +# Detect chip +sudo flashrom -p ch341a_spi + +# Should detect: MX25L12873F or similar + +# Backup current BIOS (important!) +sudo flashrom -p ch341a_spi -r backup.bin + +# Verify backup +sudo flashrom -p ch341a_spi -v backup.bin + +# Flash new BIOS +sudo flashrom -p ch341a_spi -w P3.00_mod.bin + +# Verify flash +sudo flashrom -p ch341a_spi -v P3.00_mod.bin +``` + +**Connection:** + +1. Identify Pin 1 on SPI chip (dot or notch) +2. Align clip carefully (Pin 1 to Pin 1) +3. Ensure good contact (clip fully seated) +4. Connect programmer to USB +5. Flash using software + +!!!warning "Power Considerations" + Some guides suggest powering BC-250 during flash. **This is not recommended**. Flash with board powered off and only programmer power. + +#### Troubleshooting Hardware Flash + +**Chip not detected:** +- Check clip alignment (Pin 1 correct?) +- Ensure clip fully seated on chip +- Try different USB port +- Check programmer voltage (3.3V required) +- Clean chip pins (isopropyl alcohol) + +**Flash verification fails:** +- Re-seat clip +- Try slower flash speed +- Check for poor connection +- Replace clip if damaged + +**Board still dead after flash:** +- Verify BIOS file is correct +- Try different BIOS version +- Check for other hardware damage +- May need professional repair + +### Method 4: Dual BIOS (If Available) + +**Some BC-250 boards may have dual BIOS:** + +1. Locate BIOS switch (small switch near BIOS chip) +2. Power off board +3. Toggle switch to backup BIOS +4. Boot from backup BIOS +5. Reflash main BIOS from within working system + +**Note:** Not all BC-250 boards have dual BIOS. Check your specific board. + +## Prevention + +### Before Flashing + +**Checklist:** +- [ ] Downloaded correct BIOS file (P3.00 Segfault mod) +- [ ] Verified file hash/checksum +- [ ] Have backup of current BIOS +- [ ] Fully charged laptop/UPS power (no power interruption risk) +- [ ] Read flashing guide completely +- [ ] Have recovery hardware available (just in case) + +### Safe Flashing Practices + +1. **Never interrupt flash:** Wait for completion +2. **Use correct file:** Verify filename and version +3. **Stable power:** Use UPS or fully charged laptop +4. **Follow instructions:** Don't improvise +5. **Clear CMOS after:** If flashing via USB + +### Backup Current BIOS + +**Before modifying anything:** + +```bash +# If using hardware programmer +sudo flashrom -p ch341a_spi -r backup_$(date +%Y%m%d).bin + +# Verify backup +sudo flashrom -p ch341a_spi -v backup_$(date +%Y%m%d).bin + +# Store safely (copy to multiple locations) +``` + +**Via USB flash method:** +- Some flasher tools support backup +- Save before flashing new BIOS + +## Recovery Scenario Examples + +### Scenario 1: USB Flash, Settings Don't Stick + +**Symptoms:** +- Flashed BIOS via USB +- Boot into BIOS, change VRAM to 512MB +- After restart, back to 8GB RAM / 8GB VRAM + +**Solution:** +1. Clear CMOS (remove battery or use jumper) +2. Boot into BIOS +3. Set VRAM to 512MB +4. Save and exit +5. Settings should now persist + +**Cause:** USB flashing doesn't clear NVRAM, causing conflicts + +### Scenario 2: Wrong BIOS File Flashed + +**Symptoms:** +- Flashed wrong BIOS +- Board powers on, no display + +**Solution:** +1. Acquire hardware programmer (CH347T recommended) +2. Connect clip to SPI flash chip +3. Flash correct BIOS file (P3.00 Segfault mod) +4. Verify flash successful +5. Clear CMOS +6. Boot and configure + +### Scenario 3: Power Loss During Flash + +**Symptoms:** +- Power cut out during BIOS flash +- Board completely dead + +**Solution:** +1. Use hardware programmer +2. Flash known-good BIOS file +3. May need to flash twice (some report first flash partially works) +4. Clear CMOS +5. Boot and reconfigure + +### Scenario 4: Experimental BIOS Brick + +**Symptoms:** +- Tried experimental/custom BIOS +- Board unstable or won't boot + +**Solution:** +1. Flash back to known-good BIOS (P3.00 Segfault mod) +2. Use hardware programmer if board won't boot +3. Stick to community-tested BIOS versions + +## BIOS File Information + +### Recommended BIOS + +**P3.00 Segfault Modified BIOS:** +- Unlocks dynamic VRAM allocation +- Exposes overclocking options +- Most tested and stable +- Available in BC-250 community resources + +**File naming:** +- May be named `P3.00_mod.bin` or similar +- Verify file hash against community-provided checksums + +### Stock BIOS + +**P2.11 (Stock):** +- Original BIOS from mining use +- Limited options +- 8GB/8GB or 12GB/4GB fixed splits only + +**P3.00 (Stock):** +- Updated official BIOS +- Still limited compared to modded version + +### Verifying BIOS Files + +**Check file hash:** + +```bash +# Linux +sha256sum P3.00_mod.bin + +# Windows (PowerShell) +Get-FileHash P3.00_mod.bin -Algorithm SHA256 + +# Compare with known-good hash from community +``` + +**File size:** +- Typical BIOS file: 8-16 MB +- If file is wrong size, it's likely corrupted + +## Community Resources + +### Where to Get Help + +1. **BC-250 Discord Server** + - #bios-help channel + - Experienced users can guide recovery + +2. **GitHub Repositories** + - BC-250 documentation repos + - BIOS files and flasher tools + +3. **Reddit** + - r/BC250 (if exists) + - r/sffpc (general SFF PC help) + +### Hardware Programmer Sources + +**CH347T Programmer:** +- Available on AliExpress and Amazon + +**CH341A Programmer:** +- Available on AliExpress and Amazon +- **Verify 3.3V output before use** + +**Test Clips:** +- SOIC8 test clip +- SOP8 test clip +- Get both if unsure of chip package + +## Emergency Contact + +If all recovery methods fail: + +1. **Post in Discord** with details: + - What you did (exact steps) + - What BIOS file you used + - Current symptoms + - Photos of board (if helpful) + +2. **Professional Repair:** + - Some users offer paid BIOS recovery services + - Check community for recommendations + +3. **Replace BIOS Chip:** + - Last resort: desolder and replace SPI flash chip + - Requires soldering skills + - Pre-programmed chips available + +## Success Recovery Stories + +**Common recovery scenarios that worked:** + +1. **CMOS clear after USB flash:** 90% success rate +2. **Hardware reprogram with CH347T:** 95% success rate +3. **Reflash same file twice:** Sometimes needed +4. **Try different programmer:** Some programmers work better + +## See Also + +- [BIOS Flashing Guide](flashing.md) +- [BIOS VRAM Configuration](vram.md) +- [Troubleshooting Display Issues](../troubleshooting/display.md) +- [Hardware Specifications](../hardware/specifications.md) diff --git a/docs/bios/vram.md b/docs/bios/vram.md new file mode 100644 index 0000000..ec85bbe --- /dev/null +++ b/docs/bios/vram.md @@ -0,0 +1,370 @@ +# VRAM Configuration Guide + +One of the BC-250's unique features is configurable memory allocation between CPU RAM and GPU VRAM. Understanding how to configure this properly is critical for optimal performance. + +## Understanding UMA (Unified Memory Architecture) + +The BC-250 uses **unified memory** - a single 16GB pool of GDDR6 RAM shared between CPU and GPU. The BIOS setting "UMA Frame Buffer Size" controls how this memory is divided. + +!!!info "Key Concept" + Unlike traditional systems with separate RAM and VRAM, the BC-250's memory is dynamically sharable (with 512MB setting) or statically partitioned (with fixed allocations). + +--- + +## Configuration Options + +### Option 1: 512MB Dynamic (Recommended) + +**BIOS Setting:** UMA Frame Buffer Size = 512MB + +This is NOT actually 512MB VRAM. Instead, it enables **dynamic allocation** where memory moves between CPU and GPU as needed. + +**How it works:** +- System starts with ~15.5GB CPU RAM, ~512MB GPU VRAM +- When GPU needs more VRAM, it automatically claims from system RAM +- When GPU load drops, memory returns to system pool +- Actual VRAM can grow to 10-12GB depending on load + +**Pros:** +- Most flexible +- Best for varied workloads +- No need to choose allocation manually +- Can handle both CPU-intensive and GPU-intensive tasks + +**Cons:** +- May conflict with ZRAM in some games (RDR2, Company of Heroes 3) +- Slight overhead from dynamic allocation +- Some games incorrectly report available VRAM + +**Best for:** +- General use, mixed gaming, productivity +- Users who don't want to tweak settings +- Varying workloads + +### Option 2: Fixed 10GB RAM / 6GB VRAM + +**BIOS Setting:** UMA Frame Buffer Size = 6144MB + +Statically allocates 6GB to GPU, 10GB to CPU. + +**Pros:** +- Fixes ZRAM conflicts +- More predictable performance +- Games properly detect VRAM amount +- Stable for AAA titles + +**Cons:** +- Less flexible +- May waste VRAM if not fully used +- Can run out of system RAM in extreme cases + +**Best for:** +- AAA gaming (RDR2, Cyberpunk, Control) +- Users experiencing crashes with 512MB dynamic +- Systems using ZRAM for swap + +### Option 3: Fixed 8GB RAM / 8GB VRAM + +**BIOS Setting:** UMA Frame Buffer Size = 8192MB + +Balanced 50/50 split. + +**Pros:** +- Balanced for most use cases +- Simple to reason about +- Good for compute workloads + +**Cons:** +- May waste VRAM if unused +- Less system RAM than 512MB dynamic typically provides + +**Best for:** +- AI/LLM inference +- Compute workloads needing large VRAM +- Users wanting simple balanced split + +### Option 4: Fixed 12GB RAM / 4GB VRAM + +**BIOS Setting:** UMA Frame Buffer Size = 4096MB + +CPU-favoring split. + +**Pros:** +- Maximum system RAM +- Low idle power (less VRAM to keep refreshed) +- Good for non-gaming use + +**Cons:** +- Limited VRAM for modern games +- May struggle with high-res textures +- Not enough for 4K gaming + +**Best for:** +- Light gaming (esports titles, older games) +- Desktop/productivity use +- Low-power optimization + +--- + +## Changing VRAM Allocation + +### In BIOS + +1. Boot into BIOS (press **Del** during startup) +2. Navigate to **Chipset Configuration** or **Advanced** menu +3. Find **UMA Frame Buffer Size** setting +4. Select desired value: + - 512MB (dynamic) + - 4096MB (12GB/4GB) + - 6144MB (10GB/6GB) + - 8192MB (8GB/8GB) +5. Save and exit (F10) +6. System will reboot with new allocation + +!!!warning "Takes Effect Immediately" + The new allocation applies on reboot. No need to reflash BIOS or reinstall OS. + +### Verification in Linux + +Check current allocation: + +```bash +# Check system RAM +free -h +# Should show ~10-15GB depending on allocation + +# Check VRAM +cat /sys/class/drm/card0/device/mem_info_vram_total +# Shows GPU memory in bytes + +# Check both +neofetch +# Or +inxi -Fxxxz +``` + +--- + +## Performance Impact by Use Case + +### Gaming + +| Game Type | Recommended | Why | +|-----------|-------------|-----| +| Esports (CS2, Valorant, Dota 2) | 512MB dynamic | Low VRAM needs, benefits from more RAM | +| AAA (Cyberpunk, RDR2) | 6GB fixed (10/6) | High VRAM needs, avoid ZRAM conflicts | +| Older games (<2020) | 512MB dynamic | Low VRAM needs | +| Emulation | 512MB dynamic | Varies, dynamic handles it | + +### Productivity + +| Workload | Recommended | Why | +|----------|-------------|-----| +| Web browsing, office | 512MB dynamic | Minimal VRAM needs | +| Photo editing | 512MB dynamic | RAM-heavy | +| Video editing (1080p) | 6GB fixed | May need VRAM for acceleration | +| Video editing (4K) | 8GB fixed | High VRAM for processing | +| 3D rendering | 8GB fixed | GPU compute needs VRAM | + +### AI/Compute + +| Task | Recommended | Why | +|------|-------------|-----| +| LLM inference (<13B) | 512MB dynamic | Flexible VRAM | +| LLM inference (13-30B) | 8GB fixed | Needs guaranteed VRAM | +| Stable Diffusion (SD1.5) | 512MB dynamic | ~4GB VRAM sufficient | +| Stable Diffusion (SDXL) | 6GB+ fixed | ~7GB VRAM needed | +| Training small models | 8GB fixed | Memory-intensive | + +--- + +## Known Issues + +### ZRAM Conflicts with 512MB Dynamic + +**Symptoms:** +- RDR2 crashes when loading new areas +- Company of Heroes 3 artifacts then crashes +- Out-of-memory errors despite available RAM + +**Cause:** +ZRAM compressed swap can confuse the dynamic allocator, causing memory management failures. + +**Solutions:** +1. **Disable ZRAM:** + ```bash + sudo systemctl disable zram-swap + sudo reboot + ``` + +2. **Switch to fixed 10GB/6GB allocation** (better solution) + +3. **Reduce ZRAM size:** + ```bash + # Edit /etc/systemd/zram-generator.conf + [zram0] + zram-size = 4096 # Reduce from default 8GB + ``` + +### Games Misreporting VRAM + +**Symptoms:** +- Game settings show wrong VRAM amount +- Ultra textures disabled despite having VRAM +- Performance warnings despite good performance + +**Cause:** +Games query BIOS-reported VRAM (512MB or fixed amount) and don't understand dynamic allocation. + +**Solution:** +Ignore the warning. Performance is what matters. The game will use what it needs. + +**Workaround (if game refuses to run):** +Switch to fixed allocation that matches game's requirements. + +### Vulkan vs OpenGL VRAM Reporting + +**Issue:** +Vulkan sees full dynamic VRAM (~10-12GB), OpenGL only sees BIOS-allocated amount (512MB). + +**Impact:** +- OpenGL games may refuse to run on "512MB VRAM" +- Vulkan/Proton games work fine + +**Solution:** +Most modern games use Vulkan via Proton. If game needs OpenGL and complains, use fixed allocation. + +--- + +## Advanced: Kernel Parameters for More VRAM + +You can override VRAM limits via kernel parameters to access up to ~14.75GB VRAM. + +!!!warning "Experimental" + This is for advanced users doing AI inference or compute. Not needed for gaming. + +Add to GRUB command line: + +```bash +sudo nano /etc/default/grub + +# Add to GRUB_CMDLINE_LINUX_DEFAULT: +amdgpu.gttsize=14750 ttm.pages_limit=3776000 ttm.page_pool_size=3776000 + +# Update GRUB +sudo grub2-mkconfig -o /boot/grub2/grub.cfg +sudo reboot +``` + +**What this does:** +- `amdgpu.gttsize`: Sets GTT (Graphics Translation Table) size in MB +- `ttm`: Increases memory manager limits + +**Usage:** +When running LLM inference or other compute tasks, limit memory allocation to avoid crashes: + +```bash +llama.cpp --mem 14500 # Slightly less than 14.75GB max +``` + +--- + +## Power Consumption Impact + +VRAM allocation affects idle power draw: + +| Allocation | Idle Power | Gaming Power | +|------------|------------|--------------| +| 4GB VRAM | 50-60W | 150-200W | +| 6GB VRAM | 55-65W | 150-200W | +| 8GB VRAM | 60-70W | 150-200W | +| 512MB dynamic | 50-80W | 150-200W | + +More allocated VRAM = more GDDR6 to refresh = higher idle power. + +For low-power builds (HTPC, always-on systems), use 4GB fixed or 512MB dynamic with light loads. + +--- + +## Recommendations by Use Case + +### General Gaming PC +**Use:** 512MB dynamic +- Handles everything +- Easy to set and forget +- Switch to 10GB/6GB only if specific game crashes + +### Dedicated Gaming Rig (AAA focus) +**Use:** 10GB RAM / 6GB VRAM +- Most reliable for modern games +- No ZRAM conflicts +- Predictable performance + +### Budget Productivity Machine +**Use:** 512MB dynamic +- Maximum available RAM +- VRAM allocated as needed +- Good for multitasking + +### AI/LLM Inference +**Use:** 8GB RAM / 8GB VRAM or larger +- Dedicated VRAM for models +- No dynamic allocation overhead +- Predictable inference performance + +### HTPC / Low Power +**Use:** 12GB RAM / 4GB VRAM +- Lowest idle power +- Enough VRAM for video playback +- Maximum RAM for buffering + +--- + +## Testing Your Configuration + +After changing allocation, verify it works: + +```bash +# 1. Check allocation took effect +free -h +cat /sys/class/drm/card0/device/mem_info_vram_total + +# 2. Run stress test +vkmark # Vulkan benchmark +glmark2 # OpenGL benchmark + +# 3. Test actual games +steam # Launch and test a few titles + +# 4. Monitor for crashes/OOM +journalctl -f # Watch for memory errors +``` + +--- + +## FAQ + +**Q: Can I change allocation without reflashing BIOS?** +A: Yes, if you have modded BIOS. Just change in BIOS menu and reboot. + +**Q: Does this affect Windows?** +A: BC-250 has no Windows GPU drivers, so N/A. Setting would affect Windows if drivers existed. + +**Q: Can I use different allocations for different OS?** +A: No, allocation is set in BIOS and applies to all boot options. + +**Q: Is dynamic allocation slower?** +A: Negligible difference in gaming. Compute tasks may prefer fixed for predictability. + +**Q: Why does free -h show less RAM than expected?** +A: System overhead, kernel reserve, firmware reserve typically use ~500MB-1GB. + +**Q: Can I allocate all 16GB to GPU?** +A: No, CPU needs RAM to function. Minimum is ~2-4GB for system. + +--- + +**Related Pages:** +- [BIOS Flashing Guide](flashing.md) +- [Governor Configuration](../system/governor.md) +- [Gaming Performance](../gaming/compatibility.md) diff --git a/docs/gaming/compatibility.md b/docs/gaming/compatibility.md new file mode 100644 index 0000000..1018103 --- /dev/null +++ b/docs/gaming/compatibility.md @@ -0,0 +1,400 @@ +# Game Compatibility and Performance + +Community-tested games with performance data and known issues for the BC-250. + +## Performance Overview + +The BC-250 delivers solid 1080p gaming performance, comparable to an RX 6600 or RTX 3060 Ti. + +**Typical Performance:** +- **1080p High Settings:** 60-100+ FPS in most titles +- **1080p Medium Settings:** 80-120+ FPS +- **1440p:** Playable in many titles with FSR +- **Ray Tracing:** Entry-level performance (30-60 FPS with compromises) + +## Tested AAA Games + +### Cyberpunk 2077 + +**Performance:** +- **1080p High + FSR:** 70-90 FPS (no RT) +- **1080p High + FSR + RT (lighting only):** 50-60 FPS +- **1080p Ultra + FSR3.1:** 100+ FPS + +**Settings Recommendations:** +- Enable FSR 2.0/3.1 Quality mode +- Ray tracing: Lighting only (disable RT shadows) +- DLSS/FSR Frame Generation works well + +**Known Issues:** +- Maximum power draw game (up to 235W) +- Requires good cooling + +**Benchmarks:** +- Stock (2000 MHz @ 1000mV): 57.66 FPS +- OC (2230 MHz @ 1035mV): 60.82 FPS +- With `mitigations=off`: +18 FPS boost + +### The Last of Us Part I + +**Performance:** +- **1080p Medium-High:** 60 FPS (stable) + +**Settings Recommendations:** +- Medium-High settings for 60 FPS +- FSR helps maintain frame rate + +**Known Issues:** +- Heat: 90-100°C during shader compilation +- Some clicking in audio reported + +### Control + +**Performance:** +- **1080p + RT:** 40 FPS + +**Settings Recommendations:** +- Ray tracing works but demanding +- Lower RT quality for better FPS + +**Notes:** +- Good RT performance for entry-level RT hardware + +### Detroit: Become Human + +**Performance:** +- **1080p Medium:** 60 FPS (capped) + +**Settings Recommendations:** +- Medium settings for best frame latency +- Caps at 60 FPS for cinematic feel + +**Notes:** +- Runs smoothly, no issues reported + +### Devil May Cry 5 + +**Performance:** +- **1080p High:** 100 FPS + +**Settings Recommendations:** +- High settings easily achievable +- Lowest frame latency (10ms) of tested games + +**Notes:** +- Excellent optimization, runs great + +### Company of Heroes 3 + +**Performance:** +- **Playable** + +**Settings Recommendations:** +- Use 4GB VRAM split (512MB causes artifacts/crashes) + +**Notes:** +- VRAM-sensitive game, needs adequate allocation + +### Red Dead Redemption 2 + +**Performance:** +- **Benchmark:** 45+ FPS minimum + +**Settings Recommendations:** +- Use `-useMaximumSettings` launch flag +- May detect as software rendering - change adapter in graphics settings to match `vulkaninfo --summary` output + +**Known Issues:** +- Can detect wrong graphics adapter + +## Popular Games + +### Fortnite + +**Status:** Not tested/reported +**Expected:** Should run well at 1080p + +### Apex Legends + +**Status:** Not tested extensively +**Expected:** Good performance expected + +### Valorant + +**Status:** Anti-cheat may have issues on Linux +**Expected:** Technical challenges + +### CS2 (Counter-Strike 2) + +**Status:** Works well +**Expected:** 100+ FPS at 1080p + +### Rocket League + +**Status:** Works well +**Expected:** 120+ FPS at 1080p + +### Elden Ring + +**Status:** Playable +**Expected:** 60 FPS with some settings adjustments + +## Emulation + +### Ryujinx (Nintendo Switch) + +**Game:** The Legend of Zelda: Tears of the Kingdom + +**Performance:** +- **Consistent:** 20 FPS across multiple boards and distros +- **Appears to be board limitation** for this specific game +- Other users report 60+ FPS with specific configurations + +**Notes:** +- Performance varies significantly by game +- Some games run at 60 FPS +- TOTK specifically seems problematic + +### Other Emulators + +**Status:** Generally good +**PCSX2 (PS2):** Excellent +**RPCS3 (PS3):** Good for lighter titles +**Dolphin (GameCube/Wii):** Excellent + +## Ray Tracing Performance + +### Games with RT Tested + +| Game | Resolution | FPS | Notes | +|------|------------|-----|-------| +| Cyberpunk 2077 | 1080p | 50-60 | RT lighting only, FSR quality | +| Control | 1080p | 40 | Full RT | +| Portal 2 RTX | 720p | 40 | Software RT in Mesa 25.2+ | +| Half-Life 2 RTX | 720p | 20-30 | Very demanding | + +!!!info "Real Hardware RT" + BC-250 uses real RDNA 2 hardware RT, not software emulation (with Mesa 25.2+). + +## FSR (FidelityFX Super Resolution) + +**FSR 2.0/3.0 Support:** Excellent + +**Performance Gains:** +- FSR Quality: +20-30% FPS +- FSR Balanced: +30-40% FPS +- FSR Performance: +40-60% FPS + +**FSR Frame Generation:** +- Works in supported games +- Can double frame rate +- Adds slight latency + +**FSR 4 with Optiscaler:** +- Community reports Balance mode better than FSR 3.1.5 Quality +- Worth testing in supported games + +## Known Game Issues + +### Magic: The Gathering Arena + +**Issue:** Crashes/freezes specifically on Fedora +**Workaround:** Works better on Manjaro or Bazzite +**Possible Fix:** Try different Proton versions + +### Final Fantasy VII Rebirth + +**Issue:** "DX12 is not supported on your system" +**Cause:** Game checks for specific GPU compatibility +**Status:** No fix for BC-250 yet +**Workaround:** None currently + +### Black Myth Wukong + +**Issue:** Cleaned files version - "CreateProcess() returned 2" error +**Cause:** Anti-tamper detection +**Workaround:** Use unmodified game files + +## Proton Compatibility + +**Recommended Proton Versions:** +- **Proton Experimental:** Latest features, some instability +- **Proton GE:** Community-maintained, better compatibility +- **Proton 8.0/9.0:** Stable versions + +**Per-Game Proton Selection:** +- Some games work better with specific Proton versions +- Test different versions if game doesn't work + +**Install Proton GE:** +```bash +# Install ProtonUp-Qt +sudo dnf install protonup-qt # Fedora +sudo pacman -S protonup-qt # Arch + +# Launch and install Proton-GE +protonup-qt +``` + +## Performance Optimization + +### Steam Launch Options + +**MangoHud (FPS overlay):** +``` +mangohud %command% +``` + +**Force RADV and fix glitches:** +``` +RADV_DEBUG=nohiz %command% +``` + +**GameMode (CPU optimization):** +``` +gamemoderun %command% +``` + +**Combined:** +``` +RADV_DEBUG=nohiz mangohud gamemoderun %command% +``` + +### In-Game Settings + +**Graphics Priority:** +1. **Resolution:** 1080p native or with FSR +2. **Texture Quality:** High (plenty of VRAM) +3. **Shadows:** Medium-High +4. **Effects:** Medium +5. **Post-Processing:** Medium +6. **Ray Tracing:** Selective (lighting only, or off) + +**V-Sync:** +- Disable for lowest latency +- Enable if screen tearing bothers you +- Use FreeSync/G-Sync if monitor supports it + +### System Tweaks + +**CPU Governor:** +```bash +# Set to performance mode for gaming +sudo cpupower frequency-set -g performance +``` + +**Disable Compositing (X11):** +- Reduces latency +- Automatic in most games with fullscreen + +## VRAM Requirements by Game + +| VRAM Usage | Games | Recommended Split | +|------------|-------|-------------------| +| < 2GB | Esports, indie games | 512MB | +| 2-4GB | Most games | 4GB | +| 4-6GB | AAA titles | 4GB + mem params | +| 6GB+ | Highest settings, RT | 4GB + mem params | + +**Memory Parameters for More VRAM:** +```bash +# Add to kernel parameters (see Kernel guide) +amdgpu.gttsize=14750 ttm.pages_limit=3776000 +``` + +## Benchmark Scores + +### Unigine Superposition (1080p Extreme) + +| Configuration | Score | GPU Temp | +|---------------|-------|----------| +| Stock (2000 MHz, 1000mV) | 3888 | 76°C | +| Patched (2230 MHz, 1035mV) | 4118 | 86°C | + +### Furmark (Stress Test) + +**Warning:** Unrealistic load, not representative of gaming + +| Configuration | Power Draw | +|---------------|------------| +| Stock (2000 MHz, 1000mV) | 250W | +| OC (2230 MHz, 1085mV) | 320W | + +!!!danger "Furmark Power Draw" + Furmark draws significantly more power than any game. Use game benchmarks for realistic testing. + +## Game-Specific Tweaks + +### Improve Stuttering + +**Check shader caching:** +- Steam pre-compiles shaders +- Wait for shader compilation before playing +- Can cause initial stuttering + +**Increase shader cache size:** +```bash +# Add to /etc/environment +__GL_SHADER_DISK_CACHE_SIZE=10737418240 # 10GB +``` + +### Fix Audio Clicking + +**Some games have audio issues:** +- Try different Proton versions +- Use Proton-GE +- Check game-specific ProtonDB reports + +## Resources + +### ProtonDB + +Check game compatibility: [protondb.com](https://www.protondb.com) + +- Community reports on Linux compatibility +- Specific BC-250 performance may vary +- Look for similar AMD GPU reports + +### Are We Anti-Cheat Yet + +Check anti-cheat compatibility: [areweanticheatyet.com](https://areweanticheatyet.com) + +- Some games with kernel-level anti-cheat don't work on Linux +- Situation improving over time + +## Performance Expectations + +### vs. PlayStation 5 + +| Aspect | BC-250 | PS5 | +|--------|--------|-----| +| CPU Performance | 75% | 100% | +| GPU Performance | 67% | 100% | +| Real-World Gaming | 70-80% | 100% | + +**Summary:** Expect slightly lower performance than PS5, but still very capable for 1080p gaming. + +### vs. Desktop GPUs + +**Approximate Equivalent:** +- Rasterization: Between RX 6600 and RX 6600 XT +- Ray Tracing: Similar to RX 6600 +- Memory: 16GB total (split), vs 8GB dedicated + +## Tips for Best Experience + +1. **Use FSR:** Free performance boost in supported games +2. **Install Governor:** Essential for dynamic frequency scaling +3. **Update Mesa:** Always use Mesa 25.1.3+ for best compatibility +4. **Try Proton-GE:** Better compatibility than stock Proton +5. **Monitor Temps:** Keep GPU < 85°C for stability +6. **Adequate VRAM:** Use 4GB split for AAA games +7. **Disable Mitigations:** `mitigations=off` for +10-15% FPS +8. **Optimize Kernel:** Use 6.12-6.14 LTS, avoid 6.15+ + +## See Also + +- [System Configuration](../system/governor.md) +- [BIOS VRAM Configuration](../bios/vram.md) +- [Linux Distribution Recommendations](../linux/distributions.md) +- [Performance Troubleshooting](../troubleshooting/display.md) diff --git a/docs/getting-started/introduction.md b/docs/getting-started/introduction.md new file mode 100644 index 0000000..fde9819 --- /dev/null +++ b/docs/getting-started/introduction.md @@ -0,0 +1,108 @@ +# Introduction to the AMD BC-250 + +The AMD BC-250 is an ex-cryptocurrency mining board featuring a cut-down PlayStation 5 APU. What started as specialized mining hardware has become a surprisingly capable budget gaming and compute platform thanks to extensive community reverse-engineering and Linux driver development. + +## What is the BC-250? + +The BC-250 was originally designed for cryptocurrency mining, likely Ethereum, before being repurposed and sold on the surplus market. It features: + +- **CPU:** 6x Zen 2 cores running at ~3.5GHz +- **GPU:** 24 RDNA2 Compute Units (codename "Cyan Skillfish") +- **Memory:** 16GB GDDR6 shared between CPU and GPU +- **Connectivity:** DisplayPort, M.2 NVMe slot, USB 3.0 ports +- **Power:** PCIe 8-pin connector, 220W TDP + +## Key Capabilities + +### Gaming Performance + +With proper Linux setup, the BC-250 delivers performance comparable to: + +- RX 6600 / GTX 1660 Ti range +- 1080p gaming at medium-high settings +- Ray tracing capable (though limited) +- Frame generation support via FSR + +**Example Performance:** +- Cyberpunk 2077: 60-90 FPS (1080p, high settings, FSR enabled) +- Control: 40 FPS with ray tracing +- DMC 5: 100+ FPS (1080p, high settings) + +### Compute & AI + +- LLM inference via llama.cpp (Vulkan): ~60 tokens/sec for 8B models +- Stable Diffusion: ~1.1 it/s (512x512, SD1.5) +- 10-12GB usable VRAM depending on configuration + +### Limitations + +!!!warning "Linux Only for Graphics" + Windows has NO GPU driver support. You must use Linux for any graphics acceleration, gaming, or compute workloads. + +**Other limitations:** + +- No native audio over DisplayPort (workarounds available) +- No built-in WiFi/Bluetooth (USB adapters work) +- Limited instruction set (some AVX features missing) +- High idle power consumption (~50-80W without optimization) + +## Why BC-250? + +### The Good + +**Budget Gaming:** One of the cheapest ways to build a capable 1080p gaming PC + +**Massive Community:** Active Discord with 1000+ members sharing mods, troubleshooting, and improvements + +**Open Documentation:** Multiple GitHub repositories with setup guides, BIOS mods, and driver patches + +**Hackable:** Modded BIOS unlocks VRAM configuration, overclocking, and other features + +### The Challenges + +**Requires Work:** Not plug-and-play. Expect to flash BIOS, configure Linux, and troubleshoot + +**Cooling Needed:** Stock heatsink requires modification or replacement for reliable operation + +**No Warranty:** Ex-mining hardware sold "as-is" + +**Power Hungry:** Even at idle, draws more power than modern APUs + +## Who Is This For? + +The BC-250 is ideal if you: + +- Want a cheap Linux gaming machine +- Enjoy tinkering and customization +- Need budget compute/AI inference +- Like unique hardware projects +- Want to learn Linux and system building + +**Not recommended if:** + +- You need Windows gaming support +- You want plug-and-play experience +- You need production-stable hardware +- You want modern power efficiency + +## What's Next? + +Ready to get started? Check out: + +- [Quick Start Guide](quick-start.md) - Fast-track setup checklist +- [Prerequisites](prerequisites.md) - What you need to buy +- [BIOS Flashing](../bios/flashing.md) - Essential first step + +## Board Versions + +Most BC-250 boards are functionally identical, but you may encounter different BIOS versions (P2.00, P3.00, P4.00, P5.00). All can be flashed to the community-modded BIOS for optimal performance. + +Some boards have minor heatsink variations (number of connecting tabs on fin tops), but these don't significantly affect cooling performance. + +--- + +**Community Resources:** + +- [GitHub Documentation](https://github.com/mothenjoyer69/bc250-documentation) +- [BIOS Repository](https://gitlab.com/TuxThePenguin0/bc250-bios/) +- Discord Server (1000+ members, link in GitHub) diff --git a/docs/getting-started/prerequisites.md b/docs/getting-started/prerequisites.md new file mode 100644 index 0000000..6b84db5 --- /dev/null +++ b/docs/getting-started/prerequisites.md @@ -0,0 +1,246 @@ +# Prerequisites + +Before you start, make sure you have everything you need. Missing a critical component will block your progress. + +## Essential Hardware + +### The Board + +**AMD BC-250 Board** + +- Where to buy: AliExpress, eBay +- What to look for: Any BIOS version is fine (P2.00, P3.00, P4.00, P5.00) +- Avoid: Boards without heatsink or obvious physical damage + +### Power Supply + +**12V PSU with PCIe 8-pin connector** + +Minimum requirements: + +- **Wattage:** 300W+ recommended (250W minimum) +- **Connector:** PCIe 8-pin (6+2 pin) +- **Voltage:** 12V rail with adequate amperage + +**Power draw by use case:** + +- Idle: 50-80W +- Light gaming: 100-150W +- Heavy gaming: 150-200W +- Maximum load (RT on): Up to 235W + +**Recommended PSUs:** + +- **Budget:** Flex ATX 500W +- **Compact:** FSP500-50FGBBI +- **Ultra-compact:** MeanWell LOP-300-12 (bare PCB, requires knowledge) +- **Full ATX:** Any 400W+ ATX PSU you have lying around + +!!!warning "6-pin Adapters" + Some users report success with 6-pin to 8-pin adapters, but this is NOT recommended. The board CAN draw more than 150W (the 6-pin limit). + +### Cooling + +**High Static Pressure 120mm Fan(s)** + +The stock heatsink is passive and designed for rack-mount chassis airflow. You MUST add active cooling. + +**Minimum:** 1x 120mm fan +**Recommended:** 2x 120mm fans in push-pull + +**Best fans (by community testing):** + +1. **Arctic P12 Max** - Best value, 6.9 mmH2O static pressure +2. **Noctua NF-A12x25** - Premium option, quieter +3. **Arctic P14 Max** - Larger option if you have space + +!!!danger "Fan Requirements" + You NEED high static pressure fans (3+ mmH2O). Standard case fans won't push enough air through the dense fin array. + +**Heatsink modification:** Required for axial fans + +- Straighten bent fins (they're often bent from manufacturing/shipping) +- OR cut top of fin array for easier airflow (advanced) + +[Full cooling guide →](../hardware/cooling.md) + +### Display Connection + +**DisplayPort Cable or Adapter** + +The board has NATIVE DisplayPort output. + +**Options:** + +- **Best:** Native DisplayPort cable (1080p/1440p/4K, audio works) +- **Good:** Passive DP to HDMI adapter (1080p/1440p, audio works) +- **Avoid:** Active DP to HDMI adapter (video works, audio broken) + +!!!info "Audio Limitation" + Native DP audio is partially broken in Linux. Use passive adapters for best results, or USB audio as workaround. + +[Display troubleshooting →](../troubleshooting/display.md) + +### BIOS Flashing + +**FAT32 USB Stick (any size)** + +- For flashing modded BIOS +- Any cheap USB 2.0/3.0 stick works +- Must be formatted as FAT32 + +--- + +## Essential Software + +### Linux Distribution + +The BC-250 requires Linux for GPU support. Windows has NO drivers. + +**Recommended (easiest setup):** + +- **Fedora 42 or 43 Workstation** - Most tested, good documentation +- **Bazzite** - Gaming-focused, works out-of-box + +**Also work well:** + +- CachyOS (best performance, harder setup) +- Manjaro +- Arch Linux (for advanced users) + +**Avoid:** + +- Kernel 6.15+ (GPU driver issues) +- SteamOS (Mesa too old) +- Ubuntu (packages too old without PPAs) + +[Full distribution comparison →](../linux/distributions.md) + +### Modded BIOS Files + +Download from: [bc250-bios repository](https://gitlab.com/TuxThePenguin0/bc250-bios/) + +Required files: + +- `BC250_3.00_CHIPSETMENU.ROM` - Main BIOS file +- BIOS flashing utility (included in repo) + +[BIOS flashing guide →](../bios/flashing.md) + +--- + +## Highly Recommended + +### Thermal Management + +**Thermal Paste** + +- Stock paste is old and dried out +- **Recommended:** Arctic MX-4, Thermal Grizzly Kryonaut +- **Budget:** Any non-conductive paste +- **Advanced:** PTM7950 phase-change pad (best temps) + +**Thermal Pads (for VRAM)** + +The backplate gets hot (GDDR6 chips underneath). + +- **Size:** 1mm or 1.5mm thickness +- **Option:** Add heatsink to backplate for passive cooling + +### Storage + +**M.2 NVMe SSD** + +The board has one M.2 2280 slot (PCIe Gen 3 x4). + +- **Minimum:** 256GB for OS + a few games +- **Recommended:** 1TB for comfortable gaming library +- **Note:** USB 3.0 port can handle external SSDs (limited to ~1 GB/s) + +### Connectivity + +**USB WiFi/Bluetooth Adapter** + +The board has NO built-in wireless. + +- **Budget:** Any USB WiFi dongle +- **Recommended:** Realtek RTL8822BU chipset (in-kernel driver as of 6.12+) +- **Alternative:** USB-C DAC/headphones for audio + +### Case/Mounting + +The board is bare PCB, so you'll want some kind of enclosure or mounting. + +**Options:** + +- **3D printed cases** - Many designs on Printables +- **GPU enclosures** - Some fit the BC-250 +- **DIY:** Standoffs + acrylic/wood sheet +- **Rack mount:** Original use case (need compatible chassis) + +[Community case designs →](../community/README.md) + +--- + +## Optional but Useful + +### Tools + +- **Phillips screwdriver** - For mounting, cable management +- **Thermal paste applicator** - Or use credit card +- **Multimeter** - For troubleshooting power issues + +### Recovery Tools + +**CH341A BIOS Programmer** + +For BIOS recovery if flashing fails (rare but possible). + +- Clips onto BIOS chip for external flashing +- Only needed if you brick the BIOS (uncommon) + +### Monitoring/Tuning + +These are installed via Linux package manager after setup: + +- **nvtop** - GPU monitoring +- **sensors** (lm-sensors) - Temperature monitoring +- **mangohud** - In-game FPS overlay +- **CoolerControl** - Fan curve configuration + +--- + +--- + +## Before You Order + +### Check You Have + +From existing hardware: + +- [ ] Monitor with HDMI or DisplayPort +- [ ] Keyboard and mouse +- [ ] Another PC to download Linux ISO +- [ ] USB stick for installer (8GB+) +- [ ] Basic tools (screwdriver) + +### Plan Your Build + +- [ ] Where will it go? (desk, TV console, rack) +- [ ] How will you cool it? (fan placement) +- [ ] How will you mount/enclose it? +- [ ] Audio solution? (passive adapter, USB DAC, or DisplayPort) + +--- + +## Ready to Order? + +Once you have everything on this list, you're ready to proceed: + +1. [BIOS Flashing](../bios/flashing.md) - First step after hardware arrival +2. [Quick Start Guide](quick-start.md) - Fast-track setup +3. [Full Linux Setup](../linux/distributions.md) - Detailed installation guide + +--- + +**Community Tip:** Order the BC-250 first (longest shipping time from AliExpress), then order everything else while you wait. diff --git a/docs/getting-started/quick-start.md b/docs/getting-started/quick-start.md new file mode 100644 index 0000000..3546244 --- /dev/null +++ b/docs/getting-started/quick-start.md @@ -0,0 +1,195 @@ +# Quick Start Guide + +Get your BC-250 up and running with this fast-track checklist. + +!!!warning "Requirements First" + Before starting, ensure you have everything from the [Prerequisites](prerequisites.md) page. + +## Setup Checklist + +### Step 1: BIOS Flash (Critical) + +!!!danger "Must Do First" + The modded BIOS unlocks essential features like dynamic VRAM allocation and proper fan control. Skip this and you'll have a bad time. + +1. Download modded BIOS from [bc250-bios repository](https://gitlab.com/TuxThePenguin0/bc250-bios/) +2. Format USB stick as FAT32 +3. Rename BIOS file to `robin5.00` +4. Copy to USB root directory +5. Use included flashing utility +6. **CRITICAL:** Clear CMOS after flashing (remove battery 30 seconds) + +**Difficulty:** Easy + +[Full BIOS guide →](../bios/flashing.md) + +### Step 2: BIOS Configuration + +Boot into BIOS (Del key during startup) and configure: + +- **VRAM Split:** 512MB (Dynamic) +- **Fan Control:** Full Speed (for testing) or Customize +- **IOMMU:** Disabled +- **Boot Mode:** UEFI + +[VRAM configuration guide →](../bios/vram.md) + +### Step 3: Install Linux + +!!!tip "Recommended: Fedora or Bazzite" + Fedora 42/43 and Bazzite have the best out-of-box support. Other distros work but need more manual setup. + +**Fedora Installation:** + +1. Download Fedora 42 or 43 Workstation +2. Boot installer in "Basic Graphics Mode" (enables nomodeset automatically) +3. Complete installation normally +4. Reboot + +**Difficulty:** Easy + +[Distribution comparison →](../linux/distributions.md) + +### Step 4: Install Drivers & Governor + +Run the automated setup script: + +```bash +# For Fedora +curl -s https://raw.githubusercontent.com/mothenjoyer69/bc250-documentation/refs/heads/main/fedora-setup.sh | sh +``` + +```bash +# For Bazzite +curl -s https://raw.githubusercontent.com/vietsman/bc250-documentation/refs/heads/main/oberon-setup.sh | sudo sh +``` + +This installs: + +- Mesa 25.1+ drivers +- Oberon GPU governor (required for performance) +- Sensor drivers +- System optimizations + +**Difficulty:** Easy + +### Step 5: Remove nomodeset + +!!!warning "Critical Step" + After drivers are installed, you MUST remove nomodeset or the GPU won't work properly. + +```bash +sudo nano /etc/default/grub + +# Find this line: +GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset" + +# Change to: +GRUB_CMDLINE_LINUX_DEFAULT="quiet" + +# Save and update GRUB +sudo grub2-mkconfig -o /boot/grub2/grub.cfg + +# Reboot +sudo reboot +``` + +### Step 6: Verify Installation + +Check that everything works: + +```bash +# Check Mesa version (should be 25.1+) +glxinfo | grep "OpenGL version" + +# Check GPU detected +vulkaninfo | grep deviceName +# Should show: AMD Radeon Graphics (RADV GFX1013) + +# Check governor running +systemctl status oberon-governor +# Should show: active (running) + +# Check GPU frequency +cat /sys/class/drm/card0/device/pp_dpm_sclk +# Should show multiple frequencies, one marked with * +``` + +### Step 7: Install Steam & Gaming Tools + +```bash +sudo dnf install steam mangohud goverlay + +# Enable Steam Proton for Windows games +# In Steam: Settings → Compatibility → Enable Proton for all titles +``` + +### Step 8: Test a Game! + +Launch a game through Steam. Most games work out of the box with Proton. + +For launch options in Steam (right-click game → Properties → Launch Options): + +```bash +RADV_DEBUG=nohiz %command% +``` + +This fixes graphical glitches in some games. + +--- + +## Quick Troubleshooting + +### No Display + +**Problem:** Black screen during/after installation +**Solution:** Boot with nomodeset parameter (added automatically in Fedora Basic Graphics Mode) + +### GPU Not Detected + +**Problem:** `vulkaninfo` shows llvmpipe instead of AMD GPU +**Solution:** + +1. Verify Mesa 25.1+ installed: `dnf list mesa-*` +2. Check kernel version: `uname -r` (should be 6.12-6.14, NOT 6.15+) +3. Verify nomodeset was removed from GRUB + +### Poor Performance / Low FPS + +**Problem:** Games running at 15-20 FPS +**Solution:** + +1. Check governor is running: `systemctl status oberon-governor` +2. Check GPU frequency: `cat /sys/class/drm/card0/device/pp_dpm_sclk` +3. Should NOT be stuck at 1500MHz + +### High Temperatures + +**Problem:** GPU hitting 90°C+ +**Solution:** + +1. Verify fans are spinning at full speed +2. Straighten heatsink fins (they're often bent) +3. Replace thermal paste +4. Use high static pressure fans (Arctic P12 recommended) + +[Full troubleshooting guide →](../troubleshooting/display.md) + +--- + +## Performance Targets + +You should achieve: + +- **Idle:** 40-60°C, 50-80W power draw +- **Gaming:** 70-85°C, 150-200W power draw +- **FPS:** 60+ in most games at 1080p medium-high settings + +## Next Steps + +Now that your BC-250 is running: + +1. **Optimize cooling:** [Cooling guide](../hardware/cooling.md) +2. **Tune performance:** [GPU governor configuration](../system/governor.md) +3. **Test games:** [Game compatibility list](../gaming/compatibility.md) +4. **Join community:** Discord link in GitHub repositories diff --git a/docs/hardware/cooling.md b/docs/hardware/cooling.md new file mode 100644 index 0000000..fc2a9db --- /dev/null +++ b/docs/hardware/cooling.md @@ -0,0 +1,463 @@ +# Cooling Solutions + +The BC-250 requires active cooling for gaming and desktop use. This guide covers tested cooling solutions and best practices. + +## Stock Heatsink Limitations + +### Stock Configuration + +- **Type:** Passive aluminum fin stack heatsink +- **Fin Orientation:** Vertical, front-to-back +- **Design Purpose:** Rack-mounted passive or low-airflow cooling +- **Desktop Use:** Inadequate without active airflow + +!!!danger "Stock Cooling Is Insufficient" + The stock heatsink alone will cause thermal throttling and system instability during gaming. Active cooling is **required**. + +## Temperature Targets + +### Safe Operating Temperatures + +| Component | Idle | Light Load | Gaming | Maximum | +|-----------|------|------------|--------|---------| +| GPU/APU Edge | 40-50°C | 50-60°C | 65-80°C | 90°C | +| CPU (Tctl) | 45-55°C | 55-65°C | 70-85°C | 95°C | +| Memory (underside) | 40-55°C | 50-65°C | 55-70°C | 80°C | + +!!!success "Ideal Gaming Temps" + Aim for GPU temperatures of 70-80°C during gaming for optimal performance and longevity. + +!!!warning "Thermal Throttling" + Above 85°C GPU temperature, the system may throttle performance. Above 90°C, instability and crashes can occur. + +## Recommended Cooling Solutions + +### Option 1: Arctic P12 Max (Most Popular) + +**Specifications:** +- **Model:** Arctic P12 Max +- **Size:** 120mm x 25mm +- **Speed:** Up to 3300 RPM +- **Static Pressure:** 3.94 mm H2O +- **Airflow:** 73.3 CFM +- **Noise:** 52.5 dB(A) at max + +**Performance:** +- GPU temps: 65-75°C during gaming +- Excellent static pressure for fin arrays +- Good price/performance ratio + +**Setup:** +- Mount directly over heatsink fins +- Remove or cut center fins for better airflow +- Connect to PWM header for speed control + +!!!tip "Community Favorite" + The Arctic P12 Max is the most recommended fan by the community due to excellent static pressure at a low price. + +### Option 2: Arctic P14 PWM + +**Specifications:** +- **Model:** Arctic P14 PWM +- **Size:** 140mm x 25mm +- **Speed:** Up to 1700 RPM +- **Static Pressure:** 2.40 mm H2O +- **Airflow:** 72.8 CFM +- **Noise:** 38 dB(A) at max + +**Performance:** +- GPU temps: 70-80°C during gaming +- Quieter than P12 Max +- Requires larger mounting solution + +**Setup:** +- Mount with adapter or custom shroud +- Covers more heatsink area than 120mm +- Better for low-noise builds + +### Option 3: Noctua NF-A12x25 + +**Specifications:** +- **Model:** Noctua NF-A12x25 PWM +- **Size:** 120mm x 25mm +- **Speed:** Up to 2000 RPM +- **Static Pressure:** 2.34 mm H2O +- **Airflow:** 60.1 CFM +- **Noise:** 22.6 dB(A) at max + +**Performance:** +- GPU temps: 70-85°C during gaming +- Exceptional build quality +- Very quiet operation +- Lower static pressure than Arctic P12 Max + +**Setup:** +- Mount directly over heatsink +- Best for quiet builds +- May need higher fan speed than Arctic + +!!!info "Premium Choice" + Noctua fans are higher quality and quieter but cost 2-3x more than Arctic fans. Performance is similar with Arctic P12 Max. + +### Option 4: Dual Fan Setup + +**Configuration:** +- **Primary Fan:** 120mm over center of heatsink +- **Secondary Fan:** 120mm or 80mm for RAM/VRM cooling + +**Benefits:** +- Lower primary fan speeds = quieter +- Better RAM cooling (memory gets hot!) +- Improved overall system cooling +- Redundancy if one fan fails + +**Recommended Combinations:** +- 2x Arctic P12 Max +- Arctic P14 + Arctic P12 +- Noctua NF-A12x25 + 80mm fan + +**Wiring:** +- Use fan splitter cable for single PWM control +- Or connect second fan to J4003 header + +### Option 5: Tower Cooler Conversion + +Some users have successfully mounted AM4 tower coolers: + +**Compatible Coolers:** +- Thermalright Peerless Assassin +- Various AM4/AM5 coolers with custom mounting + +**Pros:** +- Excellent cooling performance +- Quiet operation +- Uses existing hardware + +**Cons:** +- Requires custom mounting solution +- May block M.2 slot or other components +- More complex installation + +!!!warning "Advanced Modification" + Tower cooler conversions require fabricating custom mounting brackets. Not recommended for beginners. + +## Heatsink Modifications + +### Fin Straightening + +The stock heatsink often has bent fins that impede airflow. + +**Tools Needed:** +- Flat-head screwdriver +- Patience + +**Process:** +1. Gently straighten bent fins with screwdriver +2. Work systematically through fin stack +3. Avoid applying too much force (aluminum is soft) + +**Benefit:** 5-10°C temperature improvement + +### Fin Removal/Cutting + +For better fan compatibility, some users remove the center fins. + +**Methods:** +- **Dremel with cutoff wheel:** Fast but messy +- **Hacksaw:** More controlled +- **Nibbler tool:** Clean cuts +- **Leave intact:** Use fan shroud instead + +**Cutting Guide:** +1. Mark cut lines (usually center 120mm section) +2. Use Dremel or hacksaw to cut fins +3. File edges smooth +4. Clean metal dust from board + +!!!danger "Risk of Damage" + Cutting fins is irreversible. Metal shavings can short circuits. Cover the board during cutting and clean thoroughly after. + +**Temperature Impact:** 10-15°C improvement with proper fan placement + +### Thermal Paste Replacement + +The thermal paste on used BC-250 boards is often dried out. + +**Recommended Thermal Paste:** +- Arctic MX-4 (good value) +- Arctic MX-6 (newer formula) +- Thermal Grizzly Kryonaut (premium) +- Noctua NT-H1 (reliable) +- Thermalright TFX (budget option) + +**Application Method:** +1. Remove heatsink (4 screws) +2. Clean old paste with isopropyl alcohol +3. Apply small dot (pea-sized) of new paste to APU die +4. Remount heatsink with even pressure +5. Tighten screws in X pattern + +**Temperature Impact:** 5-10°C improvement if old paste was dried + +!!!tip "Use Quality Paste" + Avoid cheap thermal paste. Quality paste lasts years. PTM7950 phase-change material is also popular. + +### Memory Thermal Pad Replacement + +GDDR6 memory chips on the underside can get very hot. + +**Symptoms of Hot Memory:** +- System crashes during extended gaming +- Instability after 30-60 minutes +- Memory errors + +**Solution:** +1. Remove board from case +2. Remove old thermal pads (if present) +3. Apply new thermal pads (1.5mm-2mm thick) +4. Attach aluminum plate or heatsink to underside +5. Optional: Add fan for active cooling + +**Thermal Pad Recommendations:** +- Thermalright Odyssey (high performance) +- Arctic Thermal Pad (good value) +- Gelid GP-Ultimate (premium) + +## Fan Mounting Options + +### Option 1: 3D Printed Shroud + +Many community-designed fan shrouds are available on Printables: + +**Popular Designs:** +- [BC-250 Fan Shroud by User1](https://www.printables.com) +- [Compact Console Case](https://www.printables.com) +- [Dual Fan Mount](https://www.printables.com) + +**Advantages:** +- Custom fit for board +- Integrated mounting for fans +- Can include case design +- No modification to heatsink needed + +**Printing Requirements:** +- PLA or PETG filament +- 0.2mm layer height +- 20-30% infill + +### Option 2: Direct Fan Mount + +Mount fan directly to heatsink with screws or zip ties. + +**Zip Tie Method:** +1. Position fan over heatsink center +2. Thread zip ties through fan mounting holes +3. Loop around heatsink fins or board mounting points +4. Tighten evenly +5. Trim excess zip tie length + +**Screw Method (requires drilling):** +1. Mark screw positions +2. Drill small holes in heatsink fins +3. Use M3 or M4 screws with washers +4. Don't overtighten (aluminum is soft) + +### Option 3: Cardboard/Foam Shroud + +Quick DIY solution using cardboard or foam board. + +**Materials:** +- Cardboard or foam core board +- Hot glue or duct tape +- Box cutter + +**Process:** +1. Cut cardboard to create air duct from fan to heatsink +2. Glue/tape to create shroud around fan and heatsink +3. Ensure no air gaps +4. Mount fan to shroud + +**Pros:** Free, fast, adjustable +**Cons:** Not durable, not aesthetically pleasing + +## Fan Control + +### PWM Control with nct6687 + +The BC-250 uses the NCT6686/6687 Super I/O chip for fan control. + +**Driver Installation:** + +```bash +# Load kernel module +echo 'nct6687' | sudo tee /etc/modules-load.d/nct6687.conf + +# Rebuild initramfs +sudo dracut --regenerate-all --force # Fedora +sudo mkinitcpio -P # Arch +sudo update-initramfs -u # Debian/Ubuntu + +# Reboot +sudo reboot +``` + +**Verify:** +```bash +sensors +# Should show nct6687-isa-0a20 with fan speeds +``` + +### CoolerControl (GUI Fan Curves) + +CoolerControl provides a GUI for creating custom fan curves. + +**Installation:** + +```bash +# Bazzite +ujust install-coolercontrol + +# Fedora +sudo dnf copr enable terra/terra +sudo dnf install liquidctl coolercontrol + +# Arch +yay -S coolercontrol +``` + +**Configuration:** +1. Launch CoolerControl +2. Select BC-250 fan header +3. Create custom curve (e.g., 30% at 50°C, 100% at 80°C) +4. Apply and test + +### BIOS Fan Settings + +The BIOS offers three fan modes: + +**1. Default Mode:** +- Targets high temperatures +- Fans run at 40% minimum +- Not recommended (inadequate cooling) + +**2. Full Speed Mode:** +- Fans at 100% constantly +- Simplest and safest option +- Noisy but effective + +**3. Customize Mode:** +- Set custom temperature thresholds +- Define fan speeds at each threshold +- More granular than Default +- Can conflict with OS-level control + +!!!warning "BIOS vs OS Control" + Do not use both BIOS Customize mode and CoolerControl simultaneously. They will fight for control. + +### Manual Fan Control + +Set fan speed manually (for testing): + +```bash +# Set fan 1 to 80% speed +echo 80 | sudo tee /sys/class/hwmon/hwmon*/pwm1 + +# Set to 100% (255 = full speed) +echo 255 | sudo tee /sys/class/hwmon/hwmon*/pwm1 +``` + +## Cooling Solutions by Budget + +| Budget | Solution | Expected Temps | +|--------|----------|----------------| +| **Minimal** | Single Arctic P12, zip tie mount, cardboard shroud | 75-85°C | +| **Budget** | Arctic P12 Max, 3D printed shroud, new thermal paste | 70-80°C | +| **Standard** | Dual Arctic P12, custom shroud, thermal paste + pads | 65-75°C | +| **Premium** | Noctua fans, aluminum case, PTM7950, RAM cooling | 60-70°C | +| **Enthusiast** | Tower cooler conversion, custom water cooling | 55-65°C | + +## Cooling for Different Use Cases + +### Gaming Build +- **Requirement:** 70-80°C sustained +- **Solution:** Arctic P12 Max or P14, BIOS full speed or custom curve + +### Silent Build +- **Requirement:** <30 dB(A) noise +- **Solution:** Noctua NF-A12x25, custom fan curve (max 60%) +- **Trade-off:** Higher temps (75-85°C) + +### Compact Build +- **Requirement:** Small form factor +- **Solution:** Single 120mm fan, integrated case design +- **Challenge:** Less cooling headroom + +### LLM/Compute Build +- **Requirement:** 24/7 operation, reliability +- **Solution:** Dual 120mm fans, full speed, focus on dust filtering +- **Note:** Longevity over noise + +## Troubleshooting Cooling Issues + +### High Temps (>85°C) During Gaming + +**Causes:** +- Insufficient fan speed +- Poor fan placement +- Dried thermal paste +- Blocked airflow +- High ambient temperature + +**Solutions:** +1. Increase fan speed to 80-100% +2. Check fan is positioned over heatsink center +3. Replace thermal paste +4. Remove case panels for testing +5. Ensure room temperature <25°C + +### System Crashes After 30 Minutes + +**Symptoms:** +- Stable initially, crashes later +- Crashes during demanding games + +**Likely Cause:** Memory overheating + +**Solutions:** +1. Add thermal pads to memory chips (underside) +2. Add secondary fan for RAM cooling +3. Reduce VRAM allocation (4GB -> 512MB) +4. Improve case airflow + +### Fan Not Spinning + +**Causes:** +- Fan not connected +- Wrong header (use J1 or J4003) +- Fan header disabled in BIOS +- Faulty fan + +**Solutions:** +1. Check fan connector is firmly seated +2. Verify fan works on another system +3. Check BIOS fan settings +4. Test with another fan + +### Fan Speed Fluctuations + +**Causes:** +- Aggressive fan curve +- Temperature sensor fluctuations +- Insufficient power + +**Solutions:** +1. Use smoother fan curve (longer intervals) +2. Enable hysteresis in fan curve +3. Check PSU can deliver power + +## See Also + +- [Hardware Specifications](specifications.md) +- [Power Requirements](power.md) +- [System Configuration](../system/governor.md) +- [Troubleshooting Guide](../troubleshooting/display.md) diff --git a/docs/hardware/display.md b/docs/hardware/display.md new file mode 100644 index 0000000..f17df45 --- /dev/null +++ b/docs/hardware/display.md @@ -0,0 +1,417 @@ +# Display Connectivity + +Guide to connecting displays to the BC-250 and troubleshooting display issues. + +## Display Output Overview + +### Available Connectors + +- **DisplayPort:** 1x full-size DisplayPort 1.4 +- **HDMI:** None (requires adapter) +- **Resolution Support:** Up to 8K @60Hz or 4K @120Hz +- **HDR Support:** Yes (HDR10) + +!!!info "DisplayPort Only" + The BC-250 only has DisplayPort output. For HDMI displays, you'll need a DP to HDMI adapter. + +## DisplayPort Direct Connection + +### Recommended Setup + +**DisplayPort Cable:** +- **Version:** DisplayPort 1.4 certified +- **Length:** 1-2m (longer cables can cause issues) +- **Quality:** Use certified cables (VESA DP certified) + +**Resolution Support:** +- 1920x1080 (1080p) @ 144Hz+ +- 2560x1440 (1440p) @ 144Hz+ +- 3840x2160 (4K) @ 120Hz +- 7680x4320 (8K) @ 60Hz + +!!!success "Native DisplayPort Recommended" + If your monitor has DisplayPort, use it directly. This avoids adapter compatibility issues. + +### Audio Over DisplayPort + +**Status:** Works for most users + +**Confirmed Working Monitors:** +- MSI 27CQ6F (direct DP connection) +- Various Dell/HP monitors +- Most modern DisplayPort monitors + +**Configuration:** +```bash +# Check audio devices +aplay -l + +# Select HDMI/DisplayPort audio in system settings +# Usually appears as "HDMI/DisplayPort" or "AMD/ATI" +``` + +**Troubleshooting Audio:** +- Some monitors don't pass through audio +- Check monitor specs for audio support +- Verify speakers are enabled on monitor +- Test with headphones/external speakers first + +## DP to HDMI Adapters + +### Adapter Types + +**Passive Adapters (Not Recommended):** +- **Audio:** Usually works +- **Issues:** Compatibility problems common +- **Use Case:** Testing only + +**Active Adapters (Recommended for 4K):** +- **Audio:** Can have issues +- **Benefits:** Better signal quality, higher resolutions +- **Use Case:** 4K displays + +### Known Issues with Adapters + +!!!warning "Audio Problems with Adapters" + Many DP to HDMI adapters break audio functionality. This is a known limitation. + +**Common Symptoms:** +- Display works, no audio +- Audio works intermittently +- Audio dropouts/clicking + +**Workarounds:** +1. Use USB audio adapter/DAC +2. Use 3.5mm audio cable (no audio output on BC-250) +3. Use Bluetooth audio +4. Try different adapter brand + +### Tested Adapter Compatibility + +| Adapter Type | Display Works | Audio Works | Notes | +|--------------|---------------|-------------|-------| +| Generic Passive | Usually | Sometimes | Hit or miss | +| Cable Matters Active | Yes | No | 4K works, no audio | +| Club3D Active | Yes | Sometimes | Sporadic audio issues | +| StarTech Active | Yes | No | Reliable display, no audio | + +!!!info "Audio Adapter Limitation" + If you need audio, consider a USB audio adapter ($10-20) as a reliable solution. + +## Common Display Problems + +### No Display on Boot + +**Symptoms:** +- Monitor shows "No Signal" +- System appears to be running (fans spin) +- Power LED on board is lit + +**Causes:** +1. No GPU drivers installed +2. Incorrect kernel parameters +3. Bad cable/adapter +4. Monitor incompatibility + +**Solutions:** + +**Step 1: Boot with nomodeset** +```bash +# At GRUB, press 'e' to edit boot entry +# Find line starting with 'linux' or 'linuxefi' +# Add 'nomodeset' to end of line +# Press Ctrl+X to boot +``` + +**Step 2: Verify cable/adapter** +- Try different DisplayPort cable +- Try display on another system +- Remove adapter if using one + +**Step 3: Check BIOS settings** +- Verify display output is enabled +- Try resetting BIOS to defaults + +[See Display Troubleshooting Guide](../troubleshooting/display.md) for detailed steps. + +### Black Screen After Login + +**Symptoms:** +- GRUB menu displays +- Login screen displays +- Black screen after logging in + +**Cause:** Desktop environment issue, usually Wayland + +**Solutions:** + +**Option 1: Switch to X11** +1. At login screen, select user +2. Click gear icon (bottom right) +3. Select "GNOME on Xorg" or "Plasma (X11)" +4. Log in + +**Option 2: Disable Wayland** +```bash +# Edit GDM config +sudo nano /etc/gdm/custom.conf + +# Uncomment this line: +WaylandEnable=false + +# Save and reboot +``` + +### Display Works But Low Resolution + +**Symptoms:** +- Display detected but stuck at 1024x768 or 1920x1080 +- Higher resolutions not available +- Refresh rate limited to 60Hz + +**Causes:** +- GPU drivers not loaded +- Using software rendering (llvmpipe) +- Bad cable limiting bandwidth + +**Check Current Driver:** +```bash +glxinfo | grep "OpenGL renderer" +# Should show: AMD Radeon Graphics (RADV GFX1013) +# If shows: llvmpipe - drivers not working +``` + +**Solutions:** +1. Install Mesa 25.1+ drivers +2. Remove nomodeset from GRUB +3. Use certified DisplayPort cable +4. Update monitor firmware + +[See Mesa Installation Guide](../linux/mesa.md) + +### Flickering or Artifacts + +**Symptoms:** +- Screen flickers occasionally +- Visual artifacts (lines, blocks) +- Colors incorrect + +**Causes:** +- Bad cable +- Interference +- Overclocking too high +- Insufficient cooling + +**Solutions:** +1. Replace DisplayPort cable +2. Reduce GPU overclock +3. Check GPU temperature +4. Try different monitor input + +### HDMI 2.1 / 4K @120Hz Issues + +**Limitation:** DP to HDMI adapters often limited to HDMI 2.0 + +**HDMI 2.0 Limits:** +- 4K @ 60Hz +- No 4K @ 120Hz +- Limited HDR + +**HDMI 2.1 Requirement:** +- Requires active DP 1.4 to HDMI 2.1 adapter +- Still may have compatibility issues + +!!!tip "Use Native DisplayPort" + For high refresh rate 4K gaming, use a native DisplayPort monitor instead of adapter. + +## Multiple Display Support + +### Limitations + +**Hardware:** +- Only 1 physical DisplayPort output +- No multi-monitor support from single board + +**Options for Multiple Displays:** + +**Option 1: USB DisplayLink Adapter** +- Add USB to HDMI/DisplayPort adapter +- Works for desktop use +- Not suitable for gaming (high latency) + +**Option 2: DisplayPort MST Hub** +- Split single DP into multiple displays +- Shares bandwidth between displays +- Works for productivity +- Limited resolution per display + +**Option 3: Multiple BC-250 Boards** +- Use separate board per monitor +- Impractical for most users + +## Display Configuration + +### Setting Resolution and Refresh Rate + +**KDE Plasma:** +1. System Settings → Display and Monitor +2. Select your display +3. Choose resolution and refresh rate +4. Apply + +**GNOME:** +1. Settings → Displays +2. Select resolution from dropdown +3. Click Apply + +**Command Line (xrandr):** +```bash +# List available modes +xrandr + +# Set mode +xrandr --output DisplayPort-0 --mode 1920x1080 --rate 144 +``` + +### Custom Resolutions + +Some monitors may require custom modelines: + +```bash +# Generate modeline +cvt 2560 1440 144 + +# Add to xrandr +xrandr --newmode "2560x1440_144.00" ... +xrandr --addmode DisplayPort-0 "2560x1440_144.00" +``` + +### HDR Configuration + +HDR support in Linux is improving but still experimental: + +**Check HDR Support:** +```bash +# KDE Plasma 6+: HDR toggle in display settings +# GNOME: Limited HDR support +``` + +**Notes:** +- HDR support varies by desktop environment +- KDE Plasma 6+ has best HDR support +- May require Wayland session +- Game-specific HDR may not work + +## Audio Solutions + +Since audio over HDMI adapters is unreliable, here are alternative solutions: + +### Option 1: USB Audio Adapter + +**Recommended Adapters:** +- Creative Sound Blaster Play! 4 +- Sabrent USB Audio Adapter +- FiiO K3 DAC (audiophile option) + +**Setup:** +1. Plug USB audio adapter into BC-250 USB port +2. Connect speakers/headphones to adapter +3. Select USB audio device in system settings + +### Option 2: Bluetooth Audio + +**Requirements:** +- USB Bluetooth adapter +- Bluetooth speakers/headphones + +**Setup:** +```bash +# Install Bluetooth tools +sudo dnf install bluez bluez-tools # Fedora +sudo pacman -S bluez bluez-utils # Arch + +# Enable Bluetooth +sudo systemctl enable --now bluetooth + +# Pair device (use GUI or bluetoothctl) +``` + +**Latency Warning:** Bluetooth adds ~100-200ms latency, noticeable in gaming + +### Option 3: Monitor with Displayport + Speakers + +If your monitor has DisplayPort input AND built-in speakers: +- Audio over DisplayPort usually works +- Check monitor supports audio input +- Enable speakers in monitor settings + +## Troubleshooting Checklist + +### Before Asking for Help + +1. **Verify hardware:** + - Cable is securely connected both ends + - Monitor works with another device + - Power LED on monitor is lit + +2. **Check software:** + ```bash + # GPU detected? + lspci | grep VGA + + # Driver loaded? + lsmod | grep amdgpu + + # Mesa version? + glxinfo | grep "OpenGL version" + ``` + +3. **Test with nomodeset:** + - If display works with nomodeset, driver issue + - If no display with nomodeset, hardware issue + +4. **Try different cable/adapter:** + - Cables can fail + - Adapters have compatibility issues + +5. **Check logs:** + ```bash + # Check for errors + dmesg | grep -i amdgpu + journalctl -b | grep -i drm + ``` + +## Display Recommendations by Use Case + +### Gaming @ 1080p 144Hz +- **Display:** Any 1080p 144Hz+ DisplayPort monitor +- **Cable:** DP 1.4 certified cable +- **Expected:** Works flawlessly + +### Gaming @ 1440p 144Hz +- **Display:** 1440p 144Hz+ DisplayPort monitor +- **Cable:** DP 1.4 certified, <2m length +- **Expected:** Works well + +### 4K @ 60Hz +- **Display:** 4K 60Hz monitor with DisplayPort OR HDMI +- **Cable:** DP 1.4 cable OR active DP-to-HDMI adapter +- **Audio:** Use USB audio if adapter needed + +### 4K @ 120Hz +- **Display:** 4K 120Hz DisplayPort monitor +- **Cable:** DP 1.4 certified cable +- **Note:** May need to manually set 120Hz in settings + +### TV Connection (Living Room Gaming) +- **Display:** 4K TV with HDMI 2.0+ +- **Adapter:** Active DP to HDMI 2.0 adapter +- **Audio:** Use TV speakers (if adapter supports audio) OR Bluetooth/USB audio +- **Note:** Test adapter audio before permanent setup + +## See Also + +- [Troubleshooting Display Issues (Detailed)](../troubleshooting/display.md) +- [Hardware Specifications](specifications.md) +- [BIOS Configuration](../bios/flashing.md) +- [Mesa Driver Installation](../linux/mesa.md) diff --git a/docs/hardware/power.md b/docs/hardware/power.md new file mode 100644 index 0000000..4ce6eff --- /dev/null +++ b/docs/hardware/power.md @@ -0,0 +1,410 @@ +# Power Supply Requirements + +Comprehensive guide to powering your BC-250 board safely and reliably. + +## Power Requirements Overview + +The BC-250 is a high-performance board that requires proper power delivery for stable operation. + +### Basic Requirements + +- **Voltage:** 12V DC +- **Connector:** PCIe 8-pin (6+2 pin) +- **TDP:** 220W (rated) +- **Actual Power Draw:** 50-235W depending on workload +- **Minimum PSU Recommendation:** 250W on 12V rail + +!!!danger "Critical Warning" + Always verify your PSU can deliver the required wattage on the 12V rail. Many budget PSUs cannot sustain their rated output, leading to system instability, crashes, or PSU failure. + +## Measured Power Consumption + +Real-world power measurements from community testing: + +| Workload | Power Draw (Watts) | Notes | +|----------|-------------------|-------| +| Idle (no governor) | 85-105W | GPU locked at 1500 MHz | +| Idle (with governor) | 65-85W | GPU at 1000 MHz minimum | +| Desktop / Light Use | 70-90W | Web browsing, media playback | +| Gaming (Medium) | 120-150W | 1080p gaming, non-RT | +| Gaming (Heavy) | 160-200W | Demanding AAA titles | +| Cyberpunk 2077 (RT) | **235W** | Maximum observed in real gaming | +| Furmark (Stock) | 250W | Stress test (unrealistic) | +| Furmark (OC to 2230 MHz) | **320W** | Extreme stress test | + +!!!info "Power Savings with Governor" + Installing the GPU governor can reduce idle power consumption by 20-30W by dynamically scaling GPU frequency. + +[See GPU Governor Guide](../system/governor.md) + +## Recommended PSU Options + +### Option 1: Dell D220P-01 (Most Popular) + +**Specifications:** +- **Model:** Dell D220P-01 / D250AD-00 +- **Output:** 12V @ 18A (216W) +- **Form Factor:** Small brick-style +- **Pros:** Cheap, compact, quiet +- **Cons:** Proprietary connector (requires adapter or modification) + +**Where to Buy:** +- eBay: Commonly available with offers accepted +- Check eBay for current listings + +**Connection Method:** +1. Short pin 16 to ground (pin 15) to turn PSU on +2. Wire 12V output (pins 1-10) to PCIe 8-pin connector +3. Wire ground (pins 11-15) to PCIe 8-pin connector + +!!!tip "Power-On Control" + The BC-250 has auto-power-on when 12V is applied. Alternatively, use the rear power button to manually start the board. + +### Option 2: Mean Well LOP-300-12 + +**Specifications:** +- **Model:** Mean Well LOP-300-12 +- **Output:** 12V @ 25A (300W) +- **Form Factor:** Open frame +- **Pros:** High quality, medical-grade, reliable +- **Cons:** Requires custom mounting and wiring + +**Features:** +- Over-current protection +- Over-voltage protection +- Thermal shutdown +- Medical-grade safety certification + +!!!warning "Wiring Required" + This PSU has bare terminals. You'll need to crimp your own PCIe 8-pin connector. + +### Option 3: FlexATX PSU (500W) + +**Specifications:** +- **Form Factor:** FlexATX (150mm x 81.5mm x 40.5mm) +- **Output:** 500W total, ~300W on 12V rail +- **Pros:** Standard ATX connectors, compact, modular options available +- **Cons:** Fan can be loud + +**Recommended Models:** +- FSP FSP500-50FGBBI (popular, 500W) +- Metalfish 500W FlexATX (new, modular) +- Enhance ENP-7660B (high quality, 600W) + +!!!success "Plug and Play" + FlexATX PSUs have standard PCIe 8-pin connectors, making installation straightforward. + +### Option 4: Standard ATX PSU + +**Specifications:** +- **Form Factor:** ATX (150mm x 140mm x 86mm) +- **Output:** 400W+ recommended +- **Pros:** Widely available, reliable, standard connectors +- **Cons:** Large, overkill for BC-250 + +**Minimum Recommendations:** +- 400W+ total output +- 20A+ on 12V rail (240W+) +- 80 Plus Bronze or better efficiency + +!!!info "Using Existing PSU" + If you have a spare ATX PSU, it will work fine. Use a standard PCIe 8-pin cable. + +### Option 5: Server PSU + +**Specifications:** +- **Form Factor:** Various (1U, 2U) +- **Output:** 700W-1200W typical +- **Pros:** Very cheap secondhand, high power, efficient +- **Cons:** **Extremely loud**, requires modifications + +**Typical Models:** +- HP DPS-800GB +- Delta DPS-750RB +- Bitmain APW3++ (220W idle!) + +!!!danger "Not Recommended for Desktop Use" + Server PSUs use high-speed (10,000+ RPM) fans that sound like jet engines. Only suitable for rack-mounted or garage installations. + +### Option 6: 12V LED/Industrial PSU + +**Specifications:** +- **Output:** 12V @ 30A (360W) +- **Form Factor:** Enclosed metal box +- **Pros:** Budget-friendly, fanless or quiet fan +- **Cons:** Build quality varies, may lack protections + +**Considerations:** +- Verify output is 12V DC (not AC) +- Check amperage rating (need 20A minimum) +- Look for short-circuit and over-current protection + +!!!warning "Quality Varies Widely" + Some LED PSUs are excellent, others are fire hazards. Research specific models before purchasing. + +## PSU Safety and Requirements + +### Calculating Required Wattage + +**Formula:** +``` +Required Wattage = Max Power Draw * Safety Margin +Required Wattage = 235W * 1.2 = 282W +``` + +**Minimum:** 250W on 12V rail +**Recommended:** 300W+ on 12V rail for overclocking headroom + +!!!tip "Check the 12V Rail" + Many PSUs split 12V output across multiple rails. Ensure a single rail can provide at least 220W, or use a PSU with a single 12V rail. + +### Connector Requirements + +**PCIe 8-pin (6+2 pin) Pinout:** + +| Pin | Function | +|-----|----------| +| 1-3 | 12V | +| 4-6 | Ground | +| 7-8 | Ground (sense pins) | + +!!!info "Using 6-pin Connector" + Some users report success with 6-pin connectors (missing pins 7-8), but this is **not recommended**. The missing sense pins can cause compatibility issues. + +### Cable Quality + +- **Use 18 AWG or thicker** wire for high current capacity +- **Avoid adapters** (SATA-to-PCIe, Molex-to-PCIe) - these are fire hazards +- **Check cable temperature** under load - warm cables indicate resistance issues +- **Crimp properly** if making custom cables - poor crimps create hot spots + +!!!danger "Adapter Fire Hazard" + SATA connectors are rated for 54W. Using SATA-to-PCIe adapters with a 220W board is a **fire risk**. Two Molex connectors (156W combined) are also insufficient. + +## Power-On Control + +### Method 1: Auto Power-On + +The BC-250 starts automatically when 12V power is applied. + +**Setup:** +1. Connect PSU to BC-250 +2. Turn on PSU +3. Board powers on immediately + +**Use Case:** Simple setups where PSU has an on/off switch + +### Method 2: Power Button + +The BC-250 has a 2-pin power button header on the rear of the board. + +**Setup:** +1. Short the power button pins to turn on +2. Short again to turn off (soft shutdown) +3. Hold for 5+ seconds for hard power-off + +**Use Case:** Builds with a case and external power button + +### Method 3: ATX PSU Control + +For ATX PSUs, the 24-pin connector includes a power-on signal. + +**Permanent On (Jumper Method):** +1. Short pin 16 (green, PS_ON) to any ground pin (black) +2. PSU runs whenever plugged in + +**Soft Power Control:** +1. Leave PS_ON pin unconnected +2. Use BC-250 power button header +3. Connect power button header to PSU PS_ON signal + +!!!info "Remote Power On" + Some users have successfully implemented Wake-on-LAN for remote power control. + +## Power Supply Issues and Troubleshooting + +### System Crashes Under Load + +**Symptoms:** +- System shuts off during gaming or benchmarks +- Random reboots +- PSU makes clicking sound before shutdown + +**Cause:** PSU over-current protection triggered + +**Solutions:** +1. **Verify PSU wattage** - must support 220W+ on 12V rail +2. **Check cable connections** - loose connections create resistance +3. **Reduce GPU voltage** - lower max voltage in governor config +4. **Upgrade PSU** - use higher wattage unit + +!!!warning "Insufficient PSU Power" + A 180W PSU **will not work** for gaming. A 220W PSU is marginal and may trip protection during demanding workloads. + +### PSU Fan Noise + +**Symptoms:** +- PSU fan makes rattling or buzzing sound +- Fan speed fluctuates +- High-pitched coil whine + +**Causes:** +- Cheap bearing (sleeve bearing) +- Coil whine from transformers +- Fan hitting PSU housing + +**Solutions:** +1. **Replace PSU fan** - upgrade to quality fan (Noctua, Arctic) +2. **Accept the noise** - some PSUs are just noisy +3. **Upgrade PSU** - higher quality units are quieter + +### Coil Whine + +**Symptoms:** +- High-pitched whine from PSU +- Worse at idle or low load +- Varies with GPU frequency + +**Cause:** Transformer coils vibrating at audible frequencies + +**Solutions:** +1. **Apply load** - some PSUs only whine at low loads +2. **Damping material** - hot glue on transformer (risky!) +3. **Replace PSU** - no reliable fix for coil whine + +### PSU Overheating + +**Symptoms:** +- PSU shuts down after 10-30 minutes +- PSU fan runs at max speed +- PSU housing is very hot to touch + +**Causes:** +- Inadequate PSU cooling +- PSU loaded beyond rating +- High ambient temperature + +**Solutions:** +1. **Improve PSU airflow** - ensure PSU fan intake is clear +2. **Add case fan** - exhaust hot air from PSU area +3. **Reduce load** - lower GPU max frequency/voltage +4. **Upgrade PSU** - use higher wattage unit with better cooling + +## DIY Power Supply Modifications + +### Making Custom PCIe Cables + +**Required Tools:** +- Wire crimpers +- PCIe 8-pin connector housing +- 18 AWG wire (silicone insulation recommended) +- Pin removal tool (optional) + +**Steps:** +1. Cut 8 wires to appropriate length (~30cm) +2. Strip 5mm of insulation from each end +3. Crimp terminals onto wire ends +4. Insert pins into PCIe connector (3x 12V, 5x GND) +5. Verify continuity with multimeter +6. Test with low load before full gaming + +!!!danger "DIY Safety" + Poor crimps can cause fire. Test cables under load and monitor temperature. If cables get warm, they have high resistance and should be redone. + +### Shorting ATX Connector for Always-On + +**24-Pin ATX Pinout:** +- Pin 16 (Green): PS_ON signal +- Pins 15, 17 (Black): Ground + +**Method:** +1. Use paperclip or jumper wire +2. Bridge pin 16 to pin 15 or 17 +3. PSU turns on when plugged in + +**Use Case:** External PSU that powers BC-250 only + +### Adding Power Switch + +**Components:** +- Momentary push button switch +- 2-conductor wire + +**Wiring:** +1. Connect switch between PSU PS_ON and GND +2. OR connect to BC-250 power button header +3. Test that short press powers on/off + +## Power Efficiency and Cost + +### Energy Cost Calculations + +**Example: Gaming 4 hours/day** + +| Configuration | Power | Daily kWh | Monthly kWh | Cost/Month* | +|---------------|-------|-----------|-------------|-------------| +| Idle (no governor) | 95W | 1.90 | 57.0 | $7.41 | +| Gaming (no governor) | 180W | 0.72 | 21.6 | $2.81 | +| **Total (no governor)** | - | **2.62** | **78.6** | **$10.22** | +| Idle (with governor) | 75W | 1.50 | 45.0 | $5.85 | +| Gaming (with governor) | 180W | 0.72 | 21.6 | $2.81 | +| **Total (with governor)** | - | **2.22** | **66.6** | **$8.66** | + +*Assuming $0.13/kWh (US average) + +!!!tip "Save Money with Governor" + Installing the GPU governor saves ~$1.50/month in electricity costs. + +### PSU Efficiency + +**80 Plus Certification:** +- **80 Plus Bronze:** 82-85% efficient at 50% load +- **80 Plus Silver:** 85-88% efficient at 50% load +- **80 Plus Gold:** 87-90% efficient at 50% load +- **80 Plus Platinum:** 90-92% efficient at 50% load + +**Efficiency Impact:** +- Bronze PSU at 180W load: ~212W from wall +- Platinum PSU at 180W load: ~197W from wall +- Savings: ~15W (varies with load) + +## Multi-Board Setups + +### Powering Multiple BC-250s + +For clusters (LLM inference, compute workloads), power considerations scale up: + +**Example: 12x BC-250 Cluster** + +| State | Per Board | Total (12x) | Daily Cost* | +|-------|-----------|-------------|-------------| +| Idle (no governor) | 85W | 1020W | $3.19 | +| Idle (with governor) | 65W | 780W | $2.44 | +| Full Load | 195W | 2340W | $7.30 | + +*Assuming $0.13/kWh, 24h runtime + +!!!warning "High Power Consumption" + A 12-board cluster consumes 780W-2340W. Ensure your electrical circuit can handle this load (15A circuit = 1800W max). + +**Power Distribution:** +- **Option 1:** Individual PSUs per board +- **Option 2:** Single high-wattage server PSU with breakout board +- **Option 3:** Multiple PSUs with distribution board + +## Recommended PSU Summary + +| Use Case | Recommended PSU | +|----------|-----------------| +| **Budget Build** | Dell D220P-01 | +| **Compact Build** | FlexATX 500W | +| **Quality Build** | Mean Well LOP-300-12 | +| **Reuse Existing** | ATX 400W+ | +| **Multi-Board** | Server PSU + breakout | + +## See Also + +- [Hardware Specifications](specifications.md) +- [Cooling Solutions](cooling.md) +- [GPU Governor Setup](../system/governor.md) +- [Troubleshooting Display Issues](../troubleshooting/display.md) diff --git a/docs/hardware/specifications.md b/docs/hardware/specifications.md new file mode 100644 index 0000000..dad3c4e --- /dev/null +++ b/docs/hardware/specifications.md @@ -0,0 +1,237 @@ +# Hardware Specifications + +Complete technical specifications for the AMD BC-250 board. + +## APU Overview + +The BC-250 features a cut-down PS5 APU (codenamed "Oberon" / "Cyan Skillfish"): + +### CPU Specifications + +- **Cores:** 6x Zen 2 cores (2 cores disabled from original 8-core design) +- **Base Clock:** ~3.5 GHz +- **Architecture:** Zen 2 microarchitecture +- **Instruction Set:** x86-64 +- **Cache:** Shared L3 cache (reduced from PS5 config) + +!!!info "CPU Performance" + The CPU is intentionally cut down for mining purposes. While adequate for gaming and general computing, it's not the board's primary strength. + +### GPU Specifications + +- **Architecture:** RDNA 2 (same generation as RX 6000 series) +- **Compute Units:** 24 CUs (down from 36 CUs in full PS5 APU) +- **Codename:** Cyan Skillfish (gfx1013) +- **Base Frequency:** 1500 MHz (locked without governor) +- **Maximum Frequency:** 2000-2230 MHz (with kernel patch and governor) +- **Performance:** Comparable to RX 6600 / RTX 3060 Ti in gaming workloads + +!!!success "GPU Features" + - Hardware ray tracing support (RDNA 2 RT cores) + - FSR (FidelityFX Super Resolution) compatible + - Vulkan 1.3 support + - No video encoding/decoding (VCN disabled) + +### Memory Configuration + +- **Total Memory:** 16GB GDDR6 +- **Memory Type:** GDDR6 (PS5 specification) +- **Memory Speed:** 14 Gbps +- **Memory Bus:** 256-bit +- **Memory Bandwidth:** ~448 GB/s + +!!!warning "Memory Split Required" + The 16GB is shared between CPU and GPU. You must configure the split in BIOS: + + - **512MB GPU / 15.5GB CPU:** Recommended for desktop/light gaming + - **4GB GPU / 12GB CPU:** Recommended for modern games + - **Dynamic allocation:** Available but can cause issues with some applications + +[See VRAM Configuration Guide](../bios/vram.md) for detailed setup instructions. + +## Physical Specifications + +### Board Dimensions + +- **Form Factor:** Custom mining board (non-standard) +- **Length:** Approximately 200mm +- **Width:** Approximately 115mm +- **PCB Thickness:** Standard +- **Weight:** ~400g (with heatsink) + +### Connectors and Headers + +#### Power Connectors + +- **Main Power:** 1x PCIe 8-pin (6+2 pin) +- **Power Delivery:** Direct 12V input +- **Maximum Draw:** 220W TDP (measured up to 235W in extreme cases) + +!!!danger "Power Requirements" + Use a quality PSU with at least 220W available on the 12V rail. Poor quality power supplies can cause instability and system crashes. + +#### Display Output + +- **DisplayPort:** 1x full-size DisplayPort 1.4 +- **Resolution Support:** Up to 4K @120Hz, 8K @60Hz +- **Audio:** Audio over DisplayPort (compatibility varies) +- **HDMI:** None (requires DP to HDMI adapter) + +#### Storage + +- **M.2 Slot:** 1x M.2 2280 slot (PCIe Gen 3 x2) +- **Speed:** ~1 GB/s maximum +- **USB:** 1x USB 3.0 port (Type-A) +- **USB Speed:** ~480 MB/s (SATA speed equivalent) + +#### Fan Headers + +- **Primary Fan:** 1x 4-pin PWM header (J1) +- **Secondary Fan:** 1x 4-pin PWM header (J4003) +- **Voltage:** 12V +- **Control:** PWM (Pulse Width Modulation) + +!!!tip "Fan Control" + The nct6687 kernel module enables PWM control. Without it, sensors are read-only. + +#### Other Headers + +- **Power Button:** 2-pin header (rear of board) +- **Debug Header:** 20-pin AMD HDT1 debug connector +- **SPI Flash:** Header for BIOS flashing +- **Super I/O:** NCT6686/6687 chip for sensors and fan control + +## Heatsink and Cooling + +### Stock Heatsink + +- **Type:** Passive aluminum fin stack +- **Fin Count:** High-density vertical fins +- **Orientation:** Fins run front-to-back +- **Mounting:** Screwed directly to PCB +- **Base:** Direct contact with APU die + +!!!warning "Stock Cooling Inadequate" + The stock heatsink is designed for passive or low-airflow rack cooling. For desktop gaming use, active cooling is **required**. + +### Thermal Interface + +- **APU Thermal Compound:** May be dried out on used boards +- **Memory Thermal Pads:** On underside of board +- **Recommended Refresh:** Replace thermal paste and pads for optimal performance + +[See Cooling Guide](cooling.md) for recommended solutions. + +## Power Consumption + +### Measured Power Draw + +| State | Power Consumption | +|-------|-------------------| +| Idle (no governor) | 85-105W | +| Idle (with governor) | 65-85W | +| Desktop use | 70-90W | +| Light gaming | 120-150W | +| AAA gaming | 160-200W | +| Maximum (Cyberpunk RT) | 235W | + +!!!info "Power Optimization" + Installing the GPU governor can save 20-30W at idle by reducing GPU frequency to 1000 MHz. + +### Power Efficiency + +- **Efficiency:** Moderate (mining-optimized, not efficiency-optimized) +- **Idle Power:** Higher than typical desktop due to GDDR6 memory +- **Comparison:** Less efficient than modern desktop components but acceptable for the performance level + +## Limitations and Notes + +### Known Hardware Limitations + +#### No Video Encode/Decode + +- **VCN (Video Core Next):** Disabled in hardware or firmware +- **Hardware Encoding:** Not available +- **Hardware Decoding:** Not available +- **Software Fallback:** CPU decoding works but is power-hungry + +!!!failure "No VCN Support" + There is no way to enable hardware video encoding/decoding. The silicon may have been binned without working VCN, or it's disabled in SMU firmware. + +#### IOMMU Issues + +- **IOMMU:** Does not work reliably +- **Virtualization:** GPU passthrough not possible +- **Workaround:** Disable IOMMU in BIOS and kernel parameters + +#### Memory Architecture + +- **Unified Memory:** CPU and GPU share the same 16GB pool +- **Dynamic Allocation:** Can cause issues with some games +- **Static Split:** More reliable but less flexible + +### Unsupported Features + +- **Windows Gaming:** No Windows GPU drivers available +- **Secure Boot:** Not supported +- **TPM:** Not present +- **Thunderbolt:** Not available + +## Comparison to Similar Hardware + +### vs. PlayStation 5 + +| Feature | BC-250 | PlayStation 5 | +|---------|--------|---------------| +| CPU Cores | 6 cores | 8 cores | +| CPU Clock | ~3.5 GHz fixed | Up to 3.5 GHz (variable) | +| GPU CUs | 24 CUs | 36 CUs | +| GPU Clock | 2000 MHz max | 2230 MHz (variable) | +| Memory | 16GB GDDR6 | 16GB GDDR6 | +| VCN | Disabled | Enabled | +| Form Factor | Mining board | Console | + +### vs. Desktop GPUs + +**Approximate Performance Equivalents:** + +- **Rasterization:** Between RX 6600 and RX 6600 XT +- **Ray Tracing:** Similar to RX 6600 (entry-level RT performance) +- **Compute:** Similar to RX 6600 (RDNA 2 architecture) +- **Memory:** 16GB total (configurable split) vs 8GB dedicated VRAM + +!!!success "Gaming Performance" + For 1080p gaming, the BC-250 performs admirably, achieving 60+ FPS in most modern games at high settings. + +## Verification Commands + +Check your hardware specifications with these commands: + +```bash +# Check CPU information +lscpu | grep -E "Model name|CPU\(s\)|Thread|Core" + +# Check GPU information +lspci | grep VGA +vulkaninfo | grep deviceName + +# Check memory information +free -h +vulkaninfo | grep -i memory + +# Check Mesa version +glxinfo | grep "OpenGL version" + +# Check kernel version +uname -r + +# Check sensors +sensors +``` + +## See Also + +- [Power Requirements](power.md) +- [Cooling Solutions](cooling.md) +- [Display Connectivity](display.md) +- [BIOS Configuration](../bios/flashing.md) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..cc0a632 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,135 @@ +# AMD BC250 Documentation + +Welcome to the comprehensive documentation for the **AMD BC250** board - a powerful ex-mining board featuring a cut-down PlayStation 5 APU. + +## What is the BC250? + +The AMD BC250 is a compact motherboard built around AMD's "Cyan Skillfish" APU, originally designed for cryptocurrency mining. The community has transformed this hardware into a capable Linux gaming and desktop system. + +### Key Specifications + +- **CPU:** 6x AMD Zen 2 cores @ ~3.5GHz +- **GPU:** 24 RDNA2 Compute Units (1536 shaders) +- **Memory:** 16GB GDDR6 shared memory +- **TDP:** 220W (50W idle - 235W max load) +- **OS Support:** Linux only (no Windows GPU drivers) + +!!! warning "Important" + The BC250 requires **Linux** for GPU functionality. Windows drivers do not support the GPU, making it CPU-only on Windows. + +## Quick Links + +
+ +- :material-rocket-launch:{ .lg .middle } __Getting Started__ + + --- + + New to BC250? Start here for board introduction, prerequisites, and quick setup guide. + + [:octicons-arrow-right-24: Get Started](getting-started/introduction.md) + +- :fontawesome-solid-microchip:{ .lg .middle } __Hardware__ + + --- + + Detailed hardware specifications, power requirements, cooling solutions, and pinouts. + + [:octicons-arrow-right-24: Hardware Guide](hardware/specifications.md) + +- :material-linux:{ .lg .middle } __Linux Setup__ + + --- + + Distribution guides, kernel configuration, Mesa installation for Fedora, Bazzite, Arch, and more. + + [:octicons-arrow-right-24: Linux Setup](linux/distributions.md) + +- :material-flash:{ .lg .middle } __BIOS & Firmware__ + + --- + + BIOS flashing procedures, VRAM configuration, overclocking, and recovery. + + [:octicons-arrow-right-24: BIOS Guide](bios/flashing.md) + +- :material-gamepad-variant:{ .lg .middle } __Gaming & Performance__ + + --- + + Game compatibility database, performance tips, benchmarks, and FSR setup. + + [:octicons-arrow-right-24: Gaming Guide](gaming/compatibility.md) + +- :material-wrench:{ .lg .middle } __Troubleshooting__ + + --- + + Common issues and solutions for display, boot, performance, and stability problems. + + [:octicons-arrow-right-24: Troubleshooting](troubleshooting/display.md) + +
+ +## Critical Requirements + +Before you begin, be aware of these essential requirements: + +!!! danger "Kernel Version" + **AVOID Linux kernel 6.15+** - Known to cause GPU driver failures. Use **6.12.x - 6.14.x LTS** for stability. + +!!! warning "Mesa Version" + **Mesa 25.1.3+ minimum**, 25.1.5+ recommended for proper RADV driver support. + +!!! info "BIOS Configuration" + **P3.00 BIOS** with **512MB dynamic VRAM allocation** is the recommended configuration for most use cases. + +!!! tip "Installation Boot Parameter" + Use `nomodeset` as a kernel boot parameter during OS installation. Remove after drivers are installed. + +## Recommended Linux Distributions + +Based on extensive community testing: + +1. **Fedora 42/43** - Most tested, beginner-friendly, Mesa 25.1+ in repos +2. **Bazzite** - Gaming-focused, works out-of-box +3. **CachyOS** - Best performance for advanced users +4. **Arch Linux** - Maximum control and flexibility +5. **Debian/PikaOS** - Stable with low power consumption + +## Community + +This documentation is built from the collective knowledge of the BC250 community, combining: + +- **1000+ Discord community members** sharing real-world testing and troubleshooting +- **100+ verified solutions** for common issues +- **30+ tested games** with performance data +- **Multiple distribution-specific setup guides** + +### Contributing + +This documentation is based on community Discord discussions and the [BC250 GitHub repository](https://github.com/mothenjoyer69/bc250-documentation). If you find errors or have improvements, please contribute! + +## Documentation Status + +!!! success "Content Sources" + - **Primary:** BC250 Discord community (9,716 technical messages analyzed) + - **Secondary:** BC250 GitHub documentation repository + - **Last Updated:** November 21, 2025 + +--- + +## Quick Start Checklist + +For those eager to get started, here's a minimal checklist: + +- [ ] Verify you have proper cooling (high static pressure fan recommended) +- [ ] Ensure 300W+ 12V power supply with 8-pin PCIe connector +- [ ] Download Linux distribution ISO (Fedora 43 or Bazzite recommended for beginners) +- [ ] Flash BIOS to P3.00 with 512MB dynamic VRAM allocation +- [ ] Install Linux with `nomodeset` boot parameter +- [ ] Install Mesa 25.1.5+ and RADV driver +- [ ] Install GPU governor for optimal performance +- [ ] Remove `nomodeset` from boot parameters + +For detailed step-by-step instructions, see the [Quick Start Guide](getting-started/quick-start.md). diff --git a/docs/linux/distributions.md b/docs/linux/distributions.md new file mode 100644 index 0000000..c318618 --- /dev/null +++ b/docs/linux/distributions.md @@ -0,0 +1,385 @@ +# Linux Distribution Recommendations + +Choosing the right Linux distribution for your BC-250 is important for a smooth experience. This guide covers tested distributions with their pros, cons, and suitability. + +## Quick Recommendations + +| User Type | Recommended Distro | Reason | +|-----------|-------------------|--------| +| **Beginners** | Fedora 42/43 or Bazzite | Easy setup, works out-of-box, good documentation | +| **Gaming Focus** | Bazzite | Steam Deck experience, pre-configured for gaming | +| **Performance** | CachyOS | Optimized packages, best frame times | +| **Advanced Users** | Arch Linux | Full control, latest packages | +| **Stability** | Debian/PikaOS | Rock-solid, good for production work | + +## Fedora 42/43 (Most Recommended for Beginners) + +### Overview + +**Status:** Highly recommended, most tested +- **Desktop:** GNOME or KDE Plasma +- **Kernel:** 6.14.x LTS (avoid 6.15+) +- **Mesa:** 25.1+ in mainline repos (Fedora 43) + +### Pros + +- Easiest setup with automated scripts +- Mesa 25.1 now in official repositories (no COPR needed) +- Extensive community documentation +- Good power efficiency (~10W less idle vs some distros) +- Strong hardware support + +### Cons + +- Kernel 6.15+ breaks BC-250 (must stay on 6.14 or earlier) +- Some users report MTG Arena crashes specifically on Fedora +- Auto-updates can break things if not careful + +### Setup Resources + +- Automated script: [mothenjoyer69/bc250-documentation](https://github.com/mothenjoyer69/bc250-documentation) +- Governor COPR: `filippor/bazzite` +- [Detailed Fedora Setup Guide](fedora.md) + +### Installation Notes + +!!!warning "Use Basic Graphics Mode" + During installation, select "Troubleshooting" → "Install in Basic Graphics Mode" to avoid black screen issues. + +## Bazzite (Best for Gaming) + +### Overview + +**Status:** Steam Deck-like experience, works OOTB +- **Base:** Fedora Atomic (immutable) +- **Desktop:** Deck UI or Desktop Mode (GNOME/KDE) +- **Kernel:** Custom kernel with BC-250 patches included +- **Mesa:** 25.1+ out-of-box + +### Pros + +- Works out-of-box with latest ISO +- Includes GPU frequency patch natively (up to 2230MHz) +- Immutable system (harder to break) +- Governor installation script available +- Steam Deck UI for couch gaming +- Pre-configured for gaming + +### Cons + +- Immutable system harder to customize +- Some users report sleep/wake issues +- Package installation more complex (rpm-ostree) +- Updates can occasionally break things (use pinning) + +### Setup + +```bash +# After installation, install governor: +curl -s https://raw.githubusercontent.com/vietsman/bc250-documentation/refs/heads/main/oberon-setup.sh | sudo sh + +# Pin working version after successful boot: +rpm-ostree pin 0 +``` + +### Recovery + +If an update breaks your system: + +```bash +# Rollback to previous version +rpm-ostree rollback +systemctl reboot +``` + +## CachyOS (Best Performance) + +### Overview + +**Status:** Best gaming performance, requires advanced setup +- **Base:** Arch Linux with optimized repos +- **Kernel:** 6.12 LTS (cachyos-lts) +- **Scheduler:** BORE scheduler for better frame times +- **Mesa:** 25.1+ by default + +### Pros + +- Best overall gaming performance +- BORE scheduler improves frame latency +- Optimized packages (v3/v4 CPU instructions) +- Kernel manager GUI for easy patching +- Latest software + +### Cons + +- **Cannot install ISO directly** on BC-250 +- Must install Arch first, then migrate to CachyOS +- Kernel 6.15+ causes panics (use LTS) +- More complex setup + +### Installation Method + +**Option 1: Arch + Migration (Recommended)** + +1. Install Arch Linux using `archinstall` +2. Boot with `nomodeset` if needed +3. Use CachyOS migration script from their documentation +4. Install CachyOS LTS kernel during migration +5. Install kernel manager: `pacman -S cachyos-kernel-manager` +6. Select LTS kernel (6.12.x) + +**Option 2: Custom ISO (Advanced)** + +Build CachyOS ISO with LTS kernel: + +```bash +git clone https://github.com/CachyOS/CachyOS-Live-ISO +cd CachyOS-Live-ISO +# Replace stable kernel with LTS +grep -rl 'linux-cachyos' ./ | xargs sed -i 's/linux\-cachyos/linux\-cachyos\-lts/g' +# Build ISO (follow repo instructions) +``` + +## Arch Linux (Maximum Control) + +### Overview + +**Status:** Works well, requires manual configuration +- **Desktop:** Your choice +- **Kernel:** 6.12-6.14 LTS recommended +- **Mesa:** 25.1+ from official repos + +### Pros + +- Rolling release (latest packages) +- Full control over system +- Excellent documentation (Arch Wiki) +- Works with bc250-arch automated script +- AUR provides extensive software library + +### Cons + +- Manual setup required +- More maintenance needed +- Easier to break if not careful +- Steeper learning curve + +### Installation + +**Option 1: Automated Script** + +```bash +# Clone and run bc250-arch script +git clone https://github.com/pnbarbeito/bc250-arch +cd bc250-arch +./install.sh +``` + +**Option 2: Manual Installation** + +```bash +# Install Arch normally using archinstall +# Then install required packages: +pacman -S base-devel cmake git mesa vulkan-radeon + +# Install governor (see system/governor.md) +``` + +## Debian / PikaOS (Stable Choice) + +### Overview + +**Status:** Very stable, requires some manual work +- **Kernel:** 6.12-6.14 (Xanmod recommended) +- **Mesa:** 25.1.3+ from experimental repos +- **Desktop:** GNOME or KDE Plasma + +### Pros + +- Extremely stable +- Fast and secure +- Low power consumption (55W idle under Plasma) +- Good for production/work use +- Mature ecosystem + +### Cons + +- Requires manual compilation of some components +- Fewer gaming-specific optimizations +- Mesa from experimental repositories +- Qt 6.83+ required for Plasma to work properly + +### PikaOS (Debian-based Gaming Distro) + +**Features:** +- Debian base with gaming focus +- Mesa 25.1+ out-of-box +- GPU frequency patch included by default +- Easier than vanilla Debian for gaming + +**Setup:** +- Download and install PikaOS +- Works mostly out-of-box +- Install governor manually + +## Manjaro (Easy Arch Alternative) + +### Overview + +**Status:** Works out-of-box +- **Base:** Arch Linux (user-friendly) +- **Desktop:** KDE Plasma recommended +- **Kernel:** 6.14+ + +### Pros + +- Boots from USB without issues +- Latest KDE Plasma works well +- Oberon governor installs easily +- Good hardware detection +- Easier than Arch for beginners + +### Cons + +- Some boot issues for certain users (IOMMU-related) +- Less tested than Fedora/Bazzite +- Delayed package updates compared to Arch + +### Notes + +- Works well with KDE + Wayland +- Some games work better than on Fedora (e.g., MTG Arena) + +## NOT Recommended + +### Ubuntu + +- Packages too old by default +- Can work with PPAs for Mesa 25.1.5 +- Less tested on BC-250 +- Governor available but not ideal + +### Fedora 41 + +- Older than Fedora 42/43 +- Use latest Fedora instead + +### SteamOS + +- Mesa version too old (~8 months behind) +- Not recommended unless Valve updates + +### Kernel 6.15+ + +!!!danger "Avoid Kernel 6.15+" + Kernel 6.15 and newer cause kernel panics and GPU initialization failures on BC-250. **Always use 6.12-6.14 LTS kernels.** + +## Distribution Comparison Table + +| Feature | Fedora | Bazzite | CachyOS | Arch | Debian | +|---------|--------|---------|---------|------|--------| +| **Ease of Setup** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | +| **Gaming Performance** | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | +| **Stability** | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | +| **Documentation** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | +| **Power Efficiency** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | +| **Customization** | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | + +## Desktop Environment Recommendations + +### GNOME + +**Works on:** Fedora, Bazzite, Arch, Debian +- Modern, clean interface +- Good Wayland support +- Resource-efficient +- Some users report issues (test carefully) + +### KDE Plasma + +**Works on:** Fedora, Manjaro, Arch, Debian +- Highly customizable +- Wayland support improving (Plasma 6+) +- Feature-rich +- Generally stable on BC-250 +- **Most tested and recommended** + +### Cinnamon + +**Works on:** Fedora, Debian +- Traditional desktop +- X11-based (very stable) +- Lightweight +- Good choice for stability + +## Installation Flow Comparison + +### Fedora (Easiest) + +1. Download Fedora 42/43 Workstation ISO +2. Flash to USB +3. Boot in "Basic Graphics Mode" +4. Install normally +5. Run setup script +6. Done + +### Bazzite (Gaming-Focused) + +1. Download Bazzite ISO (Desktop or Deck variant) +2. Flash to USB +3. Boot and install +4. Run governor installation script +5. Optional: Configure Deck UI +6. Done + +### CachyOS (Performance) + +1. Download Arch ISO +2. Install Arch using `archinstall` +3. Boot Arch +4. Run CachyOS migration script +5. Install LTS kernel +6. Configure system +7. Install governor + +## Common Issues by Distribution + +### Fedora + +- **Issue:** Kernel 6.15+ breaks GPU +- **Solution:** Pin kernel to 6.14 + +### Bazzite + +- **Issue:** Updates sometimes break system +- **Solution:** Use `rpm-ostree pin 0` and rollback if needed + +### CachyOS/Arch + +- **Issue:** Governor doesn't auto-start on boot +- **Solution:** Run game once to activate, or check service status + +### Debian + +- **Issue:** Requires manual Mesa compilation +- **Solution:** Use experimental repos or wait for stable update + +## Switching Distributions + +If you want to try a different distribution: + +1. **Back up your data** (M.2 SSD contents) +2. **Flash new distro** to USB +3. **Boot and install** (will overwrite previous install) +4. **Reconfigure BIOS** if needed +5. **Reinstall software** and restore data + +!!!tip "Test Before Committing" + Try distributions as live USB before installing to ensure compatibility with your hardware. + +## See Also + +- [Fedora Detailed Setup Guide](fedora.md) +- [Kernel Requirements](kernel.md) +- [Mesa Driver Installation](mesa.md) +- [Getting Started Guide](../getting-started/quick-start.md) diff --git a/docs/linux/fedora.md b/docs/linux/fedora.md new file mode 100644 index 0000000..87d4d5e --- /dev/null +++ b/docs/linux/fedora.md @@ -0,0 +1,345 @@ +# Fedora Complete Setup Guide + +Step-by-step guide to installing and configuring Fedora on the BC-250. + +## Overview + +Fedora is the most recommended distribution for BC-250, offering: +- Easy installation process +- Mesa 25.1+ in official repositories (Fedora 43) +- Extensive BC-250 community support +- Automated setup scripts available + +## Prerequisites + +- BC-250 board with BIOS flashed and configured +- USB drive (4GB+) for installation media +- Display connected via DisplayPort +- Keyboard and mouse (USB) +- Internet connection recommended + +## Download Fedora + +**Recommended Version:** Fedora 43 Workstation + +**Download from:** [getfedora.org](https://getfedora.org/workstation/) + +**Desktop Options:** +- **GNOME** (default) - Modern, clean interface +- **KDE Plasma** (Fedora Spins) - Highly customizable, recommended by many users + +## Create Installation Media + +**Using Fedora Media Writer (Recommended):** +1. Download [Fedora Media Writer](https://getfedora.org/fmw) +2. Run and select Fedora Workstation +3. Select your USB drive +4. Click "Write" and wait + +**Using balenaEtcher:** +1. Download ISO from Fedora website +2. Download [balenaEtcher](https://www.balena.io/etcher/) +3. Select ISO, select USB drive, flash + +## Installation + +### Step 1: Boot Installation Media + +1. Insert USB drive into BC-250 +2. Power on the BC-250 +3. System should boot to GRUB menu + +!!!warning "Black Screen Issue" + If you get a black screen, the installer is trying to use the GPU before drivers are loaded. + +### Step 2: Select Basic Graphics Mode + +**Critical Step:** + +1. At GRUB menu, select **"Troubleshooting"** +2. Choose **"Install Fedora Workstation in basic graphics mode"** +3. This enables `nomodeset` automatically + +!!!danger "Must Use Basic Graphics Mode" + Do NOT use the standard "Install Fedora" option. You will get a black screen. + +### Step 3: Complete Installation + +1. Select language +2. Choose installation destination (your M.2 SSD) +3. Configure network (optional but recommended) +4. Create user account +5. Set root password (optional) +6. Click "Begin Installation" +7. Wait for installation to complete +8. Click "Reboot System" + +**Note:** System will reboot with `nomodeset` still active (limited resolution is normal for now). + +## Post-Installation Setup + +### Step 1: First Boot and Update + +```bash +# Update system +sudo dnf upgrade --refresh +``` + +### Step 2: Install Dependencies + +```bash +sudo dnf install -y git cmake make gcc-c++ libdrm-devel lm_sensors +``` + +### Step 3: Verify Mesa Version + +```bash +# Check Mesa version +dnf list mesa-\* + +# Should show 25.1+ for Fedora 43 +# If Fedora 42 and < 25.1, may need mesa-git (unlikely now) +``` + +### Step 4: Install GPU Governor + +**Option 1: COPR (Easiest)** + +```bash +sudo dnf copr enable filippor/bazzite +sudo dnf install oberon-governor +``` + +**Option 2: Build from Source** + +```bash +git clone https://gitlab.com/mothenjoyer69/oberon-governor.git +cd oberon-governor +cmake . && make && sudo make install +sudo systemctl enable --now oberon-governor.service +``` + +### Step 5: Configure Sensors + +```bash +# Load sensor module +echo 'nct6683' | sudo tee /etc/modules-load.d/99-sensors.conf +echo 'options nct6683 force=true' | sudo tee /etc/modprobe.d/options-sensors.conf + +# Regenerate initramfs +sudo dracut --regenerate-all --force +``` + +### Step 6: Remove nomodeset and Configure GRUB + +```bash +# Edit GRUB configuration +sudo nano /etc/default/grub + +# Find: GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet" +# Change to: GRUB_CMDLINE_LINUX_DEFAULT="quiet amdgpu.sg_display=0" + +# Optional: Add mitigations=off for performance boost +# GRUB_CMDLINE_LINUX_DEFAULT="quiet amdgpu.sg_display=0 mitigations=off" + +# Save (Ctrl+O, Enter, Ctrl+X) + +# Update GRUB +sudo grub2-mkconfig -o /boot/grub2/grub.cfg +``` + +!!!info "Kernel Parameters Explained" + - `quiet` - Reduces boot messages + - `amdgpu.sg_display=0` - Required for BC-250 GPU (kernel < 6.10) + - `mitigations=off` - Disables CPU security mitigations (+18 FPS in Cyberpunk 2077) + +### Step 7: Reboot + +```bash +sudo reboot +``` + +After reboot, you should have full resolution and GPU acceleration. + +## Verification + +### Check GPU is Working + +```bash +# Check Mesa version +glxinfo | grep "OpenGL version" +# Should show: Mesa 25.1.X + +# Check GPU detected +vulkaninfo | grep deviceName +# Should show: AMD Radeon Graphics (RADV GFX1013) + +# Check governor running +systemctl status oberon-governor +# Should show: active (running) + +# Check sensors +sensors +# Should show GPU temp, fan speeds, etc. +``` + +## Install Gaming Software + +### Steam + +```bash +sudo dnf install steam +``` + +**Enable Proton for Windows games:** +1. Open Steam +2. Settings → Compatibility +3. Check "Enable Steam Play for all other titles" +4. Select Proton version (latest is fine) + +### Proton GE (Recommended) + +```bash +# Install ProtonUp-Qt +sudo dnf install protonup-qt + +# Run ProtonUp-Qt and install latest Proton-GE +``` + +### Gaming Tools + +```bash +# Install useful gaming tools +sudo dnf install mangohud goverlay gamemode gamescope + +# MangoHud: FPS overlay +# Goverlay: MangoHud configurator +# Gamemode: CPU governor optimization +# Gamescope: Compositor for better frame pacing +``` + +## Optional: Hold Kernel Version + +Since kernel 6.15+ breaks BC-250, you may want to prevent automatic kernel updates: + +```bash +# Install versionlock plugin +sudo dnf install python3-dnf-plugin-versionlock + +# Lock current kernel +sudo dnf versionlock add kernel + +# To unlock later: +# sudo dnf versionlock delete kernel +``` + +## Troubleshooting + +### Display Still Not Working After Setup + +```bash +# Check amdgpu module loaded +lsmod | grep amdgpu + +# Check for errors +dmesg | grep amdgpu + +# Verify Mesa +glxinfo | grep -i "opengl renderer" +# Should NOT show "llvmpipe" +``` + +### Governor Not Starting + +```bash +# Check governor service +sudo systemctl status oberon-governor + +# Check logs +sudo journalctl -u oberon-governor + +# Restart service +sudo systemctl restart oberon-governor +``` + +### Low FPS in Games + +```bash +# Verify GPU is being used (not CPU rendering) +# Run game with MangoHud: +mangohud steam + +# Check GPU frequency scaling +cat /sys/class/drm/card0/device/pp_dpm_sclk +# Should show frequencies changing under load +``` + +## Fedora-Specific Issues + +### Kernel 6.15+ Auto-Update + +**Symptom:** System breaks after update +**Cause:** Kernel 6.15 breaks BC-250 + +**Solution:** +```bash +# Boot into rescue mode or older kernel +# Remove 6.15 kernel +sudo dnf remove kernel-6.15\* + +# Install specific 6.14 kernel +sudo dnf install kernel-6.14.4-104 + +# Lock kernel version (see above) +``` + +### MTG Arena Crashes on Fedora + +**Symptom:** Magic: The Gathering Arena crashes/freezes +**Workaround:** Some users report better stability on Manjaro or Bazzite +**Possible Fix:** Try different Proton version + +## Performance Tuning + +### Enable Performance Governor + +```bash +# For better gaming performance +sudo cpupower frequency-set -g performance +``` + +### Optimize for Low Latency + +```bash +# Edit /etc/sysctl.conf +sudo nano /etc/sysctl.conf + +# Add: +vm.swappiness=10 +vm.vfs_cache_pressure=50 + +# Apply +sudo sysctl -p +``` + +## Desktop Environment Tips + +### KDE Plasma + +- Wayland works well on Plasma 6 +- Configure compositor for lowest latency: + - System Settings → Display → Compositor + - Set latency to "Low" or "Lowest" + +### GNOME + +- Some users report issues (test carefully) +- Wayland generally stable +- Falls back to X11 if issues + +## See Also + +- [Kernel Requirements](kernel.md) +- [Mesa Installation](mesa.md) +- [GPU Governor Setup](../system/governor.md) +- [Distribution Comparison](distributions.md) diff --git a/docs/linux/kernel.md b/docs/linux/kernel.md new file mode 100644 index 0000000..3b44fd0 --- /dev/null +++ b/docs/linux/kernel.md @@ -0,0 +1,385 @@ +# Kernel Requirements and Configuration + +The Linux kernel version and configuration is critical for BC-250 stability and performance. + +## Kernel Version Compatibility + +### Recommended Kernels + +**Working and Stable:** +- **6.12.x LTS** - Highly recommended +- **6.13.x** - Stable +- **6.14.x LTS** - Most tested, recommended + +**Confirmed Working Versions:** +- 6.12.43-1-lts (Arch Linux) +- 6.14.4-104 (Fedora) +- 6.14.11-xanmod (Debian) + +!!!success "Use LTS Kernels" + Long Term Support (LTS) kernels provide the best stability for BC-250. Stick to 6.12 or 6.14 LTS. + +### Broken Kernels + +!!!danger "Avoid Kernel 6.15+" + Kernel 6.15 and newer versions cause critical issues on BC-250: + + - Kernel panics on boot + - GPU fails to initialize + - `amdgpu: Failed to get gpu_info firmware` error + - Black screen after boot + +**Known Issues with 6.15:** +``` +[drm:amdgpu_discovery_init [amdgpu]] *ERROR* amdgpu_discovery_init failed +amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init +``` + +## Required Kernel Parameters + +### Basic Parameters (All Installations) + +Add these to GRUB configuration: + +```bash +# Edit GRUB +sudo nano /etc/default/grub + +# Add to GRUB_CMDLINE_LINUX_DEFAULT: +GRUB_CMDLINE_LINUX_DEFAULT="quiet amdgpu.sg_display=0" +``` + +**Parameter Explanations:** + +- `quiet` - Reduces boot messages (optional) +- `amdgpu.sg_display=0` - **Required for kernels < 6.10** - disables scatter-gather display + +!!!info "amdgpu.sg_display" + This parameter is only needed for kernels older than 6.10. If using 6.11+, it doesn't hurt to leave it, but it's not strictly necessary. + +### Performance Parameters (Optional) + +```bash +# For maximum gaming performance +GRUB_CMDLINE_LINUX_DEFAULT="quiet amdgpu.sg_display=0 mitigations=off" +``` + +**Performance Impact of `mitigations=off`:** +- +18 FPS in Cyberpunk 2077 (60 → 78 FPS at 1080p high settings) +- Reduces CPU overhead from Spectre/Meltdown mitigations +- **Security trade-off:** Disables CPU vulnerability mitigations + +!!!warning "Security vs Performance" + `mitigations=off` improves performance but reduces security. Only use on gaming-only systems, not for systems handling sensitive data. + +### Memory Allocation Parameters (Advanced) + +For maximum GPU memory access (14.5-14.75GB): + +```bash +# Add to kernel parameters +amd_iommu=on amdgpu.gttsize=14750 ttm.pages_limit=3776000 ttm.page_pool_size=3776000 +``` + +**Purpose:** +- Allows GPU to access more system RAM +- Useful for VRAM-heavy workloads +- Alternative to increasing BIOS VRAM allocation + +**Via modprobe (alternative method):** +```bash +# Create /etc/modprobe.d/increase_amd_memory.conf +sudo nano /etc/modprobe.d/increase_amd_memory.conf + +# Add: +options ttm pages_limit=3776000 page_pool_size=3776000 +options amdgpu gttsize=14750 + +# Rebuild initramfs +sudo dracut --regenerate-all --force # Fedora +sudo mkinitcpio -P # Arch +``` + +### Installation Parameter (Temporary) + +**nomodeset - Use during installation only:** + +```bash +# Add temporarily at GRUB menu (press 'e' to edit) +nomodeset +``` + +**Purpose:** Disables GPU driver, allows booting with basic graphics + +!!!danger "Remove After Installation" + After installing Mesa drivers, **remove nomodeset** from GRUB. Leaving it prevents GPU acceleration. + +## Applying Kernel Parameters + +### Fedora/RHEL + +```bash +# Edit GRUB config +sudo nano /etc/default/grub + +# Update GRUB +sudo grub2-mkconfig -o /boot/grub2/grub.cfg + +# Reboot +sudo reboot +``` + +### Debian/Ubuntu + +```bash +# Edit GRUB config +sudo nano /etc/default/grub + +# Update GRUB +sudo update-grub + +# Reboot +sudo reboot +``` + +### Arch Linux + +```bash +# Edit GRUB config +sudo nano /etc/default/grub + +# Update GRUB +sudo grub-mkconfig -o /boot/grub/grub.cfg + +# Reboot +sudo reboot +``` + +### Temporary Boot Parameters + +To test parameters without permanently changing configuration: + +1. Reboot system +2. At GRUB menu, press **e** to edit boot entry +3. Find line starting with `linux` or `linuxefi` +4. Add parameters to end of line +5. Press **Ctrl+X** to boot with modified parameters + +## Kernel Management + +### Checking Current Kernel + +```bash +# Display kernel version +uname -r + +# Example output: 6.14.4-104.fc42.x86_64 +``` + +### Installing Specific Kernel Version + +**Fedora:** +```bash +# List available kernels +dnf list kernel --showduplicates + +# Install specific version +sudo dnf install kernel-6.14.4-104 + +# Set as default in GRUB if needed +sudo grub2-set-default "Fedora Linux (6.14.4-104)" +``` + +**Arch Linux:** +```bash +# Install LTS kernel +sudo pacman -S linux-lts linux-lts-headers + +# Set as default in bootloader +``` + +### Holding Kernel Version + +To prevent automatic updates to problematic kernel versions: + +**Fedora:** +```bash +# Install versionlock plugin +sudo dnf install python3-dnf-plugin-versionlock + +# Lock kernel at current version +sudo dnf versionlock add kernel + +# List locked packages +sudo dnf versionlock list + +# Remove lock +sudo dnf versionlock delete kernel +``` + +**Arch Linux:** +```bash +# Edit pacman.conf +sudo nano /etc/pacman.conf + +# Add under [options]: +IgnorePkg = linux + +# Save and exit +``` + +**Debian:** +```bash +# Hold kernel package +sudo apt-mark hold linux-image-6.14.11-amd64 + +# Unhold +sudo apt-mark unhold linux-image-6.14.11-amd64 +``` + +### Removing Broken Kernel + +If kernel 6.15+ was installed and causes issues: + +**Fedora:** +```bash +# Boot into older kernel from GRUB menu +# Remove 6.15 kernel +sudo dnf remove kernel-6.15\* + +# Verify removal +dnf list installed kernel +``` + +**Arch Linux:** +```bash +# Boot into LTS kernel +# Remove problematic kernel +sudo pacman -R linux + +# Keep only LTS +sudo pacman -S linux-lts +``` + +## Kernel Patches for BC-250 + +### GPU Frequency Range Patch + +**Purpose:** Enables extended frequency range (350 MHz - 2230 MHz) instead of default (1000-2000 MHz) + +**Distributions with Patch Included:** +- Bazzite (pre-applied) +- PikaOS (pre-applied) + +**Manual Patching:** + +Required for: +- Fedora +- Arch Linux +- Debian +- Other distributions + +**Patch Application (Advanced):** + +1. Download BC-250 frequency patch +2. Apply to kernel source +3. Compile custom kernel +4. Install and boot + +[Detailed patching guide available in community resources] + +**Alternative:** Use distributions with patch pre-applied (Bazzite, PikaOS) + +### TKG Kernel (Arch-based) + +For Arch users, linux-tkg provides easy custom kernel building: + +```bash +git clone https://github.com/Frogging-Family/linux-tkg +cd linux-tkg + +# Create patch directory +mkdir linux612-tkg-userpatches + +# Place BC-250 patch in directory + +# Run installer +./install.sh install + +# Select Linux 6.12 LTS during setup +``` + +**Benefits:** +- Easy kernel customization +- Includes performance optimizations +- BC-250 patch integration + +**Compilation Time:** +- Full compile: ~45 minutes +- With modprobed-db: ~8 minutes + +## Kernel Troubleshooting + +### GPU Not Detected After Kernel Update + +**Symptoms:** +- Black screen after boot +- `lspci | grep VGA` shows device but driver not loading +- `dmesg | grep amdgpu` shows errors + +**Solution:** +1. Boot into older kernel from GRUB (hold Shift at boot) +2. Remove newer kernel +3. Hold kernel version +4. Report issue to distribution + +### System Boots But No GPU Acceleration + +**Check:** +```bash +# Is amdgpu module loaded? +lsmod | grep amdgpu + +# Check for errors +dmesg | grep -i amdgpu + +# Verify rendering +glxinfo | grep "OpenGL renderer" +# Should NOT show "llvmpipe" +``` + +**Possible Causes:** +- `nomodeset` still in GRUB config +- Missing kernel parameters +- Mesa not installed + +### Kernel Panic on Boot + +**Symptoms:** +- System crashes during boot +- Kernel panic message + +**Most Common Cause:** Kernel 6.15+ + +**Solution:** +1. Boot into older kernel (hold Shift, select previous kernel) +2. Remove problematic kernel version +3. Lock kernel version to prevent auto-update + +## Kernel Version Matrix + +| Kernel Version | Status | Notes | +|---------------|--------|-------| +| 6.10.x | ⚠️ Works | `amdgpu.sg_display=0` not needed | +| 6.11.x | ✅ Good | Mesa 25.1+ required | +| 6.12.x LTS | ✅ **Recommended** | Most stable | +| 6.13.x | ✅ Good | Stable | +| 6.14.x LTS | ✅ **Recommended** | Most tested | +| 6.15.x+ | ❌ **Broken** | GPU init fails, avoid! | + +## See Also + +- [Mesa Driver Installation](mesa.md) +- [Distribution Comparison](distributions.md) +- [System Configuration](../system/governor.md) +- [Troubleshooting Guide](../troubleshooting/display.md) diff --git a/docs/linux/mesa.md b/docs/linux/mesa.md new file mode 100644 index 0000000..a19f6b5 --- /dev/null +++ b/docs/linux/mesa.md @@ -0,0 +1,461 @@ +# Mesa Driver Installation + +Mesa provides the OpenGL and Vulkan drivers (RADV) required for BC-250 GPU support. + +## Mesa Requirements + +### Minimum Version + +**Mesa 25.1.0 or newer is required** + +- BC-250 (Cyan Skillfish / gfx1013) support added in Mesa 25.1 +- No manual patching needed (upstream support) +- Earlier versions will not work + +### Recommended Version + +**Mesa 25.1.3+ recommended for stability** + +- Bug fixes and performance improvements +- Better compatibility +- Mesa 25.1.5+ even better + +!!!success "Upstream Support" + As of Mesa 25.1, BC-250 support is included upstream. No custom patches or compilation needed! + +## Checking Mesa Version + +```bash +# Check installed Mesa version +glxinfo | grep "OpenGL version" + +# Example output: +# OpenGL version string: 4.6 (Compatibility Profile) Mesa 25.1.5 + +# Check Vulkan driver +vulkaninfo | grep "driverName" + +# Should output: driverName = radv +``` + +## Installation by Distribution + +### Fedora 43 + +**Mesa 25.1+ is in official repositories:** + +```bash +# Update system (includes Mesa) +sudo dnf upgrade --refresh + +# Verify Mesa version +dnf list mesa-\* +glxinfo | grep "OpenGL version" +``` + +No additional steps needed! + +### Fedora 42 + +**Check version first:** + +```bash +dnf list mesa-\* +``` + +**If Mesa < 25.1:** + +Most Fedora 42 systems after updates should have 25.1+. If not, mesa-git COPR may be needed, but this is increasingly rare. + +### Arch Linux / CachyOS + +**Mesa 25.1+ in official repos:** + +```bash +# Install/update Mesa +sudo pacman -S mesa vulkan-radeon + +# Verify +pacman -Q mesa +glxinfo | grep "OpenGL version" +``` + +### Debian + +**Mesa 25.1.3+ available in experimental:** + +```bash +# Add experimental repo (if not already added) +echo "deb http://deb.debian.org/debian experimental main" | sudo tee /etc/apt/sources.list.d/experimental.list + +# Update package lists +sudo apt update + +# Install Mesa from experimental +sudo apt install -t experimental mesa-vulkan-drivers libgl1-mesa-dri mesa-utils + +# Verify +glxinfo | grep "OpenGL version" +``` + +!!!warning "Experimental Repo" + Debian experimental packages may have dependencies on other experimental packages. Use with caution. + +### Ubuntu + +**Mesa 25.1.5 available via PPA:** + +```bash +# Add PPA (example - check for current BC-250 compatible PPA) +sudo add-apt-repository ppa:kisak/kisak-mesa + +# Update and install +sudo apt update +sudo apt upgrade + +# Verify +glxinfo | grep "OpenGL version" +``` + +### Bazzite + +**Mesa 25.1+ included by default:** + +```bash +# Check version +rpm -qa | grep mesa + +# Update if needed +rpm-ostree upgrade +``` + +### Manjaro + +**Mesa in official repos:** + +```bash +# Update system +sudo pacman -Syu + +# Verify Mesa +pacman -Q mesa +``` + +## Verifying Installation + +### Check OpenGL + +```bash +# Install mesa-utils if not present +# Fedora: sudo dnf install mesa-utils +# Arch: sudo pacman -S mesa-utils + +# Check OpenGL renderer +glxinfo | grep "OpenGL renderer" + +# Should show: +# OpenGL renderer string: AMD Radeon Graphics (radv gfx1013 LLVM 18.1.8 DRM 3.59 6.14.4-104.fc42.x86_64) +``` + +!!!danger "llvmpipe Means No GPU" + If you see "llvmpipe" as the renderer, the GPU driver is NOT working. You're using CPU software rendering. + +### Check Vulkan + +```bash +# Install vulkan-tools +# Fedora: sudo dnf install vulkan-tools +# Arch: sudo pacman -S vulkan-tools + +# Check Vulkan device +vulkaninfo | grep deviceName + +# Should show: +# deviceName = AMD Radeon Graphics (RADV GFX1013) +``` + +### Verify RADV Driver + +```bash +# Check driver is RADV (not AMDVLK) +vulkaninfo | grep "driverName" + +# Should show: driverName = radv +``` + +## Environment Variables + +### Required Variables + +```bash +# Add to /etc/environment or ~/.bashrc + +# Force RADV driver (not AMDVLK) +AMD_VULKAN_ICD=RADV +``` + +### Optional Variables + +**RADV_DEBUG options:** + +```bash +# Fix some graphical glitches +RADV_DEBUG=nohiz + +# Disable compute queue (may not be needed on Mesa 25.1+) +# RADV_DEBUG=nocompute +``` + +**Apply globally:** + +```bash +# Edit /etc/environment +sudo nano /etc/environment + +# Add: +AMD_VULKAN_ICD=RADV +RADV_DEBUG=nohiz +``` + +**Apply per-game in Steam:** + +``` +RADV_DEBUG=nohiz %command% +``` + +### Mesa Performance Variables + +**For OpenGL applications:** + +```bash +# Use Zink (OpenGL over Vulkan) for better performance +MESA_LOADER_DRIVER_OVERRIDE=zink +``` + +!!!info "Zink Overhead" + Zink adds slight overhead but can improve compatibility and performance for some OpenGL applications. Test per-game. + +## Flatpak Mesa Override + +**Problem:** Flatpak applications use runtime Mesa, which may be outdated. + +**Solution:** Override with mesa-git + +```bash +# Add flathub-beta repository +flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo + +# Install mesa-git for runtime 24.08 +flatpak install --system flathub-beta org.freedesktop.Platform.GL.mesa-git//24.08 +flatpak install --system flathub-beta org.freedesktop.Platform.GL32.mesa-git//24.08 + +# Set environment for Flatpak +sudo mkdir -p /etc/systemd/system/service.d +sudo bash -c 'echo -e "[Service]\nEnvironment=FLATPAK_GL_DRIVERS=mesa-git" > /etc/systemd/system/service.d/99-flatpak-mesa-git.conf' + +# Reboot +sudo reboot +``` + +!!!warning "Flatpak Runtime Dependency" + Flatpaks on runtime 23.08 or older cannot use Mesa 25.1. They must be on runtime 24.08+. + +## Compilation (Advanced) + +### When to Compile Mesa + +**Usually not needed**, but compile if: +- Distribution doesn't have Mesa 25.1+ yet +- Testing newest Mesa-git features +- Development/testing purposes + +### Mesa Compilation Guide + +**Dependencies (Fedora):** + +```bash +sudo dnf install git meson ninja-build gcc-c++ \ + libdrm-devel libXrandr-devel libXext-devel \ + libXdamage-devel libX11-devel libxcb-devel \ + libxshmfence-devel libXxf86vm-devel libXfixes-devel \ + wayland-devel wayland-protocols-devel \ + llvm-devel libunwind-devel zlib-devel \ + expat-devel elfutils-libelf-devel python3-mako \ + flex bison +``` + +**Clone and Build:** + +```bash +# Clone Mesa +git clone https://gitlab.freedesktop.org/mesa/mesa.git +cd mesa + +# Configure +meson setup build \ + --buildtype=release \ + -Dgallium-drivers=radeonsi \ + -Dvulkan-drivers=amd \ + -Dplatforms=x11,wayland \ + -Dglx=dri + +# Compile (use -j for parallel build) +ninja -C build -j$(nproc) + +# Install (may need to backup old Mesa first) +sudo ninja -C build install +``` + +**Compilation Time:** 10-30 minutes depending on CPU + +!!!danger "Backup Before Installing" + Compiling and installing Mesa system-wide can break your system if done incorrectly. Only do this if you know what you're doing. + +## Troubleshooting Mesa Issues + +### GPU Not Detected + +**Symptoms:** +- `vulkaninfo` shows no devices +- `glxinfo` shows llvmpipe + +**Causes:** +1. Mesa < 25.1 installed +2. amdgpu kernel module not loaded +3. Kernel parameters incorrect + +**Solutions:** + +```bash +# Check kernel module +lsmod | grep amdgpu +# If empty, driver not loaded + +# Check kernel messages +dmesg | grep -i amdgpu +# Look for errors + +# Verify Mesa version +glxinfo | grep "OpenGL version" +# Must be 25.1+ + +# Check if nomodeset is still active +cat /proc/cmdline +# Should NOT contain "nomodeset" +``` + +### Software Rendering (llvmpipe) + +**Symptom:** +```bash +glxinfo | grep "OpenGL renderer" +# Shows: "llvmpipe (LLVM 18.1.8, 256 bits)" +``` + +**Cause:** GPU driver not working, falling back to CPU rendering + +**Solutions:** +1. Install Mesa 25.1+ +2. Remove `nomodeset` from GRUB +3. Ensure amdgpu module loaded +4. Check kernel version (6.12-6.14) + +### AMDVLK Instead of RADV + +**Symptom:** +```bash +vulkaninfo | grep "driverName" +# Shows: driverName = AMDVLK +``` + +**Issue:** AMD's open-source Vulkan driver (AMDVLK) loaded instead of RADV + +**Solution:** + +```bash +# Force RADV +export AMD_VULKAN_ICD=RADV + +# Make permanent +echo "AMD_VULKAN_ICD=RADV" | sudo tee -a /etc/environment + +# Or uninstall AMDVLK +sudo dnf remove amdvlk # Fedora +sudo pacman -R amdvlk # Arch +``` + +### Graphical Glitches in Games + +**Symptoms:** +- Black textures +- Flickering +- Visual artifacts + +**Solutions:** + +**Try RADV_DEBUG options:** +```bash +# Fix Z-buffer issues +RADV_DEBUG=nohiz + +# Disable compute queue (older Mesa versions) +RADV_DEBUG=nocompute + +# Combine multiple options +RADV_DEBUG=nohiz,nocompute +``` + +**Per-game in Steam launch options:** +``` +RADV_DEBUG=nohiz %command% +``` + +### Mesa Update Breaks System + +**Symptoms:** +- Black screen after Mesa update +- System doesn't boot + +**Recovery:** + +1. Boot into recovery mode or older kernel +2. Downgrade Mesa: + +```bash +# Fedora +sudo dnf downgrade mesa\* + +# Arch +sudo pacman -U /var/cache/pacman/pkg/mesa-25.1.3-1-x86_64.pkg.tar.zst + +# Check what version you're downgrading to +``` + +3. Hold Mesa version temporarily: + +```bash +# Fedora +sudo dnf versionlock add mesa\* + +# Arch +# Add to /etc/pacman.conf under [options]: +# IgnorePkg = mesa +``` + +## Mesa Version History + +| Mesa Version | BC-250 Support | Notes | +|--------------|----------------|-------| +| < 25.0 | ❌ No | No gfx1013 support | +| 25.0.x | ⚠️ Experimental | Early support, buggy | +| 25.1.0 | ✅ Yes | First official support | +| 25.1.3+ | ✅ Recommended | Stable, bug fixes | +| 25.1.5+ | ✅ Best | Latest improvements | +| 25.2+ | ✅ Good | Ongoing development | + +## See Also + +- [Kernel Requirements](kernel.md) +- [Distribution Comparison](distributions.md) +- [GPU Governor Setup](../system/governor.md) +- [Troubleshooting Display Issues](../troubleshooting/display.md) diff --git a/docs/reference/quick-reference.md b/docs/reference/quick-reference.md new file mode 100644 index 0000000..d904ab2 --- /dev/null +++ b/docs/reference/quick-reference.md @@ -0,0 +1,385 @@ +# Quick Reference Guide + +Fast answers to common questions. For detailed information, see the full documentation pages. + +--- + +## Quick Start Checklist + +### Hardware Setup + +- [ ] BC-250 board +- [ ] 300W+ 12V PSU with PCIe 8-pin +- [ ] High static pressure 120mm fan (Arctic P12/P14) +- [ ] DisplayPort cable or passive DP-HDMI adapter +- [ ] USB stick (FAT32) for BIOS flash +- [ ] M.2 NVMe SSD (optional but recommended) +- [ ] USB WiFi adapter (board has no wireless) + +### Software Setup + +1. **Flash BIOS** - Get modded BIOS from [GitLab](https://gitlab.com/TuxThePenguin0/bc250-bios/) +2. **Set VRAM to 512MB** in BIOS after flashing +3. **Clear CMOS** (critical after USB flash) +4. **Install Fedora/Bazzite** with "Basic Graphics Mode" +5. **Run setup script** to install Mesa 25.1+ and governor +6. **Remove nomodeset** from GRUB after drivers installed +7. **Test a game!** + +[Full quick start guide →](../getting-started/quick-start.md) + +--- + +## Critical Settings + +### BIOS Configuration + +| Setting | Value | Why | +|---------|-------|-----| +| UMA Frame Buffer Size | 512MB | Dynamic VRAM allocation | +| IOMMU | Disabled | Prevents display issues | +| Fan Control | Customize | Stock is too aggressive or too quiet | + +[BIOS guide →](../bios/flashing.md) + +### Kernel Requirements + +- **Use:** Kernel 6.12.x - 6.14.x LTS +- **Avoid:** Kernel 6.15+ (GPU initialization fails) +- **Boot parameter:** `nomodeset` during install, remove after drivers installed + +### Kernel Parameters + +```bash +# Required in /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT: +quiet + +# Optional performance boost: +mitigations=off + +# For older kernels <6.10 only: +amdgpu.sg_display=0 +``` + +--- + +## Power & Cooling + +### Power Draw + +| State | Consumption | +|-------|-------------| +| Idle | 50-80W | +| Light gaming | 100-150W | +| Heavy gaming | 150-200W | +| Maximum (RT) | Up to 235W | + +### Temperature Targets + +| State | Temperature | Status | +|-------|-------------|--------| +| Idle | 40-60°C | ✅ Good | +| Gaming | 70-85°C | ✅ Good | +| Stress | 85-90°C | ⚠️ Caution | +| Critical | >90°C | ❌ Too hot | + +### Recommended Fans + +1. **Arctic P12 Max** - 6.9 mmH2O, best value +2. **Noctua NF-A12x25** - Quieter, premium +3. **Arctic P14 Max** - 140mm option + +!!!warning "High Static Pressure Required" + You NEED fans with 3+ mmH2O static pressure. Regular case fans won't work. + +[Cooling guide →](../hardware/cooling.md) + +--- + +## Software Requirements + +### Operating System + +**Recommended:** +- Fedora 42/43 Workstation (easiest) +- Bazzite (best for gaming) +- CachyOS (best performance, harder setup) + +**Also works:** +- Manjaro, Arch, Debian (with effort) + +**Doesn't work:** +- Windows (no GPU drivers) +- SteamOS (Mesa too old) + +### Driver Versions + +| Component | Minimum | Recommended | +|-----------|---------|-------------| +| Mesa | 25.1.3 | 25.1.5+ | +| Kernel | 6.12.x | 6.12-6.14 LTS | +| Governor | Any | Latest from COPR | + +[Linux setup guide →](../linux/distributions.md) + +--- + +## VRAM Configuration + +### 512MB Dynamic (Recommended) + +- Automatically allocates between CPU/GPU +- ~10-15GB CPU RAM, up to 12GB VRAM when needed +- Best for most users + +### Fixed Allocations + +- **10GB/6GB** - Best for AAA gaming, fixes ZRAM conflicts +- **8GB/8GB** - Balanced, good for AI/compute +- **12GB/4GB** - Light gaming, maximum system RAM + +!!!info "ZRAM Conflict" + If RDR2 or Company of Heroes 3 crashes, switch from 512MB dynamic to 10GB/6GB fixed. + +[VRAM guide →](../bios/vram.md) + +--- + +## Display Connection + +### Working Solutions + +| Method | Resolution | Audio | Notes | +|--------|------------|-------|-------| +| Native DP | Up to 4K60 | ✅ | Best option | +| Passive DP-HDMI | Up to 1440p60 | ✅ | Most common | +| Active DP-HDMI | 4K60+ | ❌ | Video only, no audio | +| USB DAC | N/A | ✅ | Workaround for audio | + +!!!danger "Active Adapters Break Audio" + Active (powered) DP-to-HDMI adapters don't pass audio properly. Use passive adapters. + +--- + +## GPU Governor + +The governor controls GPU frequency and voltage. **Required for gaming performance.** + +### Installation + +```bash +# Fedora: +sudo dnf copr enable filippor/bazzite +sudo dnf install oberon-governor + +# Bazzite: +curl -s https://raw.githubusercontent.com/vietsman/bc250-documentation/refs/heads/main/oberon-setup.sh | sudo sh + +# Arch: +# Build from source - see full guide +``` + +### Configuration + +Edit `/etc/oberon-config.yaml`: + +```yaml +# Safe starting point: +min_frequency: 1000 # MHz +max_frequency: 2000 # MHz +min_voltage: 700 # mV (hard minimum, don't go lower) +max_voltage: 1050 # mV +``` + +Restart governor after changes: + +```bash +sudo systemctl restart oberon-governor +``` + +### Check GPU Frequency + +```bash +cat /sys/class/drm/card0/device/pp_dpm_sclk +# Should show multiple frequencies, current one marked with * +``` + +Without governor, GPU is stuck at 1500MHz = poor performance. + +[Governor guide →](../system/governor.md) + +--- + +## Common Commands + +### System Info + +```bash +# Check Mesa version +glxinfo | grep "OpenGL version" + +# Check GPU +lspci | grep VGA +vulkaninfo | grep deviceName + +# Check RAM/VRAM split +free -h +cat /sys/class/drm/card0/device/mem_info_vram_total + +# Check temperatures +sensors + +# Monitor GPU +nvtop +``` + +### GRUB Configuration + +```bash +# Edit boot parameters +sudo nano /etc/default/grub + +# Update GRUB (Fedora/RHEL): +sudo grub2-mkconfig -o /boot/grub2/grub.cfg + +# Update GRUB (Debian/Ubuntu): +sudo update-grub + +# Reboot +sudo reboot +``` + +### Governor Management + +```bash +# Check status +systemctl status oberon-governor + +# Start/stop +sudo systemctl start oberon-governor +sudo systemctl stop oberon-governor + +# Restart after config change +sudo systemctl restart oberon-governor + +# View logs +journalctl -u oberon-governor -f +``` + +--- + +## Gaming Performance + +### Launch Options (Steam) + +For most games: +``` +RADV_DEBUG=nohiz %command% +``` + +For games with visual glitches: +``` +RADV_DEBUG=nohiz,nocompute %command% +``` + +### Expected FPS (1080p) + +| Game | Settings | FPS Range | +|------|----------|-----------| +| Cyberpunk 2077 | High, FSR | 60-90 | +| Control | High, RT off | 60+ | +| Control | Medium, RT on | 30-40 | +| DMC 5 | High | 100+ | +| CS2 | High | 120+ | +| Elden Ring | High | 60 (capped) | + +[Game compatibility list →](../gaming/compatibility.md) + +--- + +## Troubleshooting Quick Fixes + +### No Display + +**Solution:** Boot with `nomodeset` parameter + +```bash +# At GRUB, press 'e' +# Add 'nomodeset' to linux line +# Press Ctrl+X to boot +``` + +### GPU Not Detected + +**Check:** +1. Mesa version ≥ 25.1: `glxinfo | grep Mesa` +2. Kernel ≤ 6.14: `uname -r` +3. nomodeset removed from GRUB +4. Governor running: `systemctl status oberon-governor` + +### BIOS Settings Don't Stick + +**Solution:** Clear CMOS properly + +1. Power off, unplug +2. Remove CMOS battery for 60 seconds +3. While battery out, press power button 5 times +4. Replace battery, boot, reconfigure + +### Game Crashes + +**Check:** +1. VRAM allocation (try 10GB/6GB fixed if using 512MB dynamic with ZRAM) +2. Disable ZRAM: `sudo systemctl disable zram-swap` +3. Update Mesa to latest +4. Check kernel version (avoid 6.15+) + +### High Temperatures + +**Fix:** +1. Check fans spinning: `sensors` +2. Straighten heatsink fins +3. Replace thermal paste +4. Verify high static pressure fans (3+ mmH2O) + +[Full troubleshooting →](../troubleshooting/display.md) + +--- + +## Important Warnings + +!!!danger "Critical Warnings" + 1. **Always clear CMOS after USB BIOS flash** + 2. **Disable IOMMU in BIOS** (causes display issues) + 3. **Use nomodeset during install, remove after drivers installed** + 4. **Avoid kernel 6.15+** (GPU driver fails) + 5. **700mV minimum voltage** (crashes below this) + 6. **980 MHz is unstable** (skip this frequency) + 7. **Active DP-HDMI adapters break audio** + +--- + +## Key Community Resources + +### Official Documentation +- **GitHub:** https://github.com/mothenjoyer69/bc250-documentation +- **BIOS Repo:** https://gitlab.com/TuxThePenguin0/bc250-bios/ +- **Governor:** Multiple forks (Oberon, Cyan Skillfish) + +### Community +- **Discord:** 1000+ members, link in GitHub +- **TheRetroWeb:** https://theretroweb.com/motherboards/s/amd-bc-250 + +### Key Contributors +- mothenjoyer69 - Setup scripts +- Average Data Hoarder - Modded BIOS +- Segfault - Oberon Governor +- FilippoR - COPR packages, Bazzite integration + +--- + +**Need more detail?** See the full documentation sections: +- [Getting Started](../getting-started/introduction.md) +- [BIOS Flashing](../bios/flashing.md) +- [Linux Setup](../linux/distributions.md) +- [Troubleshooting](../troubleshooting/display.md) diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000..b5bde2f --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,334 @@ +/* AMD BC250 Documentation - Custom Styles */ +/* Inspired by SlimeVR documentation design */ + +/* Optimize for wider displays */ +.md-grid { + max-width: 100%; +} + +.md-main__inner { + margin-top: 0; + padding: 0 0.75rem; +} + +.md-content { + max-width: 100%; +} + +.md-content__inner { + padding: 0.75rem 1.25rem; + margin: 0 auto; + max-width: 50rem; +} + +/* Reduce font size for documentation content */ +.md-typeset { + font-size: 0.75rem; + line-height: 1.55; + color: var(--md-typeset-color); +} + +.md-typeset h1 { + font-size: 1.375rem; + font-weight: 600; + margin: 0 0 0.875rem; + line-height: 1.3; +} + +.md-typeset h2 { + font-size: 1.125rem; + font-weight: 600; + margin: 1.25rem 0 0.5rem; + line-height: 1.35; + padding-top: 0.25rem; + border-top: 1px solid var(--md-default-fg-color--lightest); +} + +.md-typeset h3 { + font-size: 0.9375rem; + font-weight: 600; + margin: 1rem 0 0.375rem; + line-height: 1.4; +} + +.md-typeset h4 { + font-size: 0.8125rem; + font-weight: 600; + margin: 0.875rem 0 0.375rem; +} + +.md-typeset p, +.md-typeset ul, +.md-typeset ol { + margin-bottom: 0.625rem; +} + +/* Sidebar Navigation Styling */ +.md-sidebar { + width: 13rem; +} + +.md-sidebar--primary { + left: 0; +} + +.md-sidebar--secondary { + width: 12rem; +} + +.md-nav { + font-size: 0.6875rem; + line-height: 1.5; +} + +.md-nav__title { + font-weight: 700; + font-size: 0.625rem; + text-transform: uppercase; + letter-spacing: 0.05em; + padding: 0.375rem 0.625rem; + color: var(--md-default-fg-color--light); +} + +.md-nav__item { + padding: 0; +} + +.md-nav__link { + margin: 0; + padding: 0.3125rem 0.625rem; + border-radius: 0.25rem; + transition: background-color 0.125s ease; +} + +.md-nav__link:hover { + background-color: var(--md-accent-fg-color--transparent); +} + +.md-nav__link--active { + font-weight: 600; + color: var(--md-accent-fg-color); + background-color: var(--md-accent-fg-color--transparent); +} + +/* Section labels in sidebar */ +.md-nav__item--section > .md-nav__link { + font-weight: 700; + color: var(--md-default-fg-color); + padding-top: 0.5rem; + padding-bottom: 0.25rem; +} + +.md-nav__item--section > .md-nav__link:hover { + background-color: transparent; +} + +/* Nested navigation items */ +.md-nav--secondary .md-nav__item { + padding-left: 0; +} + +.md-nav--secondary .md-nav__link { + padding-left: 1.25rem; + font-size: 0.625rem; +} + +/* Table of Contents in right sidebar */ +.md-sidebar--secondary { + order: 2; + margin-left: 0; +} + +.md-sidebar--secondary .md-nav { + font-size: 0.625rem; +} + +.md-sidebar--secondary .md-nav__link { + padding: 0.25rem 0.5rem; +} + +/* Responsive adjustments */ +@media screen and (min-width: 76.25em) { + .md-sidebar { + width: 14rem; + } + + .md-sidebar--secondary { + width: 13rem; + } + + .md-content__inner { + max-width: 55rem; + } +} + +@media screen and (min-width: 100em) { + .md-sidebar { + width: 15rem; + } + + .md-sidebar--secondary { + width: 14rem; + } + + .md-content__inner { + max-width: 70rem; + padding: 1rem 1.75rem; + } +} + +@media screen and (min-width: 120em) { + .md-sidebar { + width: 16rem; + } + + .md-sidebar--secondary { + width: 15rem; + } + + .md-content__inner { + max-width: 85rem; + } +} + +/* Enhance admonition styling */ +.md-typeset .admonition, +.md-typeset details { + border-left: 0.25rem solid; + border-radius: 0.25rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + margin: 0.75rem 0; + padding: 0.5rem 0.75rem; + font-size: 0.75rem; +} + +.md-typeset .admonition-title, +.md-typeset summary { + font-weight: 600; + font-size: 0.75rem; + margin: -0.5rem -0.75rem 0.5rem; + padding: 0.5rem 0.75rem; + border-bottom: 1px solid var(--md-default-fg-color--lightest); +} + +/* Grid cards spacing */ +.grid.cards { + margin-top: 1rem; +} + +/* Code block improvements */ +.md-typeset pre { + border-radius: 0.25rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08); + margin: 0.75rem 0; +} + +.md-typeset pre > code { + padding: 0.625rem 0.875rem; + font-size: 0.6875rem; + line-height: 1.45; +} + +.md-typeset code { + font-size: 0.6875rem; + padding: 0.0625rem 0.25rem; + border-radius: 0.1875rem; + background-color: var(--md-code-bg-color); + box-shadow: 0 0 0 1px var(--md-default-fg-color--lightest); +} + +/* Make tables more readable */ +.md-typeset table:not([class]) { + font-size: 0.6875rem; + border-radius: 0.25rem; + overflow: hidden; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + margin: 0.75rem 0; +} + +.md-typeset table:not([class]) th { + background-color: var(--md-default-fg-color--lightest); + font-weight: 600; + padding: 0.375rem 0.625rem; + font-size: 0.6875rem; +} + +.md-typeset table:not([class]) td { + padding: 0.375rem 0.625rem; + border-bottom: 1px solid var(--md-default-fg-color--lightest); +} + +.md-typeset table:not([class]) tr:last-child td { + border-bottom: none; +} + +/* Checklist styling */ +.task-list-item { + list-style-type: none; +} + +.task-list-item input[type="checkbox"] { + margin-right: 0.375rem; +} + +/* Warning boxes - make them more prominent */ +.md-typeset .admonition.danger, +.md-typeset details.danger { + border-left-color: #ff1744; +} + +.md-typeset .admonition.warning, +.md-typeset details.warning { + border-left-color: #ff9100; +} + +.md-typeset .admonition.tip, +.md-typeset details.tip { + border-left-color: var(--md-accent-fg-color); +} + +.md-typeset .admonition.info, +.md-typeset details.info { + border-left-color: var(--md-primary-fg-color); +} + +/* Link styling */ +.md-typeset a { + text-decoration: none; + transition: color 0.125s ease; +} + +.md-typeset a:hover { + text-decoration: underline; +} + +/* Improve list spacing */ +.md-typeset ul, +.md-typeset ol { + padding-left: 1.125rem; +} + +.md-typeset li { + margin-bottom: 0.1875rem; +} + +.md-typeset li > p { + margin-bottom: 0.1875rem; +} + +/* Blockquote styling */ +.md-typeset blockquote { + border-left: 0.25rem solid var(--md-default-fg-color--light); + padding-left: 0.75rem; + margin: 0.75rem 0; + color: var(--md-default-fg-color--light); + font-style: italic; + font-size: 0.75rem; +} + +/* Horizontal rule */ +.md-typeset hr { + border: none; + border-top: 1px solid var(--md-default-fg-color--lightest); + margin: 1.25rem 0; +} diff --git a/docs/system/governor.md b/docs/system/governor.md new file mode 100644 index 0000000..77464db --- /dev/null +++ b/docs/system/governor.md @@ -0,0 +1,514 @@ +# GPU Governor Setup + +The GPU governor is essential for BC-250 performance, enabling dynamic frequency and voltage scaling. + +## Why You Need a Governor + +### Without Governor + +- GPU frequency **locked at 1500 MHz** +- No dynamic scaling +- Higher power consumption at idle (85-105W) +- Lower performance (can't reach 2000+ MHz) + +### With Governor + +- GPU scales from 1000 MHz (idle) to 2000-2230 MHz (load) +- Dynamic voltage scaling (700-1000 mV) +- Better temperatures +- Lower idle power (65-85W) +- Better gaming performance + +**Power Savings:** 20-30W reduction at idle + +!!!success "Essential for Performance" + The governor is not optional for good gaming performance. Without it, you're stuck at 1500 MHz. + +## Governor Options + +### Oberon Governor (Original - Recommended) + +**Developer:** mothenjoyer69 / TuxThePenguin0 +**Type:** Two-state governor (min/max frequency) + +**Features:** +- Simple configuration +- Proven stability +- Low CPU overhead (0.4%) +- Binary states: 1000 MHz idle, 2000 MHz load + +**Repository:** [gitlab.com/mothenjoyer69/oberon-governor](https://gitlab.com/mothenjoyer69/oberon-governor) + +### Filip's Enhanced Governor + +**Developer:** FilippoR +**Type:** Multi-step governor + +**Features:** +- Multiple frequency steps (not just 2) +- Maintains GPU usage 45-70% +- More responsive than original +- Available as COPR/RPM package +- Latest version: v0.1.4+ + +**Repository:** [github.com/filippor/oberon-governor](https://github.com/filippor/oberon-governor) + +**Target:** Keeps GPU load in optimal range for consistent performance + +### Cyan-Skillfish Governor + +**Developer:** Magnap +**Type:** Continuous scaling governor + +**Features:** +- Continuously adjusts frequency (no steps) +- Maintains GPU utilization 70-95% +- More precise voltage control +- Multiple voltage points supported +- Available as .deb, .rpm, AUR, Nix + +**Repository:** [github.com/Magnap/cyan-skillfish-governor](https://github.com/Magnap/cyan-skillfish-governor) + +**Performance:** Equivalent to max frequency at constant load, with better efficiency + +## Installation + +### Option 1: COPR (Fedora/Bazzite - Easiest) + +```bash +# Add COPR repository +sudo dnf copr enable filippor/bazzite + +# Install governor +sudo dnf install oberon-governor + +# Enable and start service +sudo systemctl enable --now oberon-governor.service + +# Check status +systemctl status oberon-governor +``` + +### Option 2: Build from Source (All Distros) + +**Install Dependencies:** + +```bash +# Fedora +sudo dnf install -y libdrm-devel cmake make gcc-c++ git + +# Arch +sudo pacman -S base-devel cmake git + +# Debian/Ubuntu +sudo apt install build-essential cmake git libdrm-dev libyaml-cpp-dev +``` + +**Clone and Build:** + +```bash +# Clone repository +git clone https://gitlab.com/mothenjoyer69/oberon-governor.git +cd oberon-governor + +# Build +cmake . && make + +# Install +sudo make install + +# Enable service +sudo systemctl enable --now oberon-governor.service +``` + +### Option 3: Bazzite Automated Script + +```bash +# Download and run setup script +curl -s https://raw.githubusercontent.com/vietsman/bc250-documentation/refs/heads/main/oberon-setup.sh | sudo sh + +# Verify installation +systemctl status oberon-governor +``` + +### Option 4: Cyan-Skillfish Governor + +**Fedora:** +```bash +sudo dnf copr enable filippor/bazzite +sudo dnf install cyan-skillfish-governor +``` + +**Arch:** +```bash +yay -S cyan-skillfish-governor +``` + +**Debian/Ubuntu:** +```bash +# Download .deb from GitHub releases +wget https://github.com/Magnap/cyan-skillfish-governor/releases/download/v0.1.3/cyan-skillfish-governor_0.1.3_amd64.deb +sudo dpkg -i cyan-skillfish-governor_0.1.3_amd64.deb +``` + +## Configuration + +### Oberon Governor Config + +**Config File:** `/etc/oberon-config.yaml` + +**Default Configuration:** +```yaml +opps: + frequency: + min: 1000 # Minimum GPU frequency (MHz) + max: 2000 # Maximum GPU frequency (MHz) + voltage: + min: 700 # Minimum voltage (mV) + max: 1000 # Maximum voltage (mV) +``` + +**Safe Overclocking Config:** +```yaml +opps: + frequency: + min: 1000 + max: 2175 # Slight overclock + voltage: + min: 700 + max: 1025 # Slightly higher voltage for stability +``` + +**Restart after changes:** +```bash +sudo systemctl restart oberon-governor +``` + +### Filip's Multi-Step Config + +**Config File:** `/etc/oberon-config.yaml` + +**Advanced Multi-Step Configuration:** +```yaml +opps: + frequency: + min: 350 # Lower minimum for better idle power + max: 2175 # Overclocked maximum + voltage: + min: 700 + max: 1025 + steps: 24 # Number of frequency steps (creates 25 levels: 0-24) + +governor: + polling_delay_ms: 50 # How often to check GPU load + up_threshold_high: 85 # Load % to jump to maximum + up_threshold_low: 70 # Load % to step up one level + down_threshold_high: 45 # Load % to step down one level + down_threshold_low: 5 # Load % to drop to minimum + gfx_temp_soft_lim: 80 # Temp to step down (°C) + gfx_temp_hard_lim: 90 # Temp to drop to minimum (°C) + soc_temp_hard_lim: 90 # SoC temp limit (°C) + overheat_reset_ms: 10000 # Cool-down time after overheat +``` + +### Cyan-Skillfish Governor Config + +**Config File:** `/etc/cyan-skillfish-governor/config.toml` + +**Example Configuration:** +```toml +# Define voltage points (frequency MHz, voltage mV) +safe-points = [ + [1000, 700], # 1000 MHz @ 700 mV (idle) + [1500, 900], # 1500 MHz @ 900 mV + [2000, 1000], # 2000 MHz @ 1000 mV (gaming) + [2175, 1025], # 2175 MHz @ 1025 mV (boost) +] + +# GPU load target range (70-95%) +[load_target] +min = 0.70 +max = 0.95 + +# Timing configuration +[timing] +interval_ms = 50 # Sampling interval +burst_samples = 20 # Samples before burst to max +``` + +**Test voltage/frequency manually:** +```bash +# Stop governor +sudo systemctl stop cyan-skillfish-governor + +# Manually set frequency and voltage +echo vc 0 2000 1000 > /sys/devices/pci0000:00/0000:00:08.1/0000:01:00.0/pp_od_clk_voltage + +# Test stability with benchmark/game + +# If stable, add to config +``` + +## Verification + +### Check Governor is Running + +```bash +# Check service status +systemctl status oberon-governor + +# Should show: active (running) +``` + +### Check Frequency Scaling + +```bash +# View current GPU frequencies +cat /sys/class/drm/card0/device/pp_dpm_sclk + +# Example output: +# 0: 1000Mhz +# 1: 1500Mhz +# 2: 2000Mhz * +# +# The * indicates active frequency +``` + +**Test dynamic scaling:** +1. Check frequency at idle (should be ~1000 MHz) +2. Start a game or benchmark +3. Check frequency under load (should increase to 2000+ MHz) + +### Monitoring Tools + +**CoolerControl (GUI):** +```bash +# Fedora +sudo dnf copr enable terra/terra +sudo dnf install coolercontrol + +# Bazzite +ujust install-coolercontrol +``` + +Shows real-time GPU frequency, voltage, and temperature. + +**Command Line:** +```bash +# Watch frequency changes +watch -n 1 'cat /sys/class/drm/card0/device/pp_dpm_sclk' +``` + +**MangoHud (In-Game Overlay):** +```bash +# Install MangoHud +sudo dnf install mangohud # Fedora +sudo pacman -S mangohud # Arch + +# Run game with overlay +mangohud %command% # Steam launch option +``` + +## Troubleshooting + +### Governor Not Starting on Boot + +**Symptoms:** +- GPU stuck at 1500 MHz +- Service shows as inactive + +**Check service:** +```bash +sudo systemctl status oberon-governor + +# Check logs +sudo journalctl -u oberon-governor +``` + +**Solutions:** + +**1. Enable service:** +```bash +sudo systemctl enable oberon-governor +``` + +**2. Check config file exists:** +```bash +ls -l /etc/oberon-config.yaml + +# If missing, reinstall governor +``` + +**3. Manual restart:** +```bash +sudo systemctl restart oberon-governor +``` + +**Workaround (Arch/CachyOS):** + +Some users report governor doesn't activate until GPU is used: +- Run a game or benchmark once after boot +- Governor activates and stays active + +### Frequency Stuck at 1500 MHz + +**Possible causes:** +1. Governor not running +2. Config file missing/incorrect +3. Governor binary not installed + +**Debug:** +```bash +# Check governor binary exists +which oberon-governor + +# Check config +cat /etc/oberon-config.yaml + +# Try manual start +sudo oberon-governor + +# Check for errors +``` + +### System Crashes with Governor + +**Symptoms:** +- System unstable during gaming +- Crashes when GPU frequency changes + +**Causes:** +- Voltage too low for frequency +- Overheating +- Unstable overclock + +**Solutions:** + +**1. Increase voltage:** +```yaml +# Edit /etc/oberon-config.yaml +opps: + voltage: + max: 1050 # Increase from 1000 to 1050 +``` + +**2. Reduce max frequency:** +```yaml +opps: + frequency: + max: 1900 # Reduce from 2000 +``` + +**3. Check temperatures:** +```bash +sensors +# GPU should be < 85°C +``` + +### Governor High CPU Usage + +**Normal CPU Usage:** +- Oberon original: 0.4% CPU +- Filip's enhanced: 0.4-1.0% CPU +- Cyan-Skillfish: 0.9-1.3% CPU + +**If CPU usage > 2%:** + +**Check polling interval:** +```yaml +# Reduce polling frequency +governor: + polling_delay_ms: 100 # Increase from 50 +``` + +**Check for bugs:** +```bash +# View governor logs +sudo journalctl -u oberon-governor -f +``` + +## Performance Comparison + +| Governor | Idle Freq | Max Freq | CPU Usage | Response Time | Performance | +|----------|-----------|----------|-----------|---------------|-------------| +| **None** | 1500 MHz | 1500 MHz | 0% | N/A | ⭐⭐ | +| **Oberon** | 1000 MHz | 2000 MHz | 0.4% | 100ms | ⭐⭐⭐⭐ | +| **Filip's** | 350-1000 MHz | 2175 MHz | 0.4-1.0% | 50-100ms | ⭐⭐⭐⭐⭐ | +| **Cyan-Skillfish** | Variable | 2000+ MHz | 0.9-1.3% | 24ms | ⭐⭐⭐⭐⭐ | + +## Governor Comparison + +### When to Use Oberon (Original) + +- **Simple setup:** Just works out-of-box +- **Proven stability:** Most tested +- **Low overhead:** Minimal CPU usage +- **Best for:** Beginners, stability-focused builds + +### When to Use Filip's Enhanced + +- **Better performance:** Multi-step scaling +- **Available as package:** Easy to install +- **Good balance:** Performance + stability +- **Best for:** Most users, gaming builds + +### When to Use Cyan-Skillfish + +- **Maximum control:** Precise frequency control +- **Best efficiency:** Continuous scaling +- **Advanced config:** Multiple voltage points +- **Best for:** Advanced users, overclockers + +## Overclocking with Governor + +### Safe Overclocking Guide + +**Step 1: Test Maximum Stable Frequency** + +```bash +# Stop governor +sudo systemctl stop oberon-governor + +# Manually set test frequency +echo vc 0 2100 1050 > /sys/devices/pci0000:00/0000:00:08.1/0000:01:00.0/pp_od_clk_voltage + +# Run benchmark (30+ minutes) +# If stable, try higher +# If crashes, lower frequency or increase voltage +``` + +**Step 2: Update Governor Config** + +```yaml +# /etc/oberon-config.yaml +opps: + frequency: + max: 2100 # Your stable frequency + voltage: + max: 1050 # Your stable voltage +``` + +**Step 3: Restart and Test** + +```bash +sudo systemctl restart oberon-governor + +# Test with games/benchmarks +# Monitor temperatures +``` + +**Known Limits:** +- **980 MHz:** Unstable (known issue, avoid) +- **2000 MHz @ 1000mV:** Safe for all boards +- **2175 MHz @ 1025mV:** Safe for most boards +- **2230 MHz:** Maximum with kernel patch, requires cooling + +!!!warning "Overclocking Risks" + Overclocking can cause instability, crashes, and potentially hardware damage. Always monitor temperatures and test thoroughly. + +## See Also + +- [System Configuration](../system/governor.md) +- [BIOS Overclocking Guide](../bios/overclocking.md) +- [Cooling Solutions](../hardware/cooling.md) +- [Performance Tuning](../gaming/compatibility.md) diff --git a/docs/troubleshooting/display.md b/docs/troubleshooting/display.md new file mode 100644 index 0000000..1af2126 --- /dev/null +++ b/docs/troubleshooting/display.md @@ -0,0 +1,589 @@ +# Display & No Signal Issues + +Display problems are the #1 issue new BC-250 users encounter. This guide covers all known display-related issues and their solutions. + +--- + +## Quick Diagnosis + +**Symptoms checklist:** + +- [ ] Complete black screen, no signal +- [ ] Display works in BIOS but not in OS +- [ ] Display flickers or goes black intermittently +- [ ] Display works on first boot, fails after reboot +- [ ] No display after BIOS flash + +**Most common causes:** + +1. Missing GPU drivers + no nomodeset +2. BIOS settings not applied (CMOS not cleared) +3. Incompatible display adapter (active DP-HDMI) +4. IOMMU enabled in BIOS +5. Kernel 6.15+ driver issues + +--- + +## No Display During Installation + +### Problem: Black Screen When Booting Installer + +**Symptoms:** +- USB boots, but screen goes black +- No installer appears +- Monitor shows "No Signal" + +**Cause:** +Installer doesn't have BC-250 GPU drivers. Linux framebuffer (KMS) attempts to initialize GPU and fails. + +**Solution: Use nomodeset** + +!!!tip "Fedora: Use Basic Graphics Mode" + In Fedora installer boot menu, select "Troubleshooting" → "Install in Basic Graphics Mode". This enables nomodeset automatically. + +**Manual method (any distro):** + +1. At GRUB boot menu, press **e** to edit +2. Find line starting with `linux` or `linuxefi` +3. Go to end of that line +4. Add a space, then type: `nomodeset` +5. Press **Ctrl+X** to boot + +Example: +```bash +# Before: +linux /vmlinuz root=live:CDLABEL=Fedora quiet + +# After: +linux /vmlinuz root=live:CDLABEL=Fedora quiet nomodeset +``` + +**What nomodeset does:** +- Disables kernel mode setting (KMS) +- Forces fallback to VESA/UEFI framebuffer +- Allows display without GPU drivers +- Enables installation to proceed + +!!!warning "Must Remove After Install" + Once Mesa drivers are installed, nomodeset MUST be removed or GPU acceleration won't work. + +--- + +## No Display After Installation + +### Problem: Boots But Black Screen + +**Symptoms:** +- Installation completed successfully +- System boots (fan spins, LED lights up) +- But display shows nothing + +**Cause:** +Same as installer - no GPU drivers yet. + +**Solution:** + +**Option 1: Boot with nomodeset (temporary fix)** + +1. At GRUB boot menu (shows briefly), press **e** +2. Find `linux` line +3. Add `nomodeset` at end +4. Press **Ctrl+X** to boot +5. Install drivers (see [driver installation guide](../linux/distributions.md)) +6. Remove nomodeset from GRUB permanently + +**Option 2: Install drivers from recovery mode** + +Some distros offer recovery/safe mode that includes basic display drivers. + +**Permanent fix:** + +After booting with nomodeset: + +```bash +# Install drivers (distro-specific) +# Fedora: +curl -s https://raw.githubusercontent.com/mothenjoyer69/bc250-documentation/refs/heads/main/fedora-setup.sh | sh + +# Then remove nomodeset: +sudo nano /etc/default/grub +# Remove 'nomodeset' from GRUB_CMDLINE_LINUX_DEFAULT +sudo grub2-mkconfig -o /boot/grub2/grub.cfg +sudo reboot +``` + +--- + +## Display Works in BIOS, Fails in OS + +### Problem: Can Access BIOS But Not Boot OS + +**Symptoms:** +- BIOS menu displays fine +- Boot process starts +- Screen goes black when OS loads + +**Cause:** +OS tries to initialize GPU with KMS, fails because drivers missing or incompatible. + +**Solution:** +Add nomodeset to kernel parameters (same as above sections). + +**If drivers ARE installed:** + +Check kernel version: +```bash +uname -r +``` + +If kernel is 6.15 or higher: +```bash +# Downgrade to 6.12-6.14 +# Fedora: +sudo dnf install kernel-6.14.x + +# Update GRUB to use older kernel as default +sudo grub2-mkconfig -o /boot/grub2/grub.cfg +``` + +!!!danger "Kernel 6.15+ Breaks GPU" + Kernel 6.15+ has driver incompatibility with BC-250. Always use 6.12-6.14 LTS. + +--- + +## No Display After BIOS Flash + +### Problem: Flashed BIOS, Now No Display + +**Symptoms:** +- USB BIOS flash appeared successful +- Board powers on (fan spins) +- No display at all, not even BIOS + +**Causes:** +1. CMOS not cleared (most common) +2. BIOS flash corrupted +3. Display adapter incompatibility +4. IOMMU enabled by default in new BIOS + +**Solutions (in order of likelihood):** + +**1. Clear CMOS (fixes 90% of cases)** + +!!!success "This Usually Fixes It" + Most "bricked after flash" boards are just waiting for CMOS clear. + +Method A: Remove battery +1. Power off, unplug everything +2. Remove CR2032 CMOS battery +3. Wait 60 seconds (or press power button 5 times with battery out) +4. Replace battery +5. Plug back in, power on + +Method B: Use CMOS jumper +1. Power off, unplug +2. Locate CMOS clear jumper (check board pinout) +3. Move jumper to clear position +4. Wait 10 seconds +5. Return jumper to normal position +6. Power on + +**2. Try Different Display Adapter** + +- If using active DP-HDMI adapter, try passive +- If using passive, try native DP cable +- Try different monitor if possible + +**3. Reflash BIOS** + +If board still doesn't display: +- BIOS may be corrupted +- Reflash using USB method again +- Or use hardware programmer (CH341A) + +[BIOS recovery guide →](bios-recovery.md) + +--- + +## Intermittent Black Screens + +### Problem: Display Works, Then Randomly Goes Black + +**Symptoms:** +- Display works initially +- Goes black during gaming or after some time +- Requires reboot to restore + +**Possible causes:** + +**1. Overheating** + +Check temperatures: +```bash +sensors +``` + +If GPU >90°C: +- Improve cooling (better fans, straighten fins) +- Lower clock speeds in governor config +- Increase fan speed + +**2. Unstable Overclock** + +If using custom governor settings: + +```bash +# Edit /etc/oberon-config.yaml +# Reduce max_frequency or increase voltage +sudo systemctl restart oberon-governor +``` + +**3. Power Supply Issues** + +- Insufficient wattage (need 300W+) +- Bad 8-pin connection +- Voltage sag under load + +Test with lower power limit: +```bash +# Limit max frequency to reduce power draw +# Edit /etc/oberon-config.yaml +max_frequency: 1500 +``` + +**4. Display Adapter Overheating** + +Some active adapters overheat and fail. +- Switch to passive adapter +- Ensure adapter has airflow + +--- + +## Display Flickering / Artifacts + +### Problem: Image Has Visual Glitches + +**Symptoms:** +- Screen flickers +- Colored artifacts +- Horizontal lines +- Partial display corruption + +**Causes & Solutions:** + +**1. Bad Display Cable** +- Try different DP or HDMI cable +- Ensure cable supports your resolution/refresh rate + +**2. Refresh Rate Too High** +- Some passive adapters limited to 60Hz +- Reduce refresh rate in display settings: + ```bash + # KDE: System Settings → Display + # GNOME: Settings → Displays + ``` + +**3. VRAM Allocation Issues** + +If using fixed VRAM allocation and seeing artifacts: +- May need more VRAM +- Switch from 4GB to 6GB or 8GB VRAM in BIOS + +**4. Unstable GPU Overclock** + +Reduce frequency or increase voltage in governor config. + +--- + +## Display Works But No BIOS Menu + +### Problem: Can't Access BIOS Setup + +**Symptoms:** +- Display shows boot process +- Can't enter BIOS menu +- Del/F2 keys don't work + +**Solutions:** + +**1. Press Del EARLIER** +- Start pressing Del immediately when powering on +- Some boards have very short window + +**2. Try Different Keys** +- Del (most common) +- F2 +- F12 +- Esc + +**3. Boot Too Fast** +- Add delay to GRUB timeout +- Or hold Shift during boot for GRUB menu +- Then reboot from GRUB to BIOS + +**4. Display Adapter Issue** +- Some adapters don't initialize fast enough for BIOS +- Try different adapter +- Try native DP cable + +**5. Keyboard Not Detected** +- Try different USB port +- Try USB 2.0 instead of 3.0 +- Ensure keyboard plugged in before power on + +--- + +## Special Case: Active vs Passive Adapters + +### Understanding the Difference + +**Passive DP-to-HDMI adapters:** +- Simple physical connector conversion +- No power needed +- Limited to 1080p60 or 1440p60 typically +- Audio works properly +- Cost: $5-10 + +**Active DP-to-HDMI adapters:** +- Contains electronics/chip for signal conversion +- Powered from DP port +- Supports 4K60Hz, 4K120Hz +- **Audio does NOT work on BC-250** +- Cost: $15-30 + +### Known Issues with Active Adapters + +!!!warning "Audio Broken on Active Adapters" + Active DP-HDMI adapters consistently break audio on BC-250. Video works, audio doesn't. + +**Why:** Active adapters re-encode the signal. BC-250's DP audio implementation is non-standard, and active adapters can't properly decode it. + +**Workarounds:** +1. Use passive adapter (best solution) +2. Use USB DAC for audio +3. Use native DP monitor +4. Use USB-C headphones + +### Recommended Adapters + +**Passive adapters that work:** +- Amazon Basics DP to HDMI adapter +- Cable Matters DP to HDMI adapter +- Most cheap unbranded passive adapters + +**Avoid:** +- Any adapter advertising "4K120" or "8K" +- Adapters with USB power ports +- Adapters with status LEDs (usually active) + +--- + +## IOMMU Related Display Issues + +### Problem: Display Fails with Certain Adapters + +**Symptoms:** +- Works with some display adapters, not others +- Random "no signal" issues +- Display works initially then fails + +**Cause:** +IOMMU (AMD's virtualization feature) can interfere with display output on some adapters. + +**Solution:** + +Disable IOMMU in BIOS: + +1. Enter BIOS setup (Del during boot) +2. Navigate to Advanced or Chipset menu +3. Find "IOMMU" or "AMD IOMMU" +4. Set to **Disabled** +5. Save and exit + +Verify disabled in OS: +```bash +dmesg | grep -i iommu +# Should show "AMD-Vi: AMD IOMMU disabled" +``` + +!!!info "When to Enable IOMMU" + Only enable IOMMU if you're doing GPU passthrough for virtualization. For normal use, keep it disabled. + +--- + +## Kernel-Specific Display Issues + +### Kernel 6.15+ No Display + +**Problem:** +- Upgraded kernel to 6.15+ +- Now no display after boot + +**Cause:** +Kernel 6.15+ has driver incompatibility with BC-250. + +**Solution:** + +Boot older kernel: +1. At GRUB, select "Advanced options" +2. Select kernel 6.14 or earlier +3. Boot + +Make older kernel default: +```bash +# Fedora: +sudo grubby --set-default /boot/vmlinuz-6.14.x + +# Or remove 6.15 kernel entirely +sudo dnf remove kernel-6.15.x +``` + +### Kernel 6.10+ and sg_display Parameter + +**Note:** Kernel 6.10+ doesn't need `amdgpu.sg_display=0` parameter + +If you have this in your GRUB config and kernel ≥6.10, you can remove it: + +```bash +sudo nano /etc/default/grub +# Remove amdgpu.sg_display=0 +sudo grub2-mkconfig -o /boot/grub2/grub.cfg +``` + +--- + +## Hardware-Level Display Issues + +### Dead Display Port + +**Symptoms:** +- Never had display working +- Tried everything above +- Multiple adapters don't work + +**Diagnosis:** + +1. **Verify board powers on:** + - Fan spins + - LED lights + - Gets warm + +2. **Test on different monitor** + +3. **Try all four display port lanes:** + - Some DP ports are actually DP++ (dual mode) + - Try different orientation/pins + +**If truly dead:** + +This is rare but possible. Board may have damaged DP controller. + +**Options:** +- Return to seller (if recently purchased) +- Use board for headless compute +- Hardware repair (advanced) + +--- + +## Diagnostic Commands + +### Check Display Connection + +```bash +# List displays detected +xrandr + +# Should show: +# DisplayPort-0 connected ... + +# Check DRM +ls /sys/class/drm/ +# Should show card0, card0-DP-1, etc. +``` + +### Check GPU Initialization + +```bash +# Check GPU detected +lspci | grep VGA +# Should show: AMD Radeon Graphics + +# Check driver loaded +lsmod | grep amdgpu +# Should show amdgpu module + +# Check for errors +dmesg | grep -i amdgpu +# Look for errors or failures +``` + +### Check Mesa/Driver + +```bash +# Mesa version +glxinfo | grep "OpenGL version" +# Should be Mesa 25.1+ + +# Vulkan +vulkaninfo | grep deviceName +# Should show: AMD Radeon Graphics (RADV GFX1013) +``` + +--- + +## Recovery Procedures + +### If Completely Unable to Get Display + +**Step 1: Verify hardware** +- Power supply working? (8-pin firmly connected) +- Fans spinning? +- LED lights on? + +**Step 2: Clear CMOS** +- Remove battery 60 seconds +- Press power button 5 times while battery out +- Replace, power on + +**Step 3: Reflash BIOS** +- Create bootable USB with modded BIOS +- Flash again +- Clear CMOS again + +**Step 4: Hardware programmer** +- Use CH341A to reflash BIOS directly +- Bypass potentially corrupted BIOS + +[BIOS recovery guide →](bios-recovery.md) + +### If Display Works in Linux But Not Windows + +!!!info "No Windows Drivers" + BC-250 has NO Windows GPU drivers. Display will only work in BIOS and Linux. This is expected and cannot be fixed. + +--- + +## FAQ + +**Q: Display worked yesterday, now doesn't. What changed?** +A: Check if kernel updated (`uname -r`). If now on 6.15+, boot older kernel. + +**Q: Can I use HDMI directly?** +A: No, board only has DisplayPort. Must use DP cable or adapter. + +**Q: Will USB-C to HDMI work?** +A: No, board doesn't have USB-C DisplayPort alt mode. Use the DP port. + +**Q: Why does BIOS show but Linux doesn't?** +A: BIOS uses UEFI framebuffer. Linux tries to use GPU drivers which may be missing or broken. + +**Q: Display sometimes works, sometimes doesn't?** +A: Likely loose cable, bad adapter, or overheating. Check all connections and temps. + +--- + +**Related Guides:** +- [BIOS Flashing](../bios/flashing.md) +- [Linux Installation](../linux/distributions.md) +- [Hardware Setup](../hardware/power.md) +- [BIOS Recovery](bios-recovery.md) diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..44955f4 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,191 @@ +site_name: AMD BC250 Documentation +site_description: Comprehensive documentation for the AMD BC250 board - Linux setup, BIOS configuration, troubleshooting, and community projects +site_author: BC250 Community +site_url: https://YOUR_GITHUB_USERNAME.github.io/amd-bc250-docs/ + +# Repository +repo_name: amd-bc250-docs +repo_url: https://github.com/YOUR_GITHUB_USERNAME/amd-bc250-docs + +# Copyright +copyright: Copyright © 2024-2025 BC250 Community + +# Theme +theme: + name: material + palette: + # Palette toggle for automatic light/dark mode + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + # Light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: teal + accent: cyan + toggle: + icon: material/brightness-7 + name: Switch to dark mode + # Dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: teal + accent: cyan + toggle: + icon: material/brightness-4 + name: Switch to system preference + + features: + - navigation.instant + - navigation.instant.prefetch + - navigation.sections + - navigation.indexes + - navigation.top + - navigation.footer + - navigation.tracking + - search.suggest + - search.highlight + - search.share + - toc.follow + - content.code.copy + - content.code.annotate + - content.tabs.link + + icon: + repo: fontawesome/brands/github + logo: material/chip + +# Plugins +plugins: + - search: + separator: '[\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;' + - tags + +# Extensions +markdown_extensions: + - abbr + - admonition + - attr_list + - def_list + - footnotes + - md_in_html + - toc: + permalink: true + toc_depth: 3 + - pymdownx.arithmatex: + generic: true + - pymdownx.betterem: + smart_enable: all + - pymdownx.caret + - pymdownx.details + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.keys + - pymdownx.magiclink: + normalize_issue_symbols: true + repo_url_shorthand: true + - pymdownx.mark + - pymdownx.smartsymbols + - pymdownx.snippets + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.tilde + +# Navigation +nav: + - Home: index.md + + - Getting Started: + - Introduction: getting-started/introduction.md + - Quick Start: getting-started/quick-start.md + - Prerequisites: getting-started/prerequisites.md + + - Hardware: + - Specifications: hardware/specifications.md + - Power Requirements: hardware/power.md + - Cooling Solutions: hardware/cooling.md + - Display Connectors: hardware/display.md + - Pinouts & Connectors: hardware/pinouts.md + + - BIOS & Firmware: + - BIOS Flashing Guide: bios/flashing.md + - VRAM Configuration: bios/vram.md + - Overclocking: bios/overclocking.md + - Recovery: bios/recovery.md + + - Linux Setup: + - Distribution Guide: linux/distributions.md + - Fedora Setup: linux/fedora.md + - Bazzite Setup: linux/bazzite.md + - CachyOS Setup: linux/cachyos.md + - Arch Linux Setup: linux/arch.md + - Debian Setup: linux/debian.md + - Kernel Configuration: linux/kernel.md + - Mesa Installation: linux/mesa.md + + - Drivers & Graphics: + - RADV Driver: drivers/radv.md + - Environment Variables: drivers/environment.md + - Vulkan & OpenGL: drivers/apis.md + - Mesa Compilation: drivers/mesa-build.md + + - System Configuration: + - GPU Governor: system/governor.md + - Performance Tuning: system/performance.md + - Sensors & Monitoring: system/sensors.md + - Power Management: system/power.md + + - Gaming & Performance: + - Game Compatibility: gaming/compatibility.md + - Performance Tips: gaming/performance.md + - Benchmarks: gaming/benchmarks.md + - FSR & Scaling: gaming/scaling.md + + - Troubleshooting: + - Display Issues: troubleshooting/display.md + - Boot Problems: troubleshooting/boot.md + - Performance Issues: troubleshooting/performance.md + - Stability Problems: troubleshooting/stability.md + - Common Fixes: troubleshooting/common-fixes.md + + - Community Projects: + - Software Projects: community/software.md + - Case Designs: community/cases.md + - Hardware Mods: community/mods.md + - 3D Printing: community/3d-printing.md + + - Reference: + - Quick Reference: reference/quick-reference.md + - Command Cheatsheet: reference/commands.md + - Verified Information: reference/verified.md + - FAQ: reference/faq.md + +# Extra +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/mothenjoyer69/bc250-documentation + - icon: fontawesome/brands/discord + link: https://discord.com/invite/uDvkhNpxRQ + + version: + provider: mike + + generator: false + +extra_css: + - stylesheets/extra.css