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.18 LTS - RECOMMENDED (current LTS, 5-10% faster than 6.17) - 6.19.x - Current stable (6.19.8), works well - 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
Current Kernel Landscape (March 2026): - 7.0-rc4 - Mainline (not recommended for production use) - 6.19.8 - Current stable (works well) - 6.18.18 - Current LTS — RECOMMENDED - 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.x (Fedora 43) - 6.15.11-1-lts (Arch Linux)
Current Recommendation
Use kernel 6.18.18 LTS or 6.19.x stable for the best BC-250 experience. Both work well. Kernels 6.17.11+ are also fine.
7.0-rc: Mainline — Do Not Use in Production
Kernel 7.0-rc4 is the current mainline release candidate. Not tested on BC-250 and not recommended for daily use.
Broken Kernels¶
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"
Parameter Explanations:
quiet- Reduces boot messages (optional)amdgpu.sg_display=0- Only needed for kernels < 6.10 (disables scatter-gather display). On kernel 6.10+ (including current Fedora 43 kernel 6.19.x), this parameter is not needed and can be omitted.
amdgpu.sg_display
This parameter is only required for kernels older than 6.10. Modern distros running 6.16+ do not need it. The modprobe option options amdgpu sg_display=0 achieves the same thing and is still safe to keep as a fallback.
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
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 mitigations=off"
# Note: amdgpu.sg_display=0 only needed for kernels < 6.10
# 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):
Memory Allocation Parameters (Advanced)¶
For maximum GPU memory access (14.5-14.75GB):
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=3959290 page_pool_size=3959290
options amdgpu gttsize=14750
# Rebuild initramfs
sudo dracut --regenerate-all --force # Fedora
sudo mkinitcpio -P # Arch
Installation Parameter (Temporary)¶
nomodeset - Use during installation only:
Purpose: Disables GPU driver, allows booting with basic graphics
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¶
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):
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¶
Installing Specific Kernel Version¶
Fedora:
# List available kernels
dnf list kernel --showduplicates
# Install specific version
sudo dnf install kernel-6.18.18-200
# Set as default in GRUB if needed
sudo grub2-set-default "Fedora Linux (6.18.18-200)"
Arch Linux:
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.18.18-amd64
# Unhold
sudo apt-mark unhold linux-image-6.18.18-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.17.11+ or 6.18.x
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)
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.
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 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:
# 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.0-6.15.6 or 6.17.8-6.17.10
Solution: 1. Boot into working 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 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 | 6.18.18 is current LTS, 5-10% faster than 6.17 |
| 6.19.x | ✅ Good | Current stable (6.19.8 confirmed working on Fedora 43, March 2026) |
| 7.0-rc | 🔬 Mainline | Not tested on BC-250, do not use in production |