- Fix ttm.pages_limit and ttm.page_pool_size: 3776000 → 3959290 (per mothenjoyer69's docs for >8GB shared memory) - Add note that Bazzite already includes the frequency range patch - Add note that SMU governor bypasses kernel patching entirely - Clarify manual patching only needed for TT governor on non-Bazzite distros
12 KiB
Kernel Requirements and Configuration
The Linux kernel version and configuration is critical for BC-250 stability and performance.
Kernel Version Compatibility
Recommended Kernels
Best Compatibility:
- 6.18.x LTS - RECOMMENDED (CachyOS 6.18.0 reports 5-10% faster than 6.17)
- 6.17.11+ - Kernel fix applied, works well
- 6.16.x - All versions work well
- 6.15.7 - 6.17.7 - Full BC-250 support
Stable Fallback:
- 6.12.x LTS - Older but reliable
- 6.13.x - Stable
- 6.14.x LTS - Well-tested
Confirmed Working Versions (Jan-Feb 2026):
- 6.18.3 - Confirmed working (CachyOS, Debian sid, Ubuntu xanmod)
- 6.18.0 - Confirmed working (CachyOS - 5-10% performance improvement over 6.17)
- 6.17.11+ - Confirmed working (Fedora, Dec 2025)
- 6.16.5 (Fedora 42/43)
- 6.15.11-1-lts (Arch Linux)
!!!success "Current Recommendation" Use kernel 6.18.x LTS for the best BC-250 performance (5-10% faster than 6.17). Alternatively, kernels 6.17.11+ also work well.
!!!warning "6.19.x: PCIe Issues Reported (March 2026)" Community reports indicate that some 6.19.x kernel builds cause all PCIe devices to stop working on BC-250. If using 6.19.x, test thoroughly before committing. Stick to 6.18.x or 6.17.11+ for proven stability.
Broken Kernels
!!!danger "Avoid These Kernel Versions" - 6.15.0 - 6.15.6: GPU initialization fails - 6.17.8 - 6.17.10: GPU driver broken (fixed in 6.17.11)
These versions cause:
- Kernel panics on boot
- GPU fails to initialize
- `amdgpu: Failed to get gpu_info firmware` error
- Black screen after boot
Known Error Messages:
[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:
# 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)
Disabling CPU security mitigations provides a noticeable performance boost for gaming:
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 dedicated gaming systems, not for systems handling sensitive data.
Fedora/Arch/Debian (GRUB-based):
# Edit GRUB config
sudo nano /etc/default/grub
# Add mitigations=off to GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amdgpu.sg_display=0 mitigations=off"
# Update GRUB
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # Fedora
sudo update-grub # Debian/Ubuntu
sudo grub-mkconfig -o /boot/grub/grub.cfg # Arch
# Reboot
sudo reboot
Bazzite/Fedora Atomic (rpm-ostree):
rpm-ostree kargs --append-if-missing="mitigations=off"
systemctl reboot
Memory Allocation Parameters (Advanced)
For maximum GPU memory access (14.5-14.75GB):
# Add to kernel parameters
amdgpu.gttsize=14750 ttm.pages_limit=3959290 ttm.page_pool_size=3959290
!!! danger "Do NOT Enable IOMMU"
NEVER use amd_iommu=on - IOMMU is broken on BC-250 and causes crashes and display failures. The memory parameters above work WITHOUT enabling IOMMU.
Purpose:
- Allows GPU to access more system RAM
- Useful for VRAM-heavy workloads
- Alternative to increasing BIOS VRAM allocation
Via modprobe (alternative method):
# 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:
# 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
# Edit GRUB config
sudo nano /etc/default/grub
# Update GRUB
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# Reboot
sudo reboot
Debian/Ubuntu
# Edit GRUB config
sudo nano /etc/default/grub
# Update GRUB
sudo update-grub
# Reboot
sudo reboot
Arch Linux
# 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:
- Reboot system
- At GRUB menu, press e to edit boot entry
- Find line starting with
linuxorlinuxefi - Add parameters to end of line
- Press Ctrl+X to boot with modified parameters
GPU Frequency & Voltage Management (Advanced)
The cyan-skillfish-governor tools enable manual GPU frequency and voltage tuning on supported systems.
Installation (Fedora/Bazzite):
sudo dnf copr enable filippor/bazzite
sudo dnf install cyan-skillfish-governor-tt
Important: After installation, verify the governor is targeting the correct GPU device:
- Check which card is BC-250:
ls -la /sys/class/drm/ | grep card - The governor may target card0 or card1 depending on your system
- If governor settings don't apply, you may need to manually specify the correct card in configuration
Emerging Alternative — SMU Governor:
Some distributions (notably CachyOS) support cyan-skillfish-governor-smu as an alternative that works without kernel patches.
Note: GPU frequency management is optional and intended for advanced users. Default clocks are stable for most workloads.
For detailed setup instructions, see the GPU Governor Setup guide.
Kernel Management
Checking Current Kernel
# Display kernel version
uname -r
# Example output: 6.14.4-104.fc42.x86_64
Installing Specific Kernel Version
Fedora:
# 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:
# 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:
# 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:
# Edit pacman.conf
sudo nano /etc/pacman.conf
# Add under [options]:
IgnorePkg = linux
# Save and exit
Debian:
# 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.0-6.15.6 or 6.17.8-6.17.10 was installed and causes issues:
Fedora:
# Boot into working kernel from GRUB menu
# Remove broken kernel (example: 6.17.9)
sudo dnf remove kernel-6.17.9\*
# Or remove broken 6.17.8-6.17.10 kernels
sudo dnf remove 'kernel-6.17.[8-9]*' 'kernel-6.17.10*'
# Verify removal
dnf list installed kernel
Arch Linux:
# Boot into working kernel
# Remove problematic kernel
sudo pacman -R linux # if on broken version
# Install known-good kernel
sudo pacman -S linux-lts # 6.12 or 6.14 LTS
# or
sudo pacman -S linux # check version is 6.15.7-6.17.7
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 — no manual patching needed)
- PikaOS (pre-applied)
!!!success "Bazzite Users: Patch Already Included" If you're running Bazzite, the GPU frequency range patch is already included in Bazzite's kernel. You do NOT need to manually patch anything. Just install a governor and you're done.
!!!info "SMU Governor Bypasses Kernel Patching"
The cyan-skillfish-governor-smu manages clock speeds through SMU firmware calls and does not require the kernel frequency range patch on ANY distro. This is the easiest option for CachyOS, Arch, Fedora, or Debian users who don't want to compile a custom kernel. Install via AUR (cyan-skillfish-governor-smu) or COPR (filippor/bazzite).
Manual Patching (only if not using Bazzite/PikaOS and not using SMU governor):
Required for:
- Fedora (with TT governor)
- Arch Linux (with TT governor)
- Debian (with TT governor)
Patch Application (Advanced):
- Download BC-250 frequency patch
- Apply to kernel source
- Compile custom kernel
- Install and boot
[Detailed patching guide available in community resources]
Alternative: Use distributions with patch pre-applied (Bazzite, PikaOS) or use the SMU governor
TKG Kernel (Arch-based)
For Arch users, linux-tkg provides easy custom kernel building:
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 VGAshows device but driver not loadingdmesg | grep amdgpushows errors
Solution:
- Boot into older kernel from GRUB (hold Shift at boot)
- Remove newer kernel
- Hold kernel version
- Report issue to distribution
System Boots But No GPU Acceleration
Check:
# 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:
nomodesetstill 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.0-6.15.6 or 6.17.8-6.17.10
Solution:
- Boot into working kernel (hold Shift, select previous kernel)
- Remove problematic kernel version
- Lock kernel version to prevent auto-update
Kernel Version Matrix
| Kernel Version | Status | Notes |
|---|---|---|
| 6.10.x | ⚠️ Works | amdgpu.sg_display=0 required |
| 6.11.x | ✅ Good | Mesa 25.1+ required |
| 6.12.x LTS | ✅ Good | Stable fallback |
| 6.13.x | ✅ Good | Stable |
| 6.14.x LTS | ✅ Good | Well-tested |
| 6.15.0-6.15.6 | ❌ Broken | GPU init fails |
| 6.15.7-6.15.x | ✅ Recommended | Kernel support fixed |
| 6.16.x | ✅ Recommended | Full compatibility |
| 6.17.0-6.17.7 | ✅ Recommended | Good support |
| 6.17.8-6.17.10 | ❌ Broken | GPU driver broken |
| 6.17.11+ | ✅ Recommended | Kernel fix applied |
| 6.18.x LTS | ✅ Best | 5-10% faster than 6.17 (CachyOS Jan 2026) |
| 6.19.x | ⚠️ Testing | Reports of PCIe device failures (Mar 2026) — test before committing |