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… :(
Wenn Du nicht Spezialtrick bist, hat wohl jemand gerade deinen Bug bei Git gefeilt: https://github.com/stephen/airsonos/issues
Ansonsten bin ich da auch leider ratlos, sorry!
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!