Skip to content

Kernel Requirements and Configuration

The Linux kernel version and configuration is critical for BC-250 stability and performance.

Kernel Version Compatibility

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):

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

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:

# Add temporarily at GRUB menu (press 'e' to edit)
nomodeset

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

# 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:

  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

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-smu

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.18.18-200.fc43.x86_64

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:

# 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.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):

  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) 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

See Also