Intel Arc B50 VF XE driver on TrueNAS 25.10

First of all, please note that — as stated in the upstream i915-sriov-dkms repository — this driver is highly experimental, and you should use it at your own risk.


PS:
Although the title says “VF driver” and I’ve only tested that part,
it should also be capable of directly driving the full B50 GPU with SR-IOV on TrueNAS—and even other Battlemage cards using XE driver like the B580.
If you’ve tested it on other cards, please share your results in the comments below.


The setup itself is quite straightforward. Following just a few steps from the upstream i915-sriov-dkms README, everything can be done easily.

However, since the official kernel hasn’t yet included 6.17 support, I built and extracted the modules to avoid running install-dev-tools after every update and to quickly restore all services. I’ve uploaded them to GitHub, along with some additional details.

So, only a few steps remain:

# Download the kernel .ko files
KOVERSION=20251010
mkdir ./kofiles

wget -O ./kofiles/xe.ko \
  https://github.com/ChanningHe/truenas-intel-gpu-dkms-ko/raw/refs/heads/main/kofiles-${KOVERSION}/xe.ko
wget -O ./kofiles/intel_sriov_compat.ko \
  https://github.com/ChanningHe/truenas-intel-gpu-dkms-ko/raw/refs/heads/main/kofiles-${KOVERSION}/intel_sriov_compat.ko

# Disable readonly
zfs set readonly=off "$(zfs list -H -o name /usr)"

# Copy the .ko files
mkdir -p /lib/modules/$(uname -r)/updates/dkms/
cp ./kofiles/*.ko /lib/modules/$(uname -r)/updates/dkms/

# Update module dependencies
depmod -a

Make sure your .ko files are under /lib/modules/$(uname -r)/updates/dkms/

root@truenas[~]# modinfo xe | grep -i filename
filename:       /lib/modules/6.12.33-production+truenas/updates/dkms/xe.ko

Reboot!
And if /dev/dri/renderD128 appears, it means the driver has been successfully initialized.

root@truenas[~]# ls /dev/dri 
by-path  card0  card1  renderD128

In my case, the kernel shows some error messages, but Jellyfin still works great!

Can you share the system specifications and if you have ReBAR support? I’m assuming “yes” because libva didn’t segfault when you asked it to transcode video.

Yep

This is also documented in Jellyfin’s docs:

“Resizable-BAR is only mandatory for hardware acceleration on ARC B-series cards, or the media driver will crash the transcoder.”

Intel GPU | Jellyfin

I’ve confirmed this behavior on multiple platforms myself. With ReBAR disabled, transcoding is unreliable or outright broken; once ReBAR is enabled, hardware transcoding works normally and consistently.

For systems where the BIOS doesn’t expose a ReBAR option, this project is very helpful:

You can inject ReBAR support via a UEFI module quite easily. I’ve used this method on platforms that don’t natively support ReBAR, and after enabling it, Battlemage cards work fine for transcoding as well.

2 Likes

Is this still needed on TrueNAS 25.01 because when I run ls /dev/dri I get the expected result of when the driver installed?

rolling up this thread again - actually I am looking out for the B65/B70 series of intel arc pro.

trying to find kernel/driver support, not sure if the card is correctly operable in this setup:

Truenas scale on pyhsical HW –> Docker container –> Using GPU within docker container (mainly Immich, Plex & AI LLM)

The driver is in 26-BETA, if you want to try:

1 Like

amazing @etorix - thank you!

the b65 will be launched within next 1-2 weeks - so if the beta has this on the roadmap, I will buy the card :wink:

happy to share my testing, once everything received

Let’s qualify: The driver for Arc B is in 26-BETA. Whether it already supports future models is yet another matter.

2 Likes

Hi,

I have an Arc B50 and might be able to test what you are trying to run specifically.

So far my experiences have been mixed but hanging over all comment on Intel B series is that its cheap for what it is and its competitive to light a fire under NVIDIA.

I have so far tried Jellyfin, Immich, Ollama, and am trying Whisper currently.

Jellyfin has not worked well because for some reason OpenGL drivers don’t pass through nicely and only Vulkan works that means no Tone Mapping and I have had some errors with normal transcoding not working.

Immich does not seem to see the card at all in the container and ignores it (Naitive TrueNAS app)

Ollama works and it is more of a mixed bag, Some of this is because the easiest way to use Ollama with any Intel GPU is to use Vulkan but there is also a SCYL project in the making its a lot of work so I kind of ignored it. Vulkan implementation is still in Beta as with TrueNAS 26 so It is rough around the edges but it works.

Overall everything is in Beta still and will update you guys if anything changes.

1 Like