Skip to content

Soulsuke/raspbian-steamlink-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raspbian-steamlink-docker

Apparently steamlink only runs on armhf, up to Raspbian Buster.
This is an attempt to make it work on modern aarm64 distros.

NOTE: I'm a docker newbie, and I know enough of it to be dangerous.

How to use this

First off, ensure your user can actually use docker (refer to your distro's documentation).

Then build the docker image on your device: docker build --no-cache --platform=linux/arm/v7 -t steamlink docker/

After all that, you can start anything steamlink via the bundled script start.bash.

What does start.bash do

This script can be run from any location, and takes care of a multitude of parameters that need to be set at each launch:

  • sets the correct arm platform
  • connects to the user's X11 session
  • connects the devices (input, video)
  • connects the user folders where to save data:
    • ~/.config/Valve Corporation
    • ~/.local/share/SteamLink
    • ~/.local/share/Valve Corporation
  • connects the pulseaudio socket

You can use the --shell flag if you want/need to open up a shell whithin the container.

Acknowledgements

The pulseaudio config for docker has been taken from here:
https://github.com/TheBiggerGuy/docker-pulseaudio-example/tree/master

What works

Although this isn't in a working condition yet, some things do work:

  • steamlink correctly starts up
  • steamlink can pair with a Steam client on the network
  • steam controller is detected
  • all relevant data folders are correctly mounted as volumes, so persistency works

...And what does not

However, certain crucial features still don't work:

  • audio (alsa can't find the sound card)
  • streaming:
    INFO: Connected to Remote Client service with session 8954947237924478593
    INFO: Starting Streaming
    INFO: Received authorization proof request, responding with encrypted challenge
    INFO: Received start streaming response k_ERemoteDeviceStreamingSuccess
    Bad thread localDetected USB device 0x0e8f 0x2517, 0x0e8f 0x2517 at address 111
    Couldn't find av_rpi_zc_frame_geometry in libavcodec.so.58, some functionality not available
    Couldn't find av_rpi_zc_length in libavcodec.so.58, some functionality not available
    Couldn't find av_rpi_zc_numbytes in libavcodec.so.58, some functionality not available
    Couldn't find av_rpi_zc_offset in libavcodec.so.58, some functionality not available
    Couldn't find av_rpi_zc_ref in libavcodec.so.58, some functionality not available
    Couldn't find av_rpi_zc_unref in libavcodec.so.58, some functionality not available
    Couldn't find av_rpi_zc_vc_handle in libavcodec.so.58, some functionality not available
    INFO: Initializing player
    INFO: Desktop mode: 1360x768
    INFO: Refresh rate: 60.00
    INFO: Effective rate: 59.75
    INFO: Video rect: 0x0 at 0,0
    INFO: Texture rect: 1360x768 at 0,0
    INFO: Video size: 1360x768, output size: 1360x768, overlay size: 1360x768
    INFO: Video rect: 1360x768 at 0,0
    INFO: Texture rect: 1360x768 at 0,0
    INFO: Video rect: 1360x768 at 0,0
    INFO: Texture rect: 1360x768 at 0,0
    INFO: Hardware: Unknown
    /home/steamlink/.local/share/SteamLink/steamlink.sh: line 186:   115 Segmentation fault      (core dumped) "streaming_client" "--settings" "/home/steamlink/.local/share/Valve Corporation/SteamLink/streaming_settings.bin" "--stats" "/home/steamlink/.local/share/Valve Corporation/SteamLink/streaming_stats.bin" "--sdr_config" "/home/steamlink/.local/share/Valve Corporation/SteamLink/sdr_config.txt" "--burst" "90000" "--captureres" "1920x1080" "--performance-icons" "--transport" "k_EStreamTransportUDP" "--steamid" "76561197997810608" "--server" "192.168.1.13:27031" "ed718f44f4d5884e7087a7a20b3503e9"
    

Docker notes

Add user to docker group, so it can actually start stuff.

Build the image: docker build --no-cache --platform=linux/arm/v7 -t steamlink docker/

List images: docker image ls

Delete built image: docker image rm -f steamlink

About

A way to run steamlink on newer distros.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published