Mijn vraag
Ik heb een Windows 2025 server met docker geïnstalleerd en wil daarin een aantal containers draaien waarin ik de GPU (Embedded Intel UHD Graphics 730 van de CPU) kan gebruiken voor het transcoden van video's (o.a. Plex & Immich). Ik ben er al een tijdje zoet mee en dacht eerst dat het aan de Immich configuratie in de container lag, maar het probleem zit hem al aan de 'host' kant in WSL. Na een standaard installatie van WSL komt /dev/dri niet beschikbaar, hier heb ik inmiddels een fix voor gevonden maar alsnog geeft vainfo errors.
Relevante software en hardware die ik gebruik
Hardware:
Software: Windows 2025 server standard edition (met GUI)
Compose file: PUID/PGID = 1000 (draait voor de time being weer onder admin account)
vgem lijkt na modprobe wel correct geinitialiseerd.
Error waar ik nu ben gestopt is info uit wsl bash:
Wat ik al gevonden of geprobeerd heb
Er is blijkbaar iets aangepast in de standaard WSL distro en in de huidige versies werkt het allemaal niet meer standaard. Na een wsl --install is /dev/dri niet beschikbaar, wat is op te lossen door 'sudo modprobe vgem' te draaien. Daarna zijn is /dev/dri incl submappen beschikbaar en werkt bovenstaande compose file. Echter is de GPU niet daadwerkelijk beschikbaar en werkt transcoden dus ook niet. vainfo geeft bovenstaande foutmelding.
Ik heb veel Github posts doorgenomen, een kleine greep:
VA-API does not work in Ubuntu 24.04
WSL2 with /dev/dri passthrough to Docker container not working
No /dev/dri available on latest Kernel
Corrections to WSL2-Linux-Kernel /README.md
Containerizing GUI applications with WSLg
Het lijkt erop dat voor de meeste melders de modprobe vgem afdoende is, maar ook na het uitvoeren van onderstaande aanvullende stappen krijg ik alleen errors van vainfo en geen lijst met geladen modules.
Wat zie ik over het hoofd?
(En de ironie van het verhaal, ik heb eerder steeds vragen gehad waarom in godesnaam een windows server een geen Linux distro. Ik: Ik ben niet zo handig met Linux en heb geen zin om opgesloten te zitten in mijn eigen server... resultaat: Ik zit nu al 2 dagen in WSL en Linux containers te klooien om de boel aan de praat te krijgen. Kan straks direct door naar het installeren van een Linux servertje
)
Ik heb een Windows 2025 server met docker geïnstalleerd en wil daarin een aantal containers draaien waarin ik de GPU (Embedded Intel UHD Graphics 730 van de CPU) kan gebruiken voor het transcoden van video's (o.a. Plex & Immich). Ik ben er al een tijdje zoet mee en dacht eerst dat het aan de Immich configuratie in de container lag, maar het probleem zit hem al aan de 'host' kant in WSL. Na een standaard installatie van WSL komt /dev/dri niet beschikbaar, hier heb ik inmiddels een fix voor gevonden maar alsnog geeft vainfo errors.
Relevante software en hardware die ik gebruik
Hardware:
| # | Categorie | Product |
|---|---|---|
| 1 | Processors | Intel Core i3-13100 Boxed |
| 1 | Moederborden | ASUS PRIME B760M-K D4 |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| wsl --version WSL version: 2.6.1.0 Kernel version: 6.6.87.2-1 WSLg version: 1.0.66 MSRDC version: 1.2.6353 Direct3D version: 1.611.1-81528511 DXCore version: 10.0.26100.1-240331-1435.ge-release Windows version: 10.0.26100.6584 wsl -l -v NAME STATE VERSION * Ubuntu Running 2 docker-desktop Running 2 |
Compose file: PUID/PGID = 1000 (draait voor de time being weer onder admin account)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| plex:
container_name: plex
image: lscr.io/linuxserver/plex:latest
environment:
- HOSTNAME=DockerPlex
- PLEX_CLAIM=${PLEX_CLAIM}
- VERSION=docker
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
network_mode: bridge
#network_mode: host
ports:
- 32469:32469/tcp
- 32400:32400/tcp
- 8324:8324/udp
- 1900:1900/udp
- 32410:32410/udp
- 32412:32412/udp
- 32413:32413/udp
- 32414:32414/udp
devices:
- /dev/dri:/dev/dri
- /dev/dxg:/dev/dxg
- /dev/dri/card0:/dev/dri/card0
- /dev/dri/renderD128:/dev/dri/renderD128
volumes:
- ${ROOT}/Transcode:/transcode
- ${ROOT}:/media
- ${CONFIG}/Configs/Plex:/config
- /usr/lib/wsl:/usr/lib/wsl
privileged: true
restart: unless-stopped |
vgem lijkt na modprobe wel correct geinitialiseerd.
code:
1
2
3
4
5
6
7
8
9
10
11
| modinfo vgem filename: /lib/modules/6.6.87.2-microsoft-standard-WSL2/kernel/drivers/gpu/drm/vgem/vgem.ko license: GPL and additional rights description: Virtual GEM provider author: Intel Corporation author: Red Hat, Inc. depends: drm_shmem_helper retpoline: Y intree: Y name: vgem vermagic: 6.6.87.2-microsoft-standard-WSL2 SMP preempt mod_unload modversions |
Error waar ik nu ben gestopt is info uit wsl bash:
code:
1
2
3
4
5
6
7
8
| vainfo --display drm libva info: VA-API version 1.20.0 libva info: User environment variable requested driver 'd3d12' libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/d3d12_drv_video.so libva info: Found init function __vaDriverInit_1_20 libva error: /usr/lib/x86_64-linux-gnu/dri/d3d12_drv_video.so init failed libva info: va_openDriver() returns 2 vaInitialize failed with error code 2 (resource allocation failed),exit |
Wat ik al gevonden of geprobeerd heb
Er is blijkbaar iets aangepast in de standaard WSL distro en in de huidige versies werkt het allemaal niet meer standaard. Na een wsl --install is /dev/dri niet beschikbaar, wat is op te lossen door 'sudo modprobe vgem' te draaien. Daarna zijn is /dev/dri incl submappen beschikbaar en werkt bovenstaande compose file. Echter is de GPU niet daadwerkelijk beschikbaar en werkt transcoden dus ook niet. vainfo geeft bovenstaande foutmelding.
Ik heb veel Github posts doorgenomen, een kleine greep:
VA-API does not work in Ubuntu 24.04
WSL2 with /dev/dri passthrough to Docker container not working
No /dev/dri available on latest Kernel
Corrections to WSL2-Linux-Kernel /README.md
Containerizing GUI applications with WSLg
Het lijkt erop dat voor de meeste melders de modprobe vgem afdoende is, maar ook na het uitvoeren van onderstaande aanvullende stappen krijg ik alleen errors van vainfo en geen lijst met geladen modules.
code:
1
2
3
4
5
6
7
| RUN apt update && apt install -y \
vainfo \
mesa-va-drivers
ENV LIBVA_DRIVER_NAME=d3d12
ENV LD_LIBRARY_PATH=/usr/lib/wsl/lib
CMD vainfo --display drm --device /dev/dri/card0 |
Wat zie ik over het hoofd?
(En de ironie van het verhaal, ik heb eerder steeds vragen gehad waarom in godesnaam een windows server een geen Linux distro. Ik: Ik ben niet zo handig met Linux en heb geen zin om opgesloten te zitten in mijn eigen server... resultaat: Ik zit nu al 2 dagen in WSL en Linux containers te klooien om de boel aan de praat te krijgen. Kan straks direct door naar het installeren van een Linux servertje
[ Voor 4% gewijzigd door OrganicIron op 19-10-2025 17:17 ]