Airsonos auf dem BananaPi

Für das neue Heim kam für mich keine klassische Musikanlage mehr in Frage, das ganze Kabelziehen und festlegen wo was steht, war mir zuwider. Stattdessen wollte ich eine flexible Lösung, die es mir über WLAN erlaubt, dort Musik zu hören, wo ich mich gerade aufhalte. Das Konzept von Sonos war also die Lösung!
Der einzige Knackpunkt am Sonos-System: ohne eigene App ist kein Abspielen von Inhalten möglich.
Als iOS und OSX Nutzer wird also AirPlay sehr schmerzlich vermisst. Hier kommt AirSonos ins Spiel ein, in Node.js geschriebener, AirPlay-Server, der es ermöglicht Musik, Podcast, o.ä. an das Sonos-System weiterzuleiten. Das Problem hierbei: Er muss permanent auf einem Rechner laufen. Da mir dazu die vorhandene Infrastruktur (iMac, MBP) zu schade war, und das NAS bald zum Teufel geschickt wird, habe ich mir kurzerhand einen BananaPi dafür gekauft.

Einrichtung

Auf dem B-Pi läuft als Distribution Bananian, diese bringt das nötigste zum Betrieb mit und hat vor allem den Vorteil, das der B-Pi “Headless” (also ohne Monitor und Tastatur ) betrieben werden kann.
Das gesamte Paket zur Installation, nebst einer guten Installationsanleitung findet ihr hier.
Nun bedarf es einiger Zusatzpakete, damit AirSonos problemfrei laufen kann:

    • Zuerst Update der Paketquellen:

apt-get update
apt-get upgrade

    • Installation von Node.js

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

    • Update von npm

npm update npm -g

    • Installation der Build-Tools

apt-get install -y build-essential

    • Installation von Avahi

apt-get install git-all libavahi-compat-libdnssd-dev

    • Installation von AirSonos

npm install airsonos -g

Nach dem Start:

airsonos & disown

sollten die vorhanden Systeme erkannt und entsprechend via AirPlay erreichbar sein. Der Parameter & disown erlaubt es die Konsole vom Rechner zum B-Pi zu schliessen, ohne dass der Prozess selbst dabei geschlossen wird.
Bei mir gab es beim ersten Anlauf einen Fehler von avahi, diesen konnte ich mit einer erneuten Installation beheben:

apt-get install --reinstall avahi-daemon

Danach sollte alles problemfrei laufen und die entsprechenden Sonos-Boxen im AirPlay Menü erscheinen.

