Posts by ToiletSalad

    Here is the current steamlink.sh. I see the newest official steamlink.sh uses uinput now but since libreelec has it compiled in everything is still good.


    External Content pastebin.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Wanted to play something on the tv again so decided to update this. The new steamlink is quite slick now. So anyway some updates to this.


    Grabbed the newest steamlink steamlink-rpi3-1.1.61.156.tar.gz and the newest raspbian 2020-02-13-raspbian-buster-full.img . Installed steamlink the usual way, no real change there. Here are the newest libs required (md5 76ad404d0165fa2a8d84e831b43de39a).


    And I added this change to my steamlink.sh script.


    Code
    # changed cleanup() to
            pulseaudio -k
            kill $CEC_PID 2>/dev/null
            screenblank -k
    
    # and added after line -- pulseaudio -D -n -F "$TOP/pulse_default.pa"
    echo 'starting cec'
    cec-client </dev/null | steamlink-cec &
    CEC_PID="$(jobs -p) $!"

    there are probably more changes I should make but this worked.


    For the handful of people that care, here are the changes to grab everything.


    Code
    mount -o loop,ro,offset=272629760 -t ext4 2020-02-13-raspbian-buster-full.img x
    # and
    for i in libpng16.so.16 libjpeg.so.62 libicui18n.so.63 libicuuc.so.63 libicudata.so.63 libX11-xcb.so.1 libX11.so.6 libXext.so.6 libxcb.so.1 libxkbcommon-x11.so.0 libXau.so.6 libXdmcp.so.6 libxcb-xkb.so.1 libbsd.so.0; do cp "$(find -name $i)" .. ; done

    and also for the people that want to install everything from within their rpi and don't run linux desktop/vm, here is a way to grab all the libs from the raspbian image without mounting it (as you can't from within libreelec). I got all the file positions from the img from a little script I wrote. so the results of that are (filename size position [size2 position2])

    you could just dd if=2020-02-13-raspbian-buster-full.img of=FILENAME bs=1 count=SIZE skip=POSITION . in the case of libicudata.so.63 just append the second dd.

    One other thing to mention, if your audio is fuzzy garbage do this

    Code
    cat /etc/pulse/default.pa | sed 's/^\(load-module module-udev-detect\|load-module module-detect\)/\1 tsched=0/' > /storage/steamlink/pulse_default.pa

    then make this change to steamlink.sh

    Code
    # change this
    pulseaudio -D
    # to this
    pulseaudio -D -n -F "$TOP/pulse_default.pa"

    this was tested with the newest version steamlink-rpi3-1.1.39.91.tar.gz

    Haven't fired this up in a while and decided to give it a try. Downloaded the newest steamlink-rpi3-1.1.38.90.tar.gz and installed it to a new directory. Also downloaded the newest raspbian 2019-07-10-raspbian-buster-full.img and grabbed the newest libs. For those that care here are the changes for extracting them

    Code
    mount -o loop,ro,offset=276824064 -t ext4 2019-07-10-raspbian-buster-full.img x
    #
    for i in libicui18n.so.63 libicuuc.so.63 libicudata.so.63 libpng16.so.16 libjpeg.so.62 libX11-xcb.so.1 libX11.so.6 libXext.so.6 libxcb.so.1 libxkbcommon-x11.so.0 libXau.so.6 libXdmcp.so.6 libxcb-xkb.so.1 libbsd.so.0; do cp "$(find -name $i)" .. ; done

    for everyone else here are the libs you can simply download and install libs.tar (link is only good for 14 days so someone else mirror it.) md5 is 40cf74d9c93e7e10844616e81fbca391.


    And steamlink.sh needs one trivial change to work again

    Code
    # add this
    export HOME="/storage"
    # above this
    export PATH="$TOP/bin:$PATH"

    and your all good.

    I'm not seeing how you "fixed" the script.

    I made a no-frills launcher so people don't have to ssh in to start steamlink. To install download these three files


    addon.py

    External Content pastebin.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    script.steamlink.service

    External Content pastebin.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    steamlink_monitor.sh

    External Content pastebin.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    then run this from the rpi

    Code
    cd /storage
    wget https://github.com/swetoast/steamlink-launcher/releases/download/0.0.4/plugin.program.steamlink-v.0.0.4a.zip
    # install in kodi, disable updating
    # copy addon.py script.steamlink.service steamlink_monitor.sh to /storage/steamlink/
    mv /storage/steamlink/addon.py /storage/.kodi/addons/plugin.program.steamlink/
    chmod +x /storage/steamlink/steamlink_monitor.sh
    ln -s /storage/steamlink/script.steamlink.service /storage/.config/system.d/
    systemctl enable script.steamlink.service
    # reboot and test

    Audio didn't work. I figured it was because I was testing with a linux host but it didn't work in windows either.


    To fix add this to your config.txt

    Code
    mount -o remount,rw /flash
    nano /flash/config.txt
    ### add this then reboot
    dtparam=audio=on

    Then use this new steamlink.sh that does the udev stuff automatically and loads pulseaudio before steamlink

    External Content pastebin.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    I wanted to try steamlink without reinstalling anything, so after about an hour of screwing around here is how I got it working.


    This only makes changes within /storage/steamlink , nothing else is touched. If you do not have at least a novice understanding of linux shell or don't fully understand the commands here DO NOT ATTEMPT.


    First thing we download the newest Steamlink and extract it (run on rpi)

    Code
    cd /storage
    wget "$(wget -q -O - http://media.steampowered.com/steamlink/rpi/public_build.txt)"
    tar -zxf steamlink-rpi3-1.1.28.72.tar.gz

    Next we need to download the missing libs that aren't included in this or libreelec itself. These commands might work within the rpi itself but I did them on my desktop.

    Code
    curl --header 'Host: director.downloads.raspberrypi.org' --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' --header 'Accept-Language: en-US,en;q=0.5' --header 'DNT: 1' --header 'Upgrade-Insecure-Requests: 1' 'http://director.downloads.raspberrypi.org/raspbian_full/images/raspbian_full-2018-11-15/2018-11-13-raspbian-stretch-full.zip' --output '2018-11-13-raspbian-stretch-full.zip'
    unzip 2018-11-13-raspbian-stretch-full.zip
    rm -f 2018-11-13-raspbian-stretch-full.zip
    mkdir x
    mount -o loop,ro,offset=50331648 -t ext4 2018-11-13-raspbian-stretch-full.img x
    cd x
    for i in libpng16.so.16 libicui18n.so.57 libicuuc.so.57 libicudata.so.57 libX11-xcb.so.1 libX11.so.6 libXext.so.6 libxcb.so.1 libxkbcommon-x11.so.0 libXau.so.6 libXdmcp.so.6 libxcb-xkb.so.1 libbsd.so.0; do cp "$(find -name $i)" .. ; done
    cd ..
    umount x
    rmdir x

    Now we have extracted all the libs we need from raspbian, next step is to transfer them into steamlink's /lib folder (the hostname will be different for your setup)

    Code
    scp lib* [email protected]:/storage/steamlink/lib/

    Next we need to install the steamlink udev rules, but udev is readonly, so we just overlay it (run from rpi)

    Code
    mkdir /storage/steamlink/overlay_work
    mount -t overlay overlay -o lowerdir=/lib/udev/rules.d,upperdir=/storage/steamlink/udev/rules.d/,workdir=/storage/steamlink/overlay_work /lib/udev/rules.d
    udevadm trigger

    Now the steamlink.sh that comes with it is not geared for libreelec, so copy this one over it

    External Content pastebin.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Now the final step is to stop kodi and start steamlink (run on rpi)

    Code
    systemctl stop kodi
    cd /storage/steamlink && ./steamlink.sh

    and when your done just restart kodi or "reboot"

    Code
    systemctl start kodi

    I am quite impressed how well this works, everything ran smooth as silk. gj Valve!

    I have this working just fine. I'm on here just to vent that updating to version 9.0.110 essentially disables the plugin then I have to manually roll back to 109. I say just put a note when you go into settings stating the newest version doesn't work with the latest GFE.


    And to make this post not useless garbage here is what I did to make it work (going from memory a bit).


    On Windows:

    • use DDU to completely uninstall nvidia.
    • reinstall the latest drivers but no GFE (in my case 416.64-desktop-notebook-win8-win7-64bit-international-whql.hf.exe)
    • installed NVIDIA_GeForce_Experience_v3.12.0.84.exe (possibly v3.14.1.48, will have to check later)
    • enable shield, do PIN etc
    • disabled GFE auto-updating on boot by adding to the hosts file


    On Libreelec (RPI3B+ wired)


    • running "Moonlight Embedded 2.4.6" (don't remember if I manually updated it)
    • FPS : 60
    • bitrate : 20000
    • packet size : 1024
    • remote opt. : on
    • don't allow gfe : on
    • play audio locally : on
    • stream 5.1 : off
    • audio device : sysdefault
    • had to manually change some files so my wireless ps3 controllers would work
    • probably made other changes I forgot about