RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    SteamLink for Raspberry Pi Released

    Scheduled Pinned Locked Moved General Discussion and Gaming
    steamstreamingmoonlightsteamlink
    75 Posts 23 Posters 30.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      psyke83 Global Moderator
      last edited by psyke83

      The required changes have been merged, so it should be safe to test the module as long as your RP script is updated. Just keep in mind that you may need to disable overscan_scale in /boot/config.txt if you experience a black screen on startup.

      I've also exposed the streaming_args.txt configuration to configs/ports/steamlink so that advanced tweaks are a bit easier to test. I need to set --framerate 60 in this file or else I get heavy tearing in 2D games (not related to vsync, which the client seems to have enabled).

      @hhromic said in SteamLink for Raspberry Pi Released:

      On my Pi3B+ (plus), Steam Link seems to be running quite smoothly. I also have a 1360x768 TV but I output at 720p to take advantage of game mode (only works on CEA resolutions). Are you using ethernet or wifi to your gaming computer? The non-plus Pi3B has a very weak Wifi module and at 2.4ghz I don't think its suitable for game streaming. A realistic minimum is 5Ghz AC wireless IMHO. Moonlight also performs poorly with 2.4ghz Wifi.

      Speaking of which, I do notice more random stutters using Steam Link compared to Moonlight, so I guess Steam Link still has some way to go to catch up. Also I don't like the packaging they chose for Steam Link. I understand is meant for novice users but their scripts are a bit cringy xD

      My host PC and Pi are both connected via Ethernet; the streaming statistics showed 0 packet loss and low ping, so I think it was an issue with the decoder not keeping up due to excessive bitrate.

      However, from some quick tests today I didn't notice those spikes (which were accompanied by audio underruns). Perhaps they improved something in the 1.03 -> 1.05 bump, but it's still not perfect, as I can notice stutter especially in a 2D game like Sonic Mania.

      I also tested over wireless and yes, latency was terrible. I've only got a Pi3B, so it's limited to my 2.4Ghz wireless network (in a fairly congested area).

      L P 2 Replies Last reply Reply Quote 2
      • LineOf7sL
        LineOf7s
        last edited by

        So far it seems to work great, but using a standard wired Xbox 360 controller (userspace driver, apparently) the default mapping is... odd. Like, the left and right triggers are Select (aka Back) and Start respectively (among other things).

        Remapping the controller in Steam Link seems to complete successfully, but Testing Controller immediately after shows that it doesn't "take".

        Doing some research now to see if I can find a config file somewhere I need to tweak, but I thought I'd provide the data point in the meantime.

        LineOf7sL 1 Reply Last reply Reply Quote 1
        • L
          LeSabotageur @psyke83
          last edited by LeSabotageur

          @psyke83 said in SteamLink for Raspberry Pi Released:

          The required changes have been merged, so it should be safe to test the module as long as your RP script is updated. Just keep in mind that you may need to disable overscan_scale in /boot/config.txt if you experience a black screen on startup.

          Thanks, I should've paid more attention earlier, that was my problem. Now the interface loads nicely !

          EDIT : Bit of feedback : I'm using VirtualHere for my input, and while on moonlight everything goes quite smoothly, with the Steam Link the input lag is a bit more noticeable. However, Helldivers, which didn't work in Big Picture in moonlight, does work here, and I'm guessing that's the case for other games like those.
          So all in all, I'll be sticking to moonlight for now but I'll keep an eye on the progress for this port.

          1 Reply Last reply Reply Quote 1
          • S
            StarshipKnight
            last edited by

            I am also trying it but I am struggling because my ipega 9055 controller doesn't get detected. Any suggestions??

            1 Reply Last reply Reply Quote 0
            • thezoofT
              thezoof
              last edited by

              Hey all. I was able to add steamlink as instructed via experimental package. I updated the overscan as instructed but I am still getting a black screen.

              I notice that in the runcommand.log I am seeing this:

              Executing: /usr/bin/steamlink
              Steam needs to install these additional packages:
              libgudev-1.0-0:armhf, libinput10:armhf, libmtdev1:armhf, libwacom2:armhf, libxcb-xkb1:armhf, libxkbcommon-x11-0:armhf
              ..Package libgudev-1.0-0:armhf needs to be installed
              Package libinput10:armhf needs to be installed
              Package libmtdev1:armhf needs to be installed
              Package libwacom2:armhf needs to be installed
              Package libxcb-xkb1:armhf needs to be installed
              Package libxkbcommon-x11-0:armhf needs to be installed
              This application failed to start because it could not find or load the Qt platform plugin "eglfs"
              in "".

              Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

              Reinstalling the application may fix this problem.

              Any ideas how to proceed?

              1 Reply Last reply Reply Quote 0
              • thezoofT
                thezoof
                last edited by

                I was able to get it to work. It seems that it was actually prompting me to install them on first load but my screen wasn't showing them. Once I monitored the log at the same time I could click y - enter and then enter again to complete the process.

                1 Reply Last reply Reply Quote 0
                • C
                  CoreyPL
                  last edited by

                  Hey.
                  Version on steam forums was updated to 1.07. New build is supposed to help with blackscreen problems. There was also a suggestion from a package creator that earlier version users should change the GPU choice on Steam application. When having both Intel iGPU and NVIDIA GPU on your PC, steam app does weird things on encoding side when all GPUs are active in options. Suggestion was to set only NVIDIA GPU in the streaming advanced host options.

                  1 Reply Last reply Reply Quote 1
                  • P
                    psyke83 Global Moderator
                    last edited by psyke83

                    Thanks for the report, folks. I've updated the script for 1.0.7

                    @thezoof said in SteamLink for Raspberry Pi Released:

                    Hey all. I was able to add steamlink as instructed via experimental package. I updated the overscan as instructed but I am still getting a black screen.

                    I notice that in the runcommand.log I am seeing this:

                    Executing: /usr/bin/steamlink
                    Steam needs to install these additional packages:
                    libgudev-1.0-0:armhf, libinput10:armhf, libmtdev1:armhf, libwacom2:armhf, libxcb-xkb1:armhf, libxkbcommon-x11-0:armhf
                    ..Package libgudev-1.0-0:armhf needs to be installed
                    Package libinput10:armhf needs to be installed
                    Package libmtdev1:armhf needs to be installed
                    Package libwacom2:armhf needs to be installed
                    Package libxcb-xkb1:armhf needs to be installed
                    Package libxkbcommon-x11-0:armhf needs to be installed
                    This application failed to start because it could not find or load the Qt platform plugin "eglfs"
                    in "".

                    Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

                    Reinstalling the application may fix this problem.

                    Any ideas how to proceed?

                    I've added those missing dependencies to our script to avoid this issue. I can't guarantee that new dependencies won't be added in future versions, however.

                    1 Reply Last reply Reply Quote 2
                    • thezoofT
                      thezoof
                      last edited by

                      That is great work.

                      Another question - I like having background music on my emulation station. When I use steamlink - the music remains on. Is there a setting or something I can do to turn it off only when I load steamlink?

                      Thanks.

                      P mituM 2 Replies Last reply Reply Quote 0
                      • P
                        psyke83 Global Moderator @thezoof
                        last edited by

                        @thezoof said in SteamLink for Raspberry Pi Released:

                        That is great work.

                        Another question - I like having background music on my emulation station. When I use steamlink - the music remains on. Is there a setting or something I can do to turn it off only when I load steamlink?

                        Thanks.

                        I'll take a look when I have some free time. Does this happen when launching other ports?

                        1 Reply Last reply Reply Quote 1
                        • mituM
                          mitu Global Moderator @thezoof
                          last edited by

                          @thezoof That's up to the BGM script you're using, most likely you'll have to add the steamlink executable to the list of 'emulators' it understands, so it will fade/stop the music after starting steamlink.

                          thezoofT 1 Reply Last reply Reply Quote 1
                          • H
                            hhromic
                            last edited by

                            Looks like the Foundation added SteamLink to Raspbian officially now:
                            https://archive.raspberrypi.org/debian/pool/main/s/steamlink/

                            You don't need to manually download and install the deb anymore, just do apt-get install steamlink after updating the APT cache.

                            @psyke83 maybe the scriptmodule can be simplified with this now :)

                            P 1 Reply Last reply Reply Quote 1
                            • LineOf7sL
                              LineOf7s @LineOf7s
                              last edited by

                              @LineOf7s said in SteamLink for Raspberry Pi Released:

                              So far it seems to work great, but using a standard wired Xbox 360 controller (userspace driver, apparently) the default mapping is... odd. Like, the left and right triggers are Select (aka Back) and Start respectively (among other things).

                              Remapping the controller in Steam Link seems to complete successfully, but Testing Controller immediately after shows that it doesn't "take".

                              Doing some research now to see if I can find a config file somewhere I need to tweak, but I thought I'd provide the data point in the meantime.

                              For those playing along at home, I uninstalled the xboxdrv and xpad drivers (which I don't seem to need when using wired Xbox 360 controllers) and my Steamlink mapping issues went away. I tried updating to 1.07 first but that didn't make a difference.

                              1 Reply Last reply Reply Quote 0
                              • P
                                psyke83 Global Moderator @hhromic
                                last edited by

                                @hhromic said in SteamLink for Raspberry Pi Released:

                                Looks like the Foundation added SteamLink to Raspbian officially now:
                                https://archive.raspberrypi.org/debian/pool/main/s/steamlink/

                                You don't need to manually download and install the deb anymore, just do apt-get install steamlink after updating the APT cache.

                                @psyke83 maybe the scriptmodule can be simplified with this now :)

                                Thanks. I'll hold off on updating the module at least until the next version bump (in case there's other reports or missing dependencies with future builds that also need to be addressed).

                                The .ignore_overscan override is gone, but there's now an .ignore_kms in its place. Not much significance for end-users, but it's interesting to see if Valve intends to have KMS compatibility at some point in the future.

                                1 Reply Last reply Reply Quote 1
                                • thezoofT
                                  thezoof @mitu
                                  last edited by thezoof

                                  @mitu said in SteamLink for Raspberry Pi Released:

                                  BGM script

                                  @psyke83

                                  It seems I was wrong. Modifying the music.py didn't do anything - it was a false positive.

                                  I added "steamlink" and "SteamLink", loaded the script again via turning off and turning on background music - no change after reboot.

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    psyke83 Global Moderator @thezoof
                                    last edited by psyke83

                                    @thezoof said in SteamLink for Raspberry Pi Released:

                                    @psyke83

                                    It seems I was wrong. Modifying the music.py didn't do anything - it was a false positive.

                                    I added "steamlink" and "SteamLink", loaded the script again via turning off and turning on background music - no change after reboot.

                                    I've never used the bgm script, so I'm not too familiar with it - but steamlink may not be correct, as it's actually a shell script. When you launch steamlink:

                                    ps aux | grep steamlink
                                    pi       10081  0.4  0.3   4640  2644 pts/1    S+   19:28   0:00 /bin/bash /home/pi/.local/share/SteamLink/steamlink.sh
                                    

                                    Depending on how it whitelists processes, it may be necessary to specify the .sh extension or the full path. Additionally, once you start streaming, the script will launch a binary named streaming_client, so you may need to add that as well.

                                    thezoofT 1 Reply Last reply Reply Quote 1
                                    • W
                                      WonderBoy
                                      last edited by

                                      I set up Steam Link a couple of days ago and it worked great. I really am impressed with how quickly it was added to RetroPie.

                                      Today though, I can't use it, as I get thrown straight back to EmulationStation when I try to connect to my remote Steam computer. I did seem to download a Steam Link update when launched, which may be what has broken it. This is what's in /dev/shm/runcommand.log

                                      Parameters: 
                                      Executing: /usr/bin/steamlink
                                      Unable to query physical screen size, defaulting to 100 dpi.
                                      To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
                                      Steam Link UI coordinate scale = 0.8
                                      Added controller with mapping 060000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,
                                      libpng warning: iCCP: known incorrect sRGB profile
                                      libpng warning: iCCP: known incorrect sRGB profile
                                      libpng warning: iCCP: known incorrect sRGB profile
                                      libpng warning: iCCP: known incorrect sRGB profile
                                      

                                      Anyone else seeing this?

                                      1 Reply Last reply Reply Quote 0
                                      • jasonwJ
                                        jasonw
                                        last edited by

                                        So I agree that xbox 360 controller definitely does not work correctly, that needs to be fixed. Also one other thing I noticed is I wasn't able to enable 5.1 surround sound. When I did, no sound came out (Stereo works fine). Thoughts?

                                        1 Reply Last reply Reply Quote 0
                                        • SwampyS
                                          Swampy
                                          last edited by

                                          Hello @jasonw,

                                          what is your host operating system?
                                          My is a Ubuntu 18.04 and I had the same problem with my xbox 360 controller(wired).
                                          I fixed it with installing steam-devices on host:

                                          sudo apt install steam-devices
                                          

                                          Linux is like wigwam: no Gates, no Windows and Apache inside.

                                          jasonwJ 1 Reply Last reply Reply Quote 0
                                          • jasonwJ
                                            jasonw @Swampy
                                            last edited by

                                            @Swampy I’m running retropie 4.4.4 on a 3B+. I’ll give your suggestion a try this weekend, thanks!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.