Services/ArcB580Driver
As of: 2026-07-05 — migrated from `services/ARC-B580-DRIVER.md`
Intel Arc B580 (Battlemage) — xe Driver Notes
Problem
The xe kernel driver for the Arc B580 crashes the system when the monitor is switched
off/on manually. Root cause: the driver uses aggressive display power-saving states (DC states)
that fail to wake properly on Battlemage, causing a cascade of GPU timeouts that brings
the system down.
Symptoms in logs:
xe 0000:0b:00.0: [drm] ERROR* Tile0: GT1: Force wake domain X failed to ack wake (-ETIMEDOUT)
xe 0000:0b:00.0: [drm] Tile0: GT1: trying reset from guc_exec_queue_timedout_job
xe 0000:0b:00.0: [drm] ERROR* PCODE Mailbox failed: 1 Illegal Command
- UBSAN: array-index-out-of-bounds in
mtd_intel_dg.c
Fix Applied (2026-05-03)
File 1: /etc/modprobe.d/xe-options.conf
<syntaxhighlight lang="text">
options xe enable_dc=0
</syntaxhighlight>
Disables aggressive display C-states so the driver doesn't enter a deep sleep it can't
wake from when the monitor is switched off.
File 2: /etc/modprobe.d/blacklist.conf (appended)
<syntaxhighlight lang="text">
blacklist mtd_intel_dg
</syntaxhighlight>
Blacklists the mtd_intel_dg module which has a confirmed kernel UBSAN bug on this GPU.
Both changes require initramfs rebuild + reboot to take effect.
How to Revert (if the fix breaks boot)
SSH in from another host, then:
<syntaxhighlight lang="bash">
- 1. Remove the xe options file
sudo rm /etc/modprobe.d/xe-options.conf
- 2. Remove the two lines added to blacklist.conf
- (the blank line, comment, and blacklist entry at the bottom)
sudo nano /etc/modprobe.d/blacklist.conf
- Delete the last 3 lines:
- (blank line)
- # Intel Arc B580 - mtd_intel_dg has a confirmed kernel UBSAN bug (array out-of-bounds)
- blacklist mtd_intel_dg
- 3. Rebuild initramfs
sudo update-initramfs -u
- 4. Reboot
sudo reboot </syntaxhighlight>
Or as a one-liner if you want to skip the editor:
<syntaxhighlight lang="bash"> sudo rm /etc/modprobe.d/xe-options.conf && \ sudo head -n -3 /etc/modprobe.d/blacklist.conf | sudo tee /etc/modprobe.d/blacklist.conf.tmp && \ sudo mv /etc/modprobe.d/blacklist.conf.tmp /etc/modprobe.d/blacklist.conf && \ sudo update-initramfs -u && \ sudo reboot </syntaxhighlight>
If you need to go back to the Radeon
- Power off, swap GPU physically
- SSH in (or boot to TTY) and blacklist xe so it doesn't try to load for a missing device:
```bash echo "blacklist xe" | sudo tee /etc/modprobe.d/blacklist-xe.conf sudo update-initramfs -u sudo reboot ```
- The
radeonoramdgpudriver will load automatically depending on which card.
Kernel / Firmware versions at time of fix
- Kernel:
6.18.1-061801-generic - GuC firmware:
xe/bmg_guc_70.binversion70.60.0 - HuC firmware:
xe/bmg_huc.binversion8.2.10 - DMC firmware:
i915/bmg_dmc.binversion2.6
If you upgrade the kernel and the crashes stop, the fix may no longer be needed — test by
removing xe-options.conf after a kernel upgrade to see if stability holds without it.