Intel Arc GPU with Fedora
Why This Matters
As an enthusiast of the ramalama project, I needed to use a GPU to run models locally. Ramalama leverages GPU acceleration for better response times while processing answers.
Most of my teammates are using Apple MacBooks or Mac mini systems with M2 or newer chips. However, macOS is not Linux.
Recently I refreshed my Lenovo laptop, which contains a Meteor Lake (14th Gen) GPU. My Fedora system uses the Wayland protocol; I am not using X11 anymore.
However, my GNOME graphical sessions started to freeze, and the only way to recover was by rebooting.
This blog post explains how to fix screen freezes on Fedora systems running the Wayland graphical compositor.
Intel Arc GPU: Migrating from i915 to xe Driver with Fedora
I started a chat with Google Gemini and found that Intel released the xe driver.
Comparison of the i915 and xe Drivers
Hardware Support
| Feature | i915 Driver | xe Driver |
|---|---|---|
| Meteor Lake Support | Legacy/Limited | Native/Full |
| Arc GPU Support | Not Supported | Full Support |
| Integrated GPUs | Up to 12th Gen | 12th Gen+ |
Performance & Efficiency
| Feature | i915 Driver | xe Driver |
|---|---|---|
| Graphics Performance | Good | Better |
| Compute Performance | Good | Optimized for AI/ML |
| Power Efficiency | Good | Improved |
Compute & AI
| Feature | i915 Driver | xe Driver |
|---|---|---|
| Level Zero Support | Yes | Optimized |
| OpenCL Support | Yes | Yes |
| AI/ML Workloads | Good | Better (LLMs, AI inferencing) |
| oneAPI Integration | Supported | Enhanced |
Development Status
| Feature | i915 Driver | xe Driver |
|---|---|---|
| Active Development | Maintenance mode | Active development |
| Kernel Status | Stable (upstream) | Mainline since 6.8 |
| Feature Updates | Bug fixes only | Regular feature additions |
For LLM workloads with Podman: xe driver provides better compute performance and power management.
Prerequisites
-
Check Your Kernel Version
uname -rRequired: Kernel 6.8+ (you have 6.18.8 ✅)
-
Verify xe Driver Availability
modinfo xeShould show:
description: Intel Xe2 Graphics✅ -
Check Current Driver
readlink /sys/class/drm/card*/device/driverShould show:
i915(current state) -
Backup Current Configuration (GRUB will be modified)
sudo cp /etc/default/grub /etc/default/grub.backup.$(date +%Y%m%d) -
Install Intel oneAPI (Optional but recommended for GPU compute workloads)
Add Intel’s oneAPI repository:
sudo tee /etc/yum.repos.d/oneAPI.repo << EOF [oneAPI] name=Intel® oneAPI repository baseurl=https://yum.repos.intel.com/oneapi enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB EOFUpdate and install the base kit:
sudo dnf install intel-basekitWarning: This is several GBs in size.
Migration Steps
-
Remove Conflicting i915 Configuration
Your current GRUB configuration has an incorrect blacklist. Edit GRUB:
sudo nano /etc/default/grubFind this line:
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-0bcd3d51-a5eb-4770-b826-5d4db4d8823d rhgb quiet intel_idle.max_cstate=4 module_blacklist=i915 i915.force_probe=!7d55 i915.enable_psr=0 i915.enable_fbc=0"Replace with:
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-0bcd3d51-a5eb-4770-b826-5d4db4d8823d rhgb quiet intel_idle.max_cstate=4 i915.force_probe=!* xe.force_probe=7d55"Explanation:
i915.force_probe=!*- Tells i915 to skip all devicesxe.force_probe=7d55- Tells xe to claim device 7d55 (your GPU)
-
Create Module Blacklist (Alternative Method)
Create a blacklist file to ensure i915 doesn’t load:
sudo tee /etc/modprobe.d/blacklist-i915.conf <<EOF # Blacklist i915 in favor of xe driver blacklist i915 EOF -
Ensure xe Module Loads
sudo tee /etc/modules-load.d/xe.conf <<EOF # Load xe driver at boot xe EOF -
Update GRUB Configuration
# For UEFI systems (most modern systems) sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg # If that fails, try BIOS method: # sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
Rebuild initramfs
sudo dracut --forceThis ensures the correct driver is loaded during early boot.
-
Reboot
sudo reboot
Verification
After reboot, verify the xe driver is active:
-
Check Active Driver
readlink /sys/class/drm/card*/device/driverExpected:
../../../bus/pci/drivers/xe -
Verify xe Module is Loaded
lsmod | grep -E "^xe"Expected: Shows xe module with usage count > 0
-
Verify i915 is NOT Loaded
lsmod | grep -E "^i915"Expected: No output
-
Check dmesg for xe Driver
dmesg | grep -i "xe.*7d55"Expected: Should show xe claiming your GPU
-
Check OpenCL/Level Zero Detection
source /opt/intel/oneapi/setvars.sh --force sycl-lsExpected: Shows Intel Arc Graphics via Level Zero
-
Verify DRI Devices
ls -la /dev/dri/Expected:
renderD128andcard*devices present -
Verify Wayland Compatibility (Optional)
# Check display server echo $XDG_SESSION_TYPE # Verify DRM/KMS is working cat /sys/class/drm/card*/statusExpected: Wayland session with connected displays showing “connected”