9 comments On Airsonos auf dem BananaPi

  • Hallo Alexander!

    Danke für die tolle Anleitung. Mit dieser bin ich soweit gekommen, wie bisher mit keiner anderen. :) Ich versuche AirSonos auf meinem Cubietruck zu installieren, aber es will einfach nicht klappen. Ich komme bis zum letzten Schritt und erhalte dann einige Fehler:

    root@cubietruck:~# npm install airsonos -g
    npm ERR! Linux 3.4.107-cubietruck
    npm ERR! argv “node” “/usr/bin/npm” “install” “airsonos” “-g”
    npm ERR! node v0.10.41
    npm ERR! npm v3.6.0
    npm ERR! file /root/.npm/minimist/0.0.8/package/package.json
    npm ERR! code EJSONPARSE

    npm ERR! Failed to parse json
    npm ERR! Unexpected token ‘\u0000’ at 1:1174
    npm ERR! ndings/-/bindings-1.2.1.tgz”,”readme”:”ERROR: No README data found!”}
    npm ERR! ^
    npm ERR! File: /root/.npm/minimist/0.0.8/package/package.json
    npm ERR! Failed to parse package.json data.
    npm ERR! package.json must be actual JSON, not just JavaScript.
    npm ERR!
    npm ERR! This is not a bug in npm.
    npm ERR! Tell the package author to fix their package.json file. JSON.parse

    npm ERR! Please include the following file with any support request:
    npm ERR! /root/npm-debug.log

    Zudem hatte ich beim Update von NPM einige Warnungen:

    root@cubietruck:~# npm update npm -g
    npm WARN deprecated This version of npm lacks support for important features,
    npm WARN deprecated such as scoped packages, offered by the primary npm
    npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the
    npm WARN deprecated latest stable version. To upgrade to npm@2, run:
    npm WARN deprecated
    npm WARN deprecated npm -g install npm@latest-2
    npm WARN deprecated
    npm WARN deprecated To upgrade to the latest stable version, run:
    npm WARN deprecated
    npm WARN deprecated npm -g install npm@latest
    npm WARN deprecated
    npm WARN deprecated (Depending on how Node.js was installed on your system, you
    npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
    npm WARN deprecated on Windows, run them from an Administrator prompt.)
    npm WARN deprecated
    npm WARN deprecated If you’re running the version of npm bundled with
    npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
    npm WARN deprecated will be bundled with a version of npm@2, which has some small
    npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
    npm WARN deprecated semver behavior.
    /usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
    npm@3.6.0 /usr/lib/node_modules/npm

    Kannst du mir vllt. weiterhelfen?

  • Leider kenne ich mich mit Cubietruck nicht wirklich aus. Aber wie Du selbst schon erkannt hast, Updatet sich dein NPM nicht auf die aktuelle Version (3.7.0) Auch die Node Version hinkt der aktuellen hinterher. Eventuell liegt da das Problem?

  • Die Probleme beim Update von NPM konnte ich durch nochmalige Ausführung des Befehls beheben. Die Fehler bei der Installation von AirSonos bleiben leider… :(

  • Leider doch. :D

  • Hallo,

    ich habe deinen Blog gefunden, da ich auf meinem Banana Pi Airsonos installieren wollte. Bin genau deiner Anleitung gefolgt und bekomme folgenden Fehler:

    npm WARN optional Skipping failed optional dependency /airsonos/chokidar/fsevents:
    npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.14
    npm ERR! Linux 3.4.90
    npm ERR! argv “node” “/usr/local/bin/npm” “install” “airsonos” “-g”
    npm ERR! node v0.12.6
    npm ERR! npm v3.10.6
    npm ERR! path /usr/local/lib/node_modules/airsonos/bin/index.js
    npm ERR! code ENOENT
    npm ERR! errno -2

    npm ERR! enoent ENOENT, chmod ‘/usr/local/lib/node_modules/airsonos/bin/index.js’
    npm ERR! enoent ENOENT, chmod ‘/usr/local/lib/node_modules/airsonos/bin/index.js’
    npm ERR! enoent This is most likely not a problem with npm itself
    npm ERR! enoent and is related to npm not being able to find a file.
    npm ERR! enoent

    Mich wundert die Fehlermeldung: Not compatible with your operating system or architecture: Ich habe folgende Version installiert:
    Linux version 3.4.90 (bananapi@lemaker) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) )

    Hast du vielleicht eine Idee? Bei dir hat es ja geklappt wie es scheint

  • Da werden leider einige Dependencies nicht mehr gepflegt. Daher ist das Projekt auch eingeschlafen. Wenn Du die Möglichkeit hast, versuche an ältere Softwarestände zu kommen und installiere diese. Falls nicht wüsste ich ausser den Entwickler selbst zu fragen, keine Lösung.

    Selbst nutze ich Sonos, dank einer Play:5, nun via Airplay. Daher ist der PI bei mir nicht mehr im Einsatz.

  • Hallo,
    Danke dir. Hast du vielleicht noch im Kopf mit welchem Release du es damals zum Laufen gebracht hast?
    Danke

    • Habe den PI aus dem Keller gekramt. Leider war ich da aber zu gründlich und hatte beim einlagern alles gelöscht. Sorry!

Leave a reply:

Your email address will not be published.