Skip to content

Instantly share code, notes, and snippets.

@Bortus-AI
Created February 28, 2026 06:49
Show Gist options
  • Select an option

  • Save Bortus-AI/c9a79371b561c716874ba2cc2bd2f3cf to your computer and use it in GitHub Desktop.

Select an option

Save Bortus-AI/c9a79371b561c716874ba2cc2bd2f3cf to your computer and use it in GitHub Desktop.
Intel Arc Pro B50 (Battlemage) on Linux — Setup Guide
Debian 12 Guide
# Intel Arc Pro B50 (Battlemage) on Linux — Setup Guide
Getting Intel Arc Pro B50 GPUs working on Debian 12 (Bookworm) with SR-IOV passthrough.
## The Problem
The Intel Arc Pro B50 uses the **Battlemage G21** GPU (`8086:e212`), which requires the
**`xe` kernel driver**. Out of the box on Debian Bookworm, you'll hit two issues:
1. **Kernel too old** — Debian Bookworm ships kernel 6.1, which doesn't include the `xe` driver at all. Even the backports kernel (6.12) includes `xe` but lacks SR-IOV Virtual Function (VF) support.
2. **PCODE timeout on VFs** — If the GPUs are passed through as SR-IOV Virtual Functions, kernels before 6.17 will fail with:
```
xe 0000:00:10.0: [drm] *ERROR* PCODE initialization timedout after: 3 min
xe 0000:00:10.0: probe with driver xe failed with error -110
```
This happens because the PCODE mailbox only exists on the Physical Function (PF), and older `xe` drivers don't know how to handle VFs.
## Requirements
- Debian 12 (Bookworm) — amd64
- Intel Arc Pro B50 GPUs (device ID `8086:e212`)
- Root access
## Step 1: Install Kernel 6.19+
Kernel 6.17+ added VF support to the xe driver. We use the Ubuntu mainline kernel PPA
packages, which work on Debian.
```bash
mkdir -p /tmp/kernel619 && cd /tmp/kernel619
# Download kernel 6.19 packages
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.19/amd64/linux-image-unsigned-6.19.0-061900-generic_6.19.0-061900.202602082231_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.19/amd64/linux-modules-6.19.0-061900-generic_6.19.0-061900.202602082231_amd64.deb
```
> **Note:** You only need the image and modules packages. The headers packages have
> Ubuntu-specific dependencies (`libc6 >= 2.38`, `libdw1t64`, etc.) that won't resolve
> on Bookworm. Headers are only needed if you're compiling kernel modules — skip them
> for a basic install.
Install the `wireless-regdb` dependency first, then the kernel:
```bash
apt update
apt install -y wireless-regdb
dpkg -i linux-modules-6.19.0-061900-generic_6.19.0-061900.202602082231_amd64.deb \
linux-image-unsigned-6.19.0-061900-generic_6.19.0-061900.202602082231_amd64.deb
```
## Step 2: Install Battlemage GPU Firmware
The `xe` driver needs firmware files that aren't included in Debian's firmware packages.
```bash
git clone --depth 1 https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git /tmp/linux-firmware
cp -r /tmp/linux-firmware/xe /lib/firmware/xe/
cp -r /tmp/linux-firmware/i915 /lib/firmware/i915/
```
Key firmware files for Battlemage:
- `/lib/firmware/xe/bmg_guc_70.bin` — GuC microcontroller firmware
- `/lib/firmware/xe/bmg_huc.bin` — HuC media firmware
## Step 3: Update GRUB and Reboot
```bash
update-grub
reboot
```
GRUB should automatically pick up the new kernel as the default entry. If not, select
`6.19.0-061900-generic` from the GRUB menu at boot.
## Step 4: Verify
After reboot, confirm everything is working:
```bash
# Kernel version
uname -r
# Expected: 6.19.0-061900-generic
# Driver binding
lspci -nnk -d 8086:e212
# Expected: "Kernel driver in use: xe" on each GPU
# Render nodes
ls /dev/dri/
# Expected: card1, card2, renderD128, renderD129 (card0 is typically the virtual VGA)
```
Successful output looks like:
```
00:10.0 VGA compatible controller [0300]: Intel Corporation Battlemage G21 [Intel Graphics] [8086:e212]
Subsystem: Intel Corporation Battlemage G21 [Intel Graphics] [8086:1114]
Kernel driver in use: xe
Kernel modules: xe
```
## Troubleshooting
### PCODE timeout (error -110)
You're on a kernel older than 6.17, or the GPUs are passed through as VFs without
proper xe VF support. Upgrade the kernel.
### Missing firmware
Check `dmesg | grep -i firmware` for errors. Ensure `/lib/firmware/xe/bmg_guc_70.bin`
and `/lib/firmware/xe/bmg_huc.bin` exist.
### No render nodes (`/dev/dri/renderD*`)
Check `dmesg | grep -i xe` for probe errors. If the driver loaded but no render nodes
appeared, try `modprobe -r xe && modprobe xe`.
### OOM on probe (error -12)
The xe driver needs sufficient system memory to map GPU BARs. Ensure the system has
enough free RAM (each B50 maps a 2GB BAR).
## References
- [Level1Techs: Proxmox 9.0 + Intel B50 SR-IOV Guide](https://forum.level1techs.com/t/proxmox-9-0-intel-b50-sr-iov-finally-its-almost-here-early-adopters-guide/238107?page=5)
- [Ubuntu Mainline Kernel PPA](https://kernel.ubuntu.com/~kernel-ppa/mainline/)
- [Linux upstream firmware repository](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment