Steam Link

Steam Link

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
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.
thank you! but the file is set as private under google drive soI can't download it :(
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.
thank you so much! I'll give it a go tomorrow!
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.
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?
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...
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.
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?
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?
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.

< >
Showing 1-12 of 12 comments
Per page: 1530 50