Steam Link Appliance using a Raspberry Pi 4

- Hariharan

I am currently in the process of upgrading my home lab and home network. I thought this would be a good opportunity to have a Steam Link setup to play games on the TV. I have been a PC gamer for a long time and wanted to get a feel for couch gaming before considering getting any consoles.

Steam Link allows you to stream games on your local network. The technology is very similar to cloud game streaming but in a self-hosted form.

Raspberry Pi Setup

Steam Link is officially available for the Raspberry Pi OS.

sudo apt install steamlink

Increase the GPU memory to 256 MB using raspi-config and run steamlink. This would download additional dependencies. Steam Link seems to only fully support Buster. On Bullseye, you get this error.

Steam Link Error

This can be solved by launching Steam Link from the console. (Ctrl + Alt + F2 and run steamlink). This is good news but not the most efficient way.

I created a systemd service to launch Steam Link. Create a file /etc/systemd/system/steamlink.service.

Description=Steam Link Service


sudo systemctl daemon-reload
sudo systemctl enable steamlink.service

Directly launching the Steam Link binary from systemd doesn’t work because it doesn’t set the XDG_RUNTIME_DIR.

XDG_RUNTIME_DIR=/run/user/$(id -u) steamlink

Optionally, you can change the display driver for better H.264 decoding performance1. Edit /boot/config.txt and replace dtoverlay=vc4-kms-v3d with dtoverlay=vc4-fkms-v3d. This might affect other software that depends on the new driver.

Windows KVM Setup

I play games on a Windows KVM with GPU passthrough. I created a new Windows 11 KVM to act as the game streaming server. I installed Steam and enabled auto login. For auto login, open netplwiz using Run and un-check Users must enter a user name and password to use this computer.

Windows 11 Auto Login

If that option is not visible, it can be enabled by setting the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device to 0.

I also set Steam to launch in big-picture mode on startup. Now whenever I want to play a game on the TV, I just have to start the VM and RPi. The VM takes only a few seconds to boot into Steam.

  1. ↩︎