Airplay auf Sonos mit AirConnect

airconnect statusBisher habe ich Airsonos genutzt um auf meine Sonos Lautsprecher per AirPlay zuzugreifen. Nun bin ich aber zu AirConnect gewechselt. AirConnect hat den großen Vorteil, das nach dem Auflösen einen Gruppe, wieder alle Lautsprecher zur Verfügung stehen. Mit Airsonos war das nur nach einem Neustart des Dienstes möglich. Hinzu kommt, dass AirConnect aktuell auch entwickelt wird und somit in Bewegung ist. Die Anleitung ist für einen RaspberryPi geschrieben, funktioniert aber auch mit anderen Linux Distributionen, hier muss aber eine andere Datei installiert werden. Schaut dazu einfach auf GitHub nach, da gibt es die Version für alle möglichen Platformenn

Die Installation ist relativ einfach und schnell erledigt.

 

Deaktivieren von Airsonos

Solltet ihr bisher Airsonos nicht verwenden, könnt ihr euch folgende Punkte sparen. Um Airsonos abzuschalten, sind nur zwei Befehle nötig. Zusätzlich habt ihr die Möglichkeit wieder auf Airsonos zu wechseln, da wir erst mal nichts löschen.


service airsonos stop
systemctl disable airsonos.service

 

Installation von AirConnect für AirPlay

Mittels folgender Befehle erzeugt ihr einen Ordner für AirConnect und ladet euch die vorkompilierte und aktuellste Version herunter. Ich lasse den Dienst dabei als Root User laufen.

mkdir /var/lib/airconnect
cd /var/lib/airconnect
wget https://github.com/philippe44/AirConnect/raw/master/bin/airupnp-arm
chmod 755 airupnp-arm

 

Anschließend müssen wir noch ein Startup-Script erstellen um AirConnect als Service starten zu können.

vi /etc/systemd/system/airconnect.service


[Unit]
Description=AirUPnP bridge
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

Nun könnt ihr den Autostart setzen und den AirConnect Service starten. Das sollte es auch dann schon gewesen sein. In Allem einfacher als die bisherige Lösung und schnell gemacht.

systemctl enable airconnect.service
service airconnect start

Sollte es nicht laufen, kann es nicht schaden den Status des Dienstes zu überprüfen und einen Blick in das Logfile zu werfen.

service airconnect status
cat /var/log/airupnp.log

 

OpenSSL

AirConnect benötigt OpenSSL 1.0.0. Mittels openssl version könnt hier herausfinden welche Version bei euch installiert ist. Sollte dabei OpenSSL 1.0.1t herauskommen, braucht ihr nichts zu machen. Andernfalls solltet ihr die benötigte Version manuell nachinstallieren.

Dank wget könnt ihr euch das nötige File herunterladen und anschließend mit dpkg installieren. Sollte der Link nicht funktionieren, schaut bitte direkt im Verzeichnis nach, denn die Version kann sich schon mal ändern. Das dpkg -i muss dann natürlich auch auf die neuere Version verweisen.

wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u8_armhf.deb

sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u8_armhf.deb

Damit sollte AirConnect fehlerfrei laufen. Danke an Sebastian für den Hinweis.

