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 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.

19 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.

Schreibe einen Kommentar