Skip to content

Test Intel Arc B580 12GB #695

@geerlingguy

Description

@geerlingguy

It's all the rage: Intel's new Arc B580 is a 12 GB VRAM mid-range graphics card which uses the Xe open source drivers (see related: #510 for A750).

689241_786632_05_front_zoom

It'd be great if this would work on the Pi 5 / CM5. So far some people have had limited success getting Xe drivers running on Ampere workstations as well, with first-gen Arc cards like the A750...

Current Status and setup instructions

Last updated: September 26, 2025

It looks like at least some of the Arc cards are functional if you compile the 6.12 kernel (the next LTS release, which is coming to the Pi soon), and apply one or two small changes.

Current steps to get this card working with Pi OS Bookworm

  1. Clone the Raspberry Pi Linux kernel patching the next Raspberry Pi 6.12.y kernel tree with my GPU-enablement patch (or just check out my branch directly).
  2. Before compiling the kernel (in the next step), run make menuconfig and select the options:
    1. Kernel Features > Page Size > 4 KB (for Box86 and general driver compatibility)
    2. Device Drivers > Graphics support > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) > Intel Xe Graphics
    3. Device Drivers > Graphics support > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) > Intel Xe Graphics > Force probe xe for selected Intel hardware IDs > * (enter * manually for the value)
  3. Recompile the kernel following Raspberry Pi's instructions
  4. Install Intel misc firmware: firmware-misc-nonfree
  5. Install the Intel Xe firmware specifically for this card (see instruction below)
  6. Compile a newer version of Mesa to get the labwc desktop environment to load
  7. Modify /boot/firmware/config.txt: 1. Comment out the dtoverlay=vc4-kms-v3d line
    2. (Optional) Add the line dtparam=pciex1_gen=3 to the end
  8. Reboot the Pi with the card attached using an appropriate PCIe riser and external ATX power supply.

Install Firmware

sudo mkdir -p /usr/lib/firmware/i915 && cd /usr/lib/firmware/i915 && \
sudo wget -o - -q https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/bmg_dmc.bin
sudo mkdir -p /usr/lib/firmware/xe && cd /usr/lib/firmware/xe && \
sudo wget -o - -q https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/xe/bmg_guc_70.bin & \
sudo wget -o - -q https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/xe/bmg_huc.bin & \
sudo wget -o - -q https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/xe/lnl_gsc_1.bin & \
sudo wget -o - -q https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/xe/lnl_guc_70.bin & \
sudo wget -o - -q https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/xe/lnl_huc.bin

Check if working

Confirm everything is working by plugging a monitor into the graphics card; then confirm the card's GPU is in use by running glxinfo -B (part of the mesa-utils package), for example:

$ sudo apt install -y mesa-utils
$ DISPLAY=:0 glxinfo -B
TODO...
...

(Prepend DISPLAY=:0 if running commands over SSH.)

Debugging / Troubleshooting

  • To get full debug output in dmesg, add drm.debug=0xe to /boot/firmware/cmdline.txt
  • Resizable BAR should work on the Pi, but currently something in the Xe driver or PCIe subsystem is unhappy when trying to resize to even 512MB from the default 256MB. You can force a small BAR by adding xe.vram_bar_size=256 into /boot/firmware/cmdline.txt
  • On older versions of Debian/Pi OS (e.g. <13/Trixie), you will need to compile a newer version of Mesa or install it from backports.

For the source and more details of the patch in progress, see:

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions