Jump to content

Services/ArcB580Driver

From Stronghold Wiki

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. 1. Remove the xe options file

sudo rm /etc/modprobe.d/xe-options.conf

  1. 2. Remove the two lines added to blacklist.conf
  2. (the blank line, comment, and blacklist entry at the bottom)

sudo nano /etc/modprobe.d/blacklist.conf

  1. Delete the last 3 lines:
  2. (blank line)
  3. # Intel Arc B580 - mtd_intel_dg has a confirmed kernel UBSAN bug (array out-of-bounds)
  4. blacklist mtd_intel_dg
  1. 3. Rebuild initramfs

sudo update-initramfs -u

  1. 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

  1. Power off, swap GPU physically
  2. 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
  ```
  1. The radeon or amdgpu driver 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.bin version 70.60.0
  • HuC firmware: xe/bmg_huc.bin version 8.2.10
  • DMC firmware: i915/bmg_dmc.bin version 2.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.