Skip to content

Add Intel Arc B580 #695

Open
Open
@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: 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

  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 the Intel Xe firmware (see instruction below)
  5. 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
  6. 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, add drm.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:

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions