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: Jan 28, 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.y
kernel tree with my GPU-enablement patch (or just check out my branch directly). - 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) - Recompile the kernel following Raspberry Pi's instructions
- Install the Intel Xe firmware (see instruction below)
- Modify
/boot/firmware/config.txt
:
1. Comment out thedtoverlay=vc4-kms-v3d
line
2. (Optional) Add the linedtparam=pciex1_gen=3
to the end - Reboot the Pi with the card attached using an appropriate PCIe riser and external ATX power supply.
Install Firmware
# Xe firmware
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=0xe
to/boot/firmware/cmdline.txt
- Currently, I had to compile a newer version of Mesa to get the labwc desktop environment to load
- With the newer Mesa (24.3.2), I am seeing many screen glitches / artifacts, but at least I can sorta use the system.
For the source and more details of the patch in progress, see: