-
-
Notifications
You must be signed in to change notification settings - Fork 170
Description
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).
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
- Clone the Raspberry Pi Linux kernel patching the next Raspberry Pi
6.12.ykernel tree with my GPU-enablement patch (or just check out my branch directly). - Before compiling the kernel (in the next step), run
make menuconfigand 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) - Recompile the kernel following Raspberry Pi's instructions
- Install Intel misc firmware:
firmware-misc-nonfree - Install the Intel Xe firmware specifically for this card (see instruction below)
- Compile a newer version of Mesa to get the labwc desktop environment to load
- Modify
/boot/firmware/config.txt: 1. Comment out thedtoverlay=vc4-kms-v3dline
2. (Optional) Add the linedtparam=pciex1_gen=3to the end - 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, adddrm.debug=0xeto/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=256into/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:
