Steam Link

Steam Link

Matte 🕹 Jul 11, 2020 @ 4:27am
Turning it into an Airplay audio receiver
I’d like to turn the Steam Link into an Airplay audio receiver to connect to a hi-fi.

I’ve already tried to install Kodi, but version 1.8 doesn’t want to work at all, and version 1.7 does work, but Airplay won’t show up on my iPhone.

I know there’s Shairport but I have no idea how to do to compile the code, SDK and all the rest.

Is there anybody willing to help me?
< >
Showing 1-12 of 12 comments
garbalen Jul 14, 2020 @ 7:35pm 
I did a build (of Shairport) you can install with the steamlink/apps normal USB install.
https://drive.google.com/file/d/1X6fu46CZUo9lVJGtKkkFanJqcHmoQ3uQ/view?usp=sharing

The problem is that I don't know what I built :D
I think you will want a config file in there or maybe connect with putty or another telnet/ssh client to actually start the thing. I'll look up a little more but it doesn't give any errors and I get the help file from the command line. If you know how it works then let me know if there's any issues or if it works fine. Thanks.
Matte 🕹 Jul 15, 2020 @ 2:57am 
thank you! but the file is set as private under google drive soI can't download it :(
garbalen Jul 15, 2020 @ 10:38am 
Originally posted by Matte:
thank you! but the file is set as private under google drive soI can't download it :(
Sorry, try https://drive.google.com/file/d/1X6fu46CZUo9lVJGtKkkFanJqcHmoQ3uQ/view?usp=sharing again. I think they changed the default security setting.

I messed with it a little but I think I'm supposed to start it with systemctrl systemd systemv something similar, but it isn't an option on steamlink as far as I can tell. There's an option to start with -d to use libdaemon mode but it says it wasn't part of the build options even though I included it as part of the build options. Let me know if you have any luck and I can revist it.
Last edited by garbalen; Jul 15, 2020 @ 10:45am
Matte 🕹 Jul 15, 2020 @ 5:44pm 
thank you so much! I'll give it a go tomorrow!
garbalen Jul 24, 2020 @ 5:39am 
https://drive.google.com/file/d/1X6fu46CZUo9lVJGtKkkFanJqcHmoQ3uQ/view?usp=sharing

I've updated again. I got it built with libdaemonize. I change the toc.text to to run=shairport-sync -d but I think it might ignore the -d switch if you try to run it from the icon. If you are still testing it I would try to console in and run it from command line if it doesn't work out of the box. Not sure it'll work either way, but I don't have any errors now when trying to run it from console.

If we can get a valid test I can see if we can just have it run a script that includes the switch. Seems to be how USB Mount works is just with a script.

Edit: if you just copy the new shaiport-sync file over via ftp, versus installing, you'll also need the libdaemonize.so files copied to the folder.
Last edited by garbalen; Jul 24, 2020 @ 1:18pm
Matte 🕹 Jul 24, 2020 @ 4:13pm 
thank you! I installed the first version a couple of days ago and nothing happened clicking the icon, but I didn't have time to search for the shairport manual and test it via SSH. I'll install the new version but would you give me a heads up on what to do or at least where to look to understand how to run it?
Matte 🕹 Jul 24, 2020 @ 4:38pm 
ok I’ve installed it and ran via icon: nothing happens and it goes back to the initial screen.
I’ve SSHd in the system and, I don’t why, there are a lot of commands missing. I can’t sudo, I can’t make. it says “not found”.
I went to the shairport folder via SSH, wrote “shairport-sync” and it says not found.
I went and looked to the shairport-sync github manual and it says to use systemctl. I wrote systemctl in my ssh terminal and another “not found”.

I don’t understand if it’s a very restricted linux kernel, or if it’s just the SSH that is restricted. I’m on root access anyways.

