Is there an existing issue for this?
Current Behavior
GPUs cannot be enabled on Unraid. This was raised in a issue previously, but the thread seemed to be abandoned with no solution.
Expected Behavior
It should use the GPU...
Steps To Reproduce
Container boots but fails to get permission for the GPU and falls back to software rendering. The GPU(s) are detected (a 3080 on D128 and a Tesla P40 on D129), everything seems to go smoothly until
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
[Wayland] GPU renderer failed to initialize (Failed to allocate GBM buffer); rendering in software (Pixman).
I have tried every combination of docker configs I can think of with no luck.
- Passing /dev/dri
- Defining DINODE and DRI_NODE
- modeset is configured in the bootloader and a
cat /sys/module/nvidia_drm/parameters/modeset returns Y
- Adding NVIDIA_VISIBLE_DEVICES and NVIDIDA_DRIVER_CAPABILITIES (as many Unraid docker containers use)
- Running
nvidia-modprobe --modeset after reboot and before launching the container
Environment
- OS: Unraid 7.1.4
- How docker service was installed: Compose
- Nvidia Driver: 580.82.09
- GPU: RTX 3080 (Tesla P40 installed but not trying to use that)
CPU architecture
x86-64
Docker creation
services:
webstation:
image: lscr.io/linuxserver/webstation:latest
container_name: webstation
runtime: nvidia
gpus: all
environment:
- PUID=99
- PGID=100
- TZ=America/Los_Angeles # Change to your timezone
- DRINODE=/dev/dri/renderD128
- DRI_NODE=/dev/dri/renderD128
devices:
- /dev/dri:/dev/dri
- /dev/nvidia-modeset:/dev/nvidia-modeset
volumes:
- /mnt/user/appdata/webstation:/config # Replace with your local directory
- /mnt/user/Media/ROMs/roms:/romm-roms
- /mnt/user/Media/ROMs/BIOS:/bios
ports:
- 3000:3000
- 3001:3001
shm_size: "1gb"
restart: unless-stopped
Container logs
User UID: 99
User GID: 100
───────────────────────────────────────
[ls.io-init] Generating labwc rc.xml from template
[ls.io-init] Disabling auto-maximization
/usr/bin/nvidia-smi
**** adding /dev/dri/renderD129 to video group root with id 0 ****
**** permissions for /dev/dri/renderD128 are good ****
**** permissions for /dev/dri/card2 are good ****
**** permissions for /dev/dri/card1 are good ****
**** creating video group video970t with id 18 ****
**** adding /dev/dri/card0 to video group video970t with id 18 ****
by-path
card0
card1
card2
renderD128
renderD129
**** NVIDIA GPU detected ****
**** Setting up OpenCL ICD for NVIDIA ****
**** Setting up EGL vendor file for NVIDIA ****
**** Routing GLX to the NVIDIA library ****
[custom-init] No custom files found, skipping...
[svc-de] Wayland mode: Waiting for socket at /config/.XDG/wayland-1...
[ls.io-init] done.
19
20
[pixelflux] Render node 0 encodes H264, H265 on nvenc.
[pixelflux] Thread priority -15 refused and rtkit does not grant it; capture threads run at normal priority.
[Wayland] Renderer: GL on /dev/dri/renderD128.
pci id for fd 43: 10de:2206, driver (null)
pci id for fd 44: 10de:2206, driver (null)
pci id for fd 45: 10de:2206, driver (null)
pci id for fd 44: 10de:2206, driver (null)
pci id for fd 45: 10de:2206, driver (null)
pci id for fd 42: 10de:2206, driver (null)
pci id for fd 46: 10de:2206, driver (null)
pci id for fd 47: 10de:2206, driver (null)
pci id for fd 46: 10de:2206, driver (null)
pci id for fd 47: 10de:2206, driver (null)
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
[Wayland] GPU renderer failed to initialize (Failed to allocate GBM buffer); rendering in software (Pixman).
[Wayland] View 1 created over output 0: 1024x768 @ (0, 0).
[Wayland] Socket listening on: "wayland-1"
INFO:server:Wayland compositor socket: wayland-1
INFO:main:Selkies 2.0.0 starting: websockets transport, Wayland capture, encoder h264enc at 8-240 fps, sized by the client, audio on, gamepads on, access op
en.
INFO:server:Starting service: websockets
INFO:gamepad:4 virtual gamepads ready ('Microsoft X-Box 360 pad', sockets under /tmp); kernel uinput off.
INFO:input:Wayland clipboard: native compositor callback active (no polling).
Is there an existing issue for this?
Current Behavior
GPUs cannot be enabled on Unraid. This was raised in a issue previously, but the thread seemed to be abandoned with no solution.
Expected Behavior
It should use the GPU...
Steps To Reproduce
Container boots but fails to get permission for the GPU and falls back to software rendering. The GPU(s) are detected (a 3080 on D128 and a Tesla P40 on D129), everything seems to go smoothly until
I have tried every combination of docker configs I can think of with no luck.
cat /sys/module/nvidia_drm/parameters/modesetreturns Ynvidia-modprobe --modesetafter reboot and before launching the containerEnvironment
CPU architecture
x86-64
Docker creation
services: webstation: image: lscr.io/linuxserver/webstation:latest container_name: webstation runtime: nvidia gpus: all environment: - PUID=99 - PGID=100 - TZ=America/Los_Angeles # Change to your timezone - DRINODE=/dev/dri/renderD128 - DRI_NODE=/dev/dri/renderD128 devices: - /dev/dri:/dev/dri - /dev/nvidia-modeset:/dev/nvidia-modeset volumes: - /mnt/user/appdata/webstation:/config # Replace with your local directory - /mnt/user/Media/ROMs/roms:/romm-roms - /mnt/user/Media/ROMs/BIOS:/bios ports: - 3000:3000 - 3001:3001 shm_size: "1gb" restart: unless-stoppedContainer logs