mikebrady / shairport-sync

AirPlay and AirPlay 2 audio player
Other
7.17k stars 569 forks source link

[Problem]: shairport-sync looks for /run/shairport-sync which is not created #1908

Open pedromprado opened 1 day ago

pedromprado commented 1 day ago

What happened?

I am trying to run shairport-sync through alsa's equal and getting an error (see log output). No sound is output as a result. If I simply create /run/shairport-sync/ and allow writing to it, I no longer get this issue. I guess this dir should be created by shairport-sync when starting?

Relevant log output

pi@pi:~ $ journalctl -u shairport-sync -f
Sep 20 12:44:28 pi systemd[1]: Started shairport-sync.service - Shairport Sync - AirPlay Audio Receiver.
Sep 20 13:20:44 pi shairport-sync[1440]: Failed to open controls file:/run/shairport-sync/.alsaequal.bin.
Sep 20 13:20:44 pi shairport-sync[1440]: warning: The output device "equal" is busy and can't be used by Shairport Sync at present.

System Information.

Raspberry PI 4B+ with IQaudioDAC HiFi pcm512x-hifi-0

Configuration Information.

>> Display Config Start.

From "uname -a":
 Linux pi 6.6.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.47-1+rpt1 (2024-09-02) aarch64 GNU/Linux

From /etc/os-release:
 Raspbian GNU/Linux 12 (bookworm)

From /sys/firmware/devicetree/base/model:
 Raspberry Pi 4 Model B Rev 1.2

Shairport Sync Version String:
 4.3.4-1-g910264e5-AirPlay2-smi10-alac-OpenSSL-Avahi-ALSA-pa-pw-stdout-pipe-soxr-convolution-metadata-dbus-mpris-sysconfdir:/etc

Command Line:
 shairport-sync --displayConfig

Configuration File:
 /etc/shairport-sync.conf

Configuration File Settings:
 alsa :
 {
   output_device = "equal";
   disable_standby_mode = "auto";
 };

>> Display Config End.
>> Goodbye!

PulseAudio or PipeWire installed?

How did you install Shairport Sync?

Built from source

Check previous issues

mikebrady commented 21 hours ago

Thanks for the post.

It would seem that the /run/shairport-sync directory is a requirement of the ALSA equaliser. This has nothing to do with Shairport Sync.

Shairport Sync itself does not generally use or create a run directory, so I think the solution you adopted is the correct one.