Hetzner - Using iGPU for Hardware Acceleration
Preface
A basic guide for enabling the internal GPU (iGPU) on Intel CPUs for Hetzner servers. Only tested on the machines with i7 CPUs.
This is loosely based off a reddit comment, with some changes to work with Ubuntu 18.04.
EDIT - December 21st, 2021: I've also followed my own guide for Debian 11, with an i7-8700k (on Hetzner). So it should work for Ubuntu 20.04 and Debian 10 as well. You might need to install some Intel drivers from apt (e.g. intel-media-va-driver), but I'm not entirely sure.
Grub
Remove hetzner's default grub config "nomodeset" which blocks loading of video card drivers. Open /etc/default/grub.d/hetzner.cfg, and comment out #GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
This file doesn't exist on Hetzner's Ubuntu 18.04 minimal image, so here are the correct steps.
-
sudo nano /etc/default/grub - Remove
nomodesetfromGRUB_CMDLINE_LINUX_DEFAULT- I don't recommend commenting the whole line out, since there might be other options supplied there. If there aren't, it should be safe to comment I guess.
-
sudo update-grubto update the bootloader.- Don't reboot yet.
Enabling drivers
Pretty much follow this as written:
Comment all line referencing i915 in this file.
sudo nano /etc/modprobe.d/blacklist-hetzner.conf
- Open
sudo nano /etc/modprobe.d/blacklist-hetzner.conf - Comment
blacklist i915andblacklist i915_bdwby adding a#in front:-
#blacklist i915 -
#blacklist i915_bdw
-
- Here's how my file looks like:
### Hetzner Online GmbH - installimage
### silence any onboard speaker
blacklist pcspkr
blacklist snd_pcsp
### i915 driver blacklisted due to various bugs
### especially in combination with nomodeset
#blacklist i915
#blacklist i915_bdw
### mei driver blacklisted due to serious bugs
blacklist mei
blacklist mei-me
blacklist sm750fb
Allowing Plex to use iGPU (non-Docker)
Add user emby (or plex) to the video group:
sudo usermod -a -G video emby
Doing it for Plex is practically the same.
-
sudo adduser plex videoorsudo usermod -aG video plex- You only need to use one of them.
Allowing Plex to use iGPU (Docker)
I recommend using LinuxServer's Docker image. Though with that said, I don't have any experience with it lol.
Docker Compose
With a docker-compose.yml file, add a devices: to your container config:
devices:
- "/dev/dri:/dev/dri"
Here's an example config file with devices specified:
---
version: "2"
services:
plex:
image: linuxserver/plex
container_name: plex
network_mode: host
devices:
- "/dev/dri:/dev/dri"
environment:
- PUID=1000
- PGID=1000
- VERSION=docker
volumes:
- ./config:/config
- /data/PlexMedia:/data/PlexMedia
restart: unless-stopped
docker run (not recommended)
If you're running your Docker image manually (why?) then add --device=/dev/dri:/dev/dri as documented on LinuxServer's GitHub
No comments to display
No comments to display