Anyways it looks like the only way to run this thing is via a clickable app apparently...
garbalen Jul 27, 2020 @ 2:07pm 
Originally posted by Matte:
ok I’ve installed it and ran via icon: nothing happens and it goes back to the initial screen.
I’ve SSHd in the system and, I don’t why, there are a lot of commands missing. I can’t sudo, I can’t make. it says “not found”.
I went to the shairport folder via SSH, wrote “shairport-sync” and it says not found.
I went and looked to the shairport-sync github manual and it says to use systemctl. I wrote systemctl in my ssh terminal and another “not found”.

I don’t understand if it’s a very restricted linux kernel, or if it’s just the SSH that is restricted. I’m on root access anyways.

Anyways it looks like the only way to run this thing is via a clickable app apparently...

It is limited. There's a lot stripped out. If you go to cd /home/apps/shairport you should be able to run "./shairport-sync -d" (no quotes and start with dot slash) to get it started. The d is for the daemon because we don't have systemctl. You may be able to just edit toc.txt on the run line and add -d to it, but I think it ignores spaces and stuff so the icon won't work. There won't be a sudo or need for it as you are already root. I'm not done with this yet so if you want you want leave it for a while I'll just see if I can get a real world test running.
Matte 🕹 Aug 1, 2020 @ 5:56am 
alright I tried again, and this time it looks like it started correctly. but it’s not showing up on my iPhone X list of Airplay receivers.
If I start it twice it throws an error regarding a process that died, so it’s definitely running.
Do I have to configure anything?
で | De Mar 7, 2023 @ 3:00pm 
Originally posted by garbalen:
https://drive.google.com/file/d/1X6fu46CZUo9lVJGtKkkFanJqcHmoQ3uQ/view?usp=sharing

I've updated again. I got it built with libdaemonize. I change the toc.text to to run=shairport-sync -d but I think it might ignore the -d switch if you try to run it from the icon. If you are still testing it I would try to console in and run it from command line if it doesn't work out of the box. Not sure it'll work either way, but I don't have any errors now when trying to run it from console.

After copying many libraries and compiling it myself, I got it running to the point where iOS detects the airplay device and can connect to it. But it crashed when ALSA tries to find an audio device:

... Settings and options for the audio backend "alsa": -d output-device set the output device, default is "default". -c mixer-control set the mixer control name, default is to use no mixer. -m mixer-device set the mixer device, default is the output device. -i mixer-index set the mixer index, default is 0. hardware output devices: # ./shairport-sync ALSA lib confmisc.c:767:(parse_card) cannot find card '0' ALSA lib conf.c:4371:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4371:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name ALSA lib conf.c:4371:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:4850:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM default fatal error: the alsa output_device "default" can not be found.

Is the steamlink not using alsa or has someone got it working meanwhile?
Last edited by で | De; Mar 7, 2023 @ 4:50pm
garbalen Mar 9, 2023 @ 7:25am 
Originally posted by :
Is the steamlink not using alsa or has someone got it working meanwhile?

I've had no luck with ALSA building Retroarch and have been using OpenGL.
I've found this fork that might have better luck. I'll take a look at it, but if you have a build environment for it, it might just work for you.
https://github.com/kwasmich/shairport-sync

I played around a little and no luck.
autoreconf -i -f fails. I did get it to spit out a configure by chopping up the configure.ac file, making changes from the original source that updated my error, and downgrading make but still no luck.

This was the fix for autoreconf version
https://github.com/mikebrady/shairport-sync/commit/424cc398240c18e95c26edda1dd565c5915e4c1c

This is my current error after making those changes.
configure.ac:52: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.

I tried some more with it but no luck.

Last edited by garbalen; Mar 9, 2023 @ 9:14am
slouken Aug 3, 2023 @ 9:03am 
Steam Link doesn't use ALSA, it uses the SLAudio library:
https://github.com/ValveSoftware/steamlink-sdk/blob/master/rootfs/usr/include/SLAudio.h
< >
Showing 1-12 of 12 comments
Per page: 1530 50