43 Gedanken zu “Airplay auf Sonos mit AirConnect

  1. Servus!

    Vielen Dank für deine Anleitung!

    Wennn ich versuche das Skript zu speichern bekomme ich allerdings folgenden Fehler: „“/etc/systemd/system/airconnect.service“ E212: Cannot open file for writing“

    Ich habe leider keine Ahnung warum – hast du eine Idee…?

    Viele Grüße

    Tim

    • Hallo,

      du hast anscheinend keine Rechte dazu, versuch es mal so:
      sudo vi /etc/systemd/system/airconnect.service

      Grüße,
      Björn

      • Vielen Dank für die Hilfe!

        So konnte ich das vi zumindest speichern – laufe aber direkt in den nächsten Fehler.

        Bei:

        „systemctl enable airconnect.service“

        erhalte ich Fehler:

        „Failed to execute operation: Access denied“

        Probiere ich das ganze mit einem Sudo davor, also:

        „sudo systemctl enable airconnect.service“

        erhalte ich wiederum diesen Fehler:

        „Failed to execute operation: Bad message“

        Ich bin leider noch nicht so tief in der Materie drin, daher komme ich da nicht weiter und würde mich sehr über Hilfe freuen

        • Hi,

          schau dir nochmals mittels cat /etc/systemd/system/airconnect.service das File an, dort liegt anscheinend der Fehler.
          Das muss der Inhalt sein:

          [Unit]
          Description=AirUPnP bridge
          After=network-online.target
          Wants=network-online.target

          [Service]
          Type=forking
          ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log
          Restart=on-failure
          RestartSec=30

          [Install]
          WantedBy=multi-user.target

          • Hallo,

            wir kommen der Sache näher – ich hatte in dem File tatsächlich einen Fehler.

            Auch „sudo systemctl enable airconnect.service“ hat anscheinend funktioniert, denn ich bekomme

            „Created symlink from /etc/systemd/system/multi-user.target.wants/airconnect.service to /etc/systemd/system/airconnect.service.“

            als Antwort.

            Allerdings klappt der letzte Schritt „sudo service airconnect start“ nicht.
            Es kommt Fehler

            „Job for airconnect.service failed. See ’systemctl status airconnect.service‘ and ‚journalctl -xn‘ for details.“

            Wenn ich jetzt „systemctl status airconnect.service“ probiere, erscheint folgendes:
            „● airconnect.service – AirUPnP bridge
            Loaded: loaded (/etc/systemd/system/airconnect.service; enabled)
            Active: activating (auto-restart) (Result: exit-code) since Thu 2018-03-15 09:45:46 UTC; 6s ago
            Process: 10150 ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log (code=exited, status=203/EXEC)“

            Hast du noch eine Idee?

          • Moin,

            immerhin etwas, aber den Rest schaffen wir auch noch.
            Was passiert denn wenn du den Dienst manuell startest mit sudo /var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f ?
            Eventuell liegt es an der Berechtigung, die könnte wir mit sudo chmod 755 /var/lib/airconnect/airupnp-arm beheben.
            Ansonsten schick doch mal den Inhalt der /etc/systemd/system/airconnect.service und schau bitte ob airupnp-arm wirklich in /var/lib/airconnect liegt.

            Grüße,
            Björn

  2. Yeeessssss!!!

    Es funktioniert!!!

    Das war der entscheidende Hinweis! Das Directory hat irgendwie nicht gestimmt, aber jetzt funktioniert es!

    Vielen vielen Dank für die Hilfe und das Tutorial!

    Grüße

    Tim

  3. Hallo Björn, danke für die Anleitung.
    Ich habe auch mal wieder den Raps für „Homebridge“ neu aufgesetzt.

    Mit dem neusten Raspbian Stretch kommt openssl1.0.2 zum Einsatz.
    Benötigt wird allerdings noch 1.0.0
    Erst als ich es nachinstalliert habe, funktioniert Dein Tutorial hervorragend. Vielen Dank.
    Auf GitHub ist Fehler und Lösung bekannt
    https://github.com/philippe44/AirConnect

    “ Some Debian Stretch distributions (e.g. Raspian) only provide openssl1.0.2, but 1.0.0 is needed. Download the version for Jessie using wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb then install it with sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb „

  4. bin nach Sebastians Anleitung vorgegangen, bekomme aber den Fehler:

    pi@max2play:~ $ sudo wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb
    –2018-04-05 15:17:28– http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb
    Auflösen des Hostnamens »security.debian.org (security.debian.org)« ⦠217.196.149.233, 212.211.132.250, 2a02:16a8:dc41:100::233, …
    Verbindungsaufbau zu security.debian.org (security.debian.org)|217.196.149.233|:80 ⦠verbunden.
    HTTP-Anforderung gesendet, auf Antwort wird gewartet ⦠404 Not Found
    2018-04-05 15:17:28 FEHLER 404: Not Found.

    Bin dankbar für jede Hilfe.

    Thomas

  5. Und wer gehofft hatte, dass Sonos, Airplay 2 nun endlich bald und wie versprochen nachrüsten würde, wird seit den letzten News wohl doch eher wieder bei dieser Anleitung landen.

    „[…] Support for Airplay 2 will be available through a free software update on a selection of our latest products – including the PLAY:5 and PLAYBASE – with more to follow.“

    Vielen Dank für diese Anleitung.

    Beste Grüße
    John

  6. Hallo Björn,

    danke für die vielversprechende Anleitung!
    Leider hakt es bei mir noch an diesem Punkt:

    pi@magicmirrorpi:/var/lib/airconnect $ sudo service airconnect start
    Job for airconnect.service failed because the control process exited with error code.
    See „systemctl status airconnect.service“ and „journalctl -xe“ for details.
    pi@magicmirrorpi:/var/lib/airconnect $ systemctl status airconnect.service
    ● airconnect.service – AirUPnP bridge
    Loaded: loaded (/etc/systemd/system/airconnect.service; enabled; vendor prese
    Active: activating (auto-restart) (Result: exit-code) since Mon 2018-04-16 17
    Process: 2796 ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /va

    Apr 16 17:19:57 magicmirrorpi systemd[1]: Failed to start AirUPnP bridge.
    Apr 16 17:19:57 magicmirrorpi systemd[1]: airconnect.service: Unit entered faile
    Apr 16 17:19:57 magicmirrorpi systemd[1]: airconnect.service: Failed with result
    lines 1-8/8 (END)…skipping…
    ● airconnect.service – AirUPnP bridge
    Loaded: loaded (/etc/systemd/system/airconnect.service; enabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: exit-code) since Mon 2018-04-16 17:19:57 CEST; 16s ago
    Process: 2796 ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log (code=exited,

    Apr 16 17:19:57 magicmirrorpi systemd[1]: Failed to start AirUPnP bridge.
    Apr 16 17:19:57 magicmirrorpi systemd[1]: airconnect.service: Unit entered failed state.
    Apr 16 17:19:57 magicmirrorpi systemd[1]: airconnect.service: Failed with result ‚exit-code‘.

    Die Datei airconnect.service liegt im richtigen Verzeichnis
    und ihr Inhalt ist korrekt.

    Könntest Du mir da weiterhelfen?

    VG
    Dominik

    • Hallo Dominik,

      was passiert denn wen du versuchst airconnect direkt zu starten mit sudo /var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log ?

      Grüße,
      Björn

      • Hi Björn,

        dann kommt folgendes:
        pi@magicmirrorpi:~ $ sudo /var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log
        /var/lib/airconnect/airupnp-arm: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

        fehlt mir also die libssl.so.1.0.0? Wo bekomme ich die her?

        VG
        Dominik

  7. Habe es jetzt stundenlang auf meinem Pi Zero W probiert (dachte der ist dafür doch prima, klein und sparsam kann er überall verschwinden…)
    Allerdings ist das ein ARMv6 und nicht 7 und scheinbar funktioniert weder die arm noch die arm5 Datei. Habe mal ein Issue eröffnet…
    Oder bin ich nur zu doof? Bekomme beim Ausführen immer „illegal instruction“ und laut Netz liegt das an einem zu alten ARM bzw. zu neuen Package.

    • Genau dasselbe Problem habe ich auch damit und auch schon alles mögliche probiert. Pi Zero W mit Linux version 4.14.50+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)).

  8. Hallo,
    wenn ich den Service starten möchte, kommt immer eine Fehlermeldung:
    Job for airconnect.service failed because the control process exited with error code.
    See „systemctl status airconnect.service“ and „journalctl -xe“ for details.

    Wenn ich dann mit Status überprüfe erhalte ich folgendes:
    ● airconnect.service – AirUPnP bridge
    Loaded: loaded (/etc/systemd/system/airconnect.service; enabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: exit-code) since Mon 2018-07-23 09:17:26 CEST; 4s ago
    Process: 1860 ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log (code=exited, status=203/EXEC)

    Jul 23 09:17:26 raspberry-vm systemd[1]: Failed to start AirUPnP bridge.
    Jul 23 09:17:26 raspberry-vm systemd[1]: airconnect.service: Unit entered failed state.
    Jul 23 09:17:26 raspberry-vm systemd[1]: airconnect.service: Failed with result ‚exit-code‘.

    Kannst du mir sagen wodran das liegt?

    • Moin,

      Ich glaube die airupnp-arm wird an einem anderen Ort liegen, bzw, nicht vorhanden sein.
      Was passiert denn wenn du den Dienst manuell startest mit sudo /var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log?
      Eventuell liegt es an der Berechtigung, die könnte wir mit sudo chmod 755 /var/lib/airconnect/airupnp-arm beheben.
      Ansonsten schick doch mal den Inhalt der /etc/systemd/system/airconnect.service und schau bitte ob airupnp-arm wirklich in /var/lib/airconnect liegt.

      Grüße,
      Björn

      • ● airconnect.service – AirUPnP bridge
        Loaded: loaded (/etc/systemd/system/airconnect.service; enabled; vendor preset: enabled)
        Active: activating (auto-restart) (Result: exit-code) since Mon 2018-07-23 10:58:11 CEST; 12s ago
        Process: 1631 ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log (code=exited, status=203/EXEC)

        Jul 23 10:58:11 Raspberry-VM-32bit systemd[1]: airconnect.service: Control process exited, code=exited status=203
        Jul 23 10:58:11 Raspberry-VM-32bit systemd[1]: Failed to start AirUPnP bridge.
        Jul 23 10:58:11 Raspberry-VM-32bit systemd[1]: airconnect.service: Unit entered failed state.
        Jul 23 10:58:11 Raspberry-VM-32bit systemd[1]: airconnect.service: Failed with result ‚exit-code‘.

        das erhalte ich wenn ich service airconnect status ausführe.

  9. wenn ich den Dienst manuell starte kommt das:
    -bash: /var/lib/airconnect/airupnp-arm: Kann die Binärdatei nicht ausführen: Fehler im Format der Programmdatei

  10. Ich habe libssl1.0.0_1.0.1t-1+deb7u4_armhf sowie die 8u9 Version ausprobiert, geht alles nicht.

    Das systemctl enable Kommando wird ausgeführt ohne sichtbare Rückmeldung.

    Das Start Kommando liefert diese Fehlermeldung zurück:

    Job for airconnect.service failed because a fatal signal was delivered to the control process.
    See „systemctl status airconnect.service“ and „journalctl -xe“ for details.

    das xe Kommando liefert diese Infos zurück:

    — Unit airconnect.service has begun starting up.
    Sep 15 11:32:11 raspberrypi systemd[1]: airconnect.service: Control process exit
    Sep 15 11:32:11 raspberrypi systemd[1]: Failed to start AirUPnP bridge.
    — Subject: Unit airconnect.service has failed
    — Defined-By: systemd
    — Support: https://www.debian.org/support

    — Unit airconnect.service has failed.

    — The result is failed.
    Sep 15 11:32:11 raspberrypi systemd[1]: airconnect.service: Unit entered failed
    Sep 15 11:32:11 raspberrypi systemd[1]: airconnect.service: Failed with result ‚

    Manuell sudo /var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /var/log/airupnp.log bringt „illegal instruction“.

    Die Dateien und Ordner und chmod 755 habe ich schon vielfach überprüft, auch neu angelegt. Die Datei habe ich mit Nano angelegt, statt mit vi.

    Klappt alles nicht.

    service airconnect status bringt:

    root@raspberrypi:~# service airconnect status
    ● airconnect.service – AirUPnP bridge
    Loaded: loaded (/etc/systemd/system/airconnect.service; enabled; vendor prese
    Active: activating (auto-restart) (Result: signal) since Sat 2018-09-15 11:35
    Process: 2839 ExecStart=/var/lib/airconnect/airupnp-arm -l 1000:2000 -z -f /va

    Sep 15 11:35:12 raspberrypi systemd[1]: airconnect.service: Unit entered failed
    Sep 15 11:35:12 raspberrypi systemd[1]: airconnect.service: Failed with result ‚

    Eine log Datei gibts nicht. cat /var/log/airupnp.log bringt „no such file or directory“

    Was nun? Ist der Pi Zero W inkompatibel?

Schreibe einen Kommentar