stephen / airsonos

:musical_note: AirPlay to Sonos
MIT License
2.1k stars 255 forks source link

airsonos on Synology #22

Open ghost opened 10 years ago

ghost commented 10 years ago

A great tool, I enjoy day by day, but the mac needs to run all the time. My Synology is running 24/7, so why not running there? as node.js can be installed on the synology, can airsonos run on that one as well?

scottcawley commented 9 years ago

Hello all, sorry to intrude - a github newcomer, and a lot of this is completely new to me... It might not come as a surprise to you to find my question is about installing this - I've tried (and failed) to understand what I need to do to get it going. There was some talk of SynoCommunity earlier on the thread - is there any likelihood that this would end up there so an automatic, easy install would be possible? (I managed to get Plex running from the package installer there).

Hopeful thanks in advance for any guidance! This is the only thing preventing me from buying a Sonos!

gering commented 9 years ago

Docker is coming to Synology, perhaps it is a good idea to build a docker container?

HenkvdM commented 9 years ago

The Docker functionality is only avaible for the following Synology types:

Release notes:

Due to the hardware requirement, Docker will be only available on the following models: 15-series: RS815RP+, RS815+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+ 14-series: RS3614xs+, RS3614RPxs, RS3614xs, RS2414+, RS2414RP+, RS814RP+, RS814+ 13-series: RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+ 12-series: RS3412xs, RS812+, RS812RP+, RS3412RPxs, RS2212+, RS2212RP+, DS1812+, DS3612xs, DS1512+, DS412+ 11-series: RS3411RPxs, RS3411xs, DS3611xs 10-series: RS810RP+, RS810+, DS1010+, DS710+

mrbrown82 commented 9 years ago

Hello guys,

I'm a newcomer as well, hope to find some help. Please, bare with me, I'm not an expert. I just got my new Sinology DS214Se and, like you, I would like to install airsonos. I followed @dejongrr tutorial. Everything goes smooth just until I issue the "npm install airsonos -g" command. I always get "segmentation fault" and I'm stucked there. If I understood it right, it means that I have a memory issue., but what is the cause? I even tried compile node js myself, but I get the same error. Can somebody point me to a fix for this? Thank you very much for your help!

SteffenCL commented 9 years ago

Got it running on my DS214play. Airsonos solved the biggest issue I always had with Sonos. Folks at Sonos should incorporate this into their system as they would benefit from it massively. I know so many people who are not buying Sonos equipment due to the lack of airplay support.

Anyhow, thanks stephen for the great work and dejongrr for the neat synology integration!

mrbrown82 commented 9 years ago

I finally got it running too on my DS214se. Like said in my previous post I had problems running node which always gave me segfault. I tried installing node js with apt like dejongrr posted. It installs versions 0.10.29 and that version on my DS214se gives an "Invalid Instruction" error. Then I tried to install node js from the synocommunity repo, which is version 0.12.0-4 and I got Segmentation Fault. Then I tried to install the version that comes with the standard syno package manager which is v 0.10.36. It works fine, but it is useless since it can't be run from the chroot (am I right?). Then i figured that if I compiled node js (0.10.36) myself in the chroot env it had to work. After countless hours of compiling I had no luck, still segfault errors when starting node. Finally I downloaded node js from here issuing the following commands:

wget http://node-arm.herokuapp.com/node_latest_armhf.deb sudo dpkg -i node_latest_armhf.deb

source: http://stackoverflow.com/questions/25540180/error-compiling-node-js-v0-10-31-for-armv7

It installs version 0.12.1. It works fine, no more segfault. I could continue through dejongrr tutorial and have airsonos working within minutes.

I'm sure i made a lot of mistakes all the way because I'm new to all of this, but I thought that sharing my trial and error experience could be helpful to somebody else.

penguinhack commented 9 years ago

Followed @dejongrr instructions and got all the way to the second to last command: "npm install airsonos -g" getting NPM errors of "npm ERR! Please check if you have git installed and in your PATH."

So seems git is not properly installed, but I thought it gets installed as part of "apt-get install build-essential"???

How to fix this? Thanks!

ETA:

After sleeping on it, I tried installing git via: "apt-get install git" and that installed git and let me install airsonos.

I saw the same errors others had and did re-installed avahi-daemon which removed the errors.

Got to work! Thanks so much!

Have this running on xpenology on a TS140 box.

LongChair commented 9 years ago

@dejongrr @stephen : did the idea of making a package for Synology on SynoCommunity.com went away ? :)

i'm not an expert with doing this but it looks like synocommunity provides the necessary toolchain for this here : https://github.com/SynoCommunity/spksrc

I think it would be worth investigating this option because that would save a lot of the chroot hassle :)

LongChair commented 9 years ago

it looks like someone already added a request on the SynoCommunity Gihub Issues repo here https://github.com/SynoCommunity/spksrc/issues/1630

Feel free to show your interest there :)

FpazHn commented 9 years ago

After a couple of problems i was able to install everything on my ds211. Airsonos finds the diferent speakers (twice?). The cursor does not come back unti i press enter.. Inunderstan thats normal? But the real problem is that no speakera appear on my iphone or mac. I have tried changing to andifferent nodejs but just cant. Not eventhe n command works. Coul it be the router? What else sjould i do so airsonos works??? Thanks in advance.

Ninetheless

FpazHn commented 9 years ago

I was able to install Airsonos but neither my mac or iOS devices seem to find the sonos "airplay" speakers.

Nonetheless if i use DS AUDIO they are found and work perfectly as everything else should.

Do any of you have any idea of why this happens o how could i fix it?

Another thing i've been trying to do is change the Node versions but If i use "N" for this I get and exec binary error when i put the "N use X.10.XX airsonos" command.

Im new to this and I've been trying to install airsonos for a week already. I would probably had stop trying but being able to use DS Audio as i want makes me feel I'm pretty close.

I'd greatly appreciate any guidance.

Thanks.

penguinhack commented 9 years ago

Are you seeing any WARNING messages when you run "airsonos &" in the terminal? Also make sure that Debian Chroot is running.

For some reason I actually have three listing for each of my Sonos speakers, might have to do with wireless and ethernet addresses for the speakers. But I do see it on my iPhone and can airplay it to them. Pick any of them will play though so hadn't bother try to troubleshoot further.

FpazHn commented 9 years ago

Hi penguinhack.

This is the output of airsonos &:

root@Disk_FPaz:/# airsonos & [1] 31242 root@Disk_FPaz:/# * WARNING * The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-co mpat?s=libdns_sd&e=nodejs * WARNING * The program 'nodejs' called 'DNSServiceRegister()' wh ich is not supported (or only supported partially) in the Apple Bonjo ur compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-co mpat?s=libdns_sd&e=nodejs&f=DNSServiceRegister Searching for Sonos devices on network... Setting up AirSonos for Cuarto principal {192.168.1.114:1400} Setting up AirSonos for Comedor {192.168.1.115:1400} Setting up AirSonos for Cuarto principal {192.168.1.114:1400} Setting up AirSonos for Comedor {192.168.1.115:1400}

I understand these are normal warnings?

penguinhack commented 9 years ago

For the Avahi warning messages/errors please look at the previous comments and try that. https://github.com/stephen/airsonos/issues/22#issuecomment-72698318 https://github.com/stephen/airsonos/issues/22#issuecomment-72807468

I had the same issue and did the above fix and it worked afterwards. Good luck!

DS Audio, as I understand, is pretty different. That streams music from the Synology box to your iPhone whereas AirSonos Airplays audio from your iPhone to your Sonos system. Only downside of course is Airplay just drains your iPhone :(.

Enjoy!

FpazHn commented 9 years ago

Thanks for your help @penguinhack. I understand what the ds audio does. Ds audio also has airplay/bluetooth capabilities of the files pulled from my synology. And it is actually working just fine with airsonos. When i play something it sounds on the selected speaker right from the ds audio app (without using the sonos app). And then if i go into the sonos app it's like a radio streaming app. On the other hand the warnings i have when i run airsonos are the same as the ones @dejongrr said where normal. I also had the dns problems but fixed them with the dbus.restart, etc. and deleted the proc=3 line from the file he instructed. Im almost giving up. I actually tend to believe that it is either something with nodetunes (or nodejs) or with my network.

penguinhack commented 9 years ago

My bad, I just checked have the same errors, but it's working.

If you see the "Setting up Airsonos for ...." should be good.

Maybe a stupid question but your iPhone does support Airplay right and same network? If you run an app like net analyzer do you see your synology and sonos speakers on the local network?

iPhone 4 or later iPad or iPad mini iPod touch (4th generation or later)

FpazHn commented 9 years ago

Its an iphone 6. My ipad and my imac don't see the speakers. They are all on the same network. Airsonos finds all of the speakers. Its weird that they appear twice. After that the prompt wont go back on the terminal unless i press enter. Regarding your other questions I can see the speakers using a couple of network analyzers. It's really weird. I believe that if I change Nodejs version maybe it would work. Nonetheless i have tried with the N and NVM commands and they wont work. They all give binary exec problems. Thanks anyway! I see very few people may be able to help. Maybe if I post the problem outside of the synology someone might help.

On May 2, 2015, at 8:54 PM, penguinhack notifications@github.com wrote:

My bad, I just checked have the same errors, but it's working.

If you see the "Setting up Airsonos for ...." should be good.

Maybe a stupid question but your iPhone does support Airplay right and same network? If you run an app like net analyzer do you see your synology and sonos speakers on the local network?

iPhone 4 or later iPad or iPad mini iPod touch (4th generation or later)

— Reply to this email directly or view it on GitHub.

penguinhack commented 9 years ago

Does your iphone see your synology server in the local network when running the network analyzer. The airsonos server is running off the synology box so the iphone needs to see the synology box.

What verison of Nodejs are you running?

/var/packages/debian-chroot/scripts/start-stop-status chroot nodejs --version

I show: v0.10.29

Not sure if it matters but my error comes over as: * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs

whereas yours has: * WARNING * For more information see mpat?s=libdns_sd&e=nodejs>

Maybe try updating nodejs again? Type: apt-get update Type: apt-get upgrade Type: apt-get install nodejs Type: ln -s /usr/bin/nodejs /usr/bin/node

DomBlack commented 9 years ago

If you've got a Docker compatible Synology, install the Docker package, then SSH into the Synology using; ssh root@$ip, once logged in just run this command:

docker run -d --restart=always --net="host" --name="airsonos" -p 5000-5050:5000-5050/tcp justintime/airsonos

For some reason the web interface will not let you declare the net part which is important or port ranages. Once created via the console you can manage it through the web interface

FpazHn commented 9 years ago

I have a ds211. I understand that it is not docker compatible.

Its weird.. I was able to install it. It runs, finds the speakers but they just don't show up on any device.

If i run airsonos on my imac it works. So it shouldn,t have anything to do with my network settings.

The thruth is I gave up. Maybe ill install it on a raspberry pi.

Thanks.

Sent from my iPhone

On May 30, 2015, at 6:26 AM, Dominic Black notifications@github.com wrote:

If you've got a Docker compatible Synology, install the Docker package, then SSH into the Synology using; ssh root@$ip, once logged in just run this command:

docker run -d --restart=always --net="host" --name="airsonos" -p 5000-5050:5000-5050/tcp justintime/airsonos

For some reason the web interface will not let you declare the net part which is important or port ranages. Once created via the console you can manage it through the web interface

— Reply to this email directly or view it on GitHub.

gr8m8sam commented 9 years ago

@DomBlack - Thanks mate. Works a treat and easy as...

Tatster commented 9 years ago

Hi, Spent a couple of hours on this. Installed everything as per instructions above. Had to install "git" separately like penguinhack. Removed the nproc line Sonos speakers were discovered (in duplicate) and were displayed on iPhone. ...alas trying to play any content through them failed (just occassional blips before what i assume is buffering) Synology CPU was fluctuating around 95-100% whenever audio was played to the Sonos speakers over airplay. I know the 413j hasn't got the greatest CPU (no floating point; 1.6GHz / 521MB RAM) and I guess this is just too much for it. :cry:

More in hope than anything else I've rebooted everything and still the same. Kudos to those that put all the code together- gutted this can't work for me.

Out of interst how does one kill the process if it was started using airsonos & short of rebooting the Diskstation?

flobroed commented 9 years ago

Hi Guys.

I followed all the suggestions (including the comments for the avahi-daemon.conf) on a DS210j. Airsonos installed fine, but the culprit is still dbus & the avahi-daemon.

I'm getting: root@evo6_filer:/# /etc/init.d/dbus restart [ ok ] Stopping system message bus: dbus. [FAIL] Can't start system message bus - /proc is not mounted ... failed!

This remains even after several reinstalls & reboots. It's always the same with /proc presumably not mounted...

Any ideas for this?

Best regards


If someone else is struggling with that --> Just found the solution to this: mount -t proc none /proc in the chroot environment.

Tatster commented 9 years ago

Well done troubleshooting that flobroed. So have you got it up and running? What's the performance like? With a 210j I wonder if you have the same performance issues as me with my 413j which has similar CPU specs and can't handle transcoding non-mp3 audio very well (at all?).

flobroed commented 9 years ago

Nope. :( Airsonos compiles, starts with Warnings, detects everything as duplicates and then just hangs... My iPhone does not discover these speakers.

Are we doing something wrong, or is this indeed broken in newer DSM / chroot versions?

root@evo6_filer:/# airsonos * WARNING * The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs * WARNING * The program 'nodejs' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs&f=DNSServiceRegister Searching for Sonos devices on network... Setting up AirSonos for Bad {192.168.0.112:1400} Setting up AirSonos for Küche {192.168.0.116:1400} Setting up AirSonos for Bad {192.168.0.112:1400} Setting up AirSonos for Küche {192.168.0.116:1400}

Tatster commented 9 years ago

Hi - I get the same view as you when it runs for me. Same warnings, Speakers recognised in duplicate etc. ..and then yes it looks like it "hangs" but actually I think it's just done. It just chooses to show this with a flashing cursor where you might normally expect to see some kind of command line prompt. Maybe that's a feature of the Debian OS.

Anyway - in short I getthe same output as you see - the only difference is hat my iPhone can see the systems. I can't suggest why they don't show up on yours - don't expect to see them from the Sonos Controller app -you need to be in something like YouTube or a 3rd party audio app (eg DS Audio).

I can confirm that Airsonos does work on DSM 5.2 with the packages installed as described above. Lower-spec CPUs can't handle the transcoding required though I think. (and in the Synology j units the CPU is not a superstar. I've lso read reports that the Raspberry pi install suffers from the same problem.

FpazHn commented 9 years ago

The same happened to me. Correctly installed, airsonos running and speakers found by the application but not found by any phone or computer.

strangely DS audio worked but the speaker were not found as an airplay device. They were found as UPNP devices.

I think it was the node version but was never able to install another version.

I bought a raspberry pi 2 and installed it in less than an hour.

Sorry for not being able to help.

Sent from my iPhone

On Jul 6, 2015, at 12:35 PM, flobroed notifications@github.com wrote:

Nope. :( Airsonos compiles, starts with Warnings, detects everything as duplicates and then just hangs... My iPhone does not discover these speakers.

Are we doing something wrong, or is this indeed broken in newer DSM / chroot versions?

root@evo6_filer:/# airsonos * WARNING * The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs * WARNING * The program 'nodejs' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs&f=DNSServiceRegister Searching for Sonos devices on network... Setting up AirSonos for Bad {192.168.0.112:1400} Setting up AirSonos for Küche {192.168.0.116:1400} Setting up AirSonos for Bad {192.168.0.112:1400} Setting up AirSonos for Küche {192.168.0.116:1400}

— Reply to this email directly or view it on GitHub.

Tatster commented 9 years ago

Hi FpazHn, No need to be sorry. What's the performance on the raspberry like? Clear continuous streaming? Even for audio that might not necessarily be in mp3 format originally (- should that make a difference)? Will quite happily give the pi a try if you say the quality of the streaming is good. T

FpazHn commented 9 years ago

It is decent. Normally Its decent. Almost no interruptions.

Lately ive been having a problem. The memory of the Raspberry gets full and the service stops (after an hour or more).

I have to restart and works fine after that. I dont know if it is related to airsonos or something else.

I dont think the format of the source file makes a difference.

I recommend the pi.. You can do many things with it. It's a fun and inexpensive piece of hardware.

I havent overclocked the raspberry.

Sent from my iPhone

On Jul 8, 2015, at 9:51 AM, Tatster notifications@github.com wrote:

Hi FpazHn, No need to be sorry. What's the performance on the raspberry like? Clear continuous streaming? Even for audio that might not necessarily be in mp3 format originally (- should that make a difference)? Will quite happily give the pi a try if you say the quality of the streaming is good. T

— Reply to this email directly or view it on GitHub.

flobroed commented 9 years ago

I have also repurposed my Pi (usually running Kodi) and gave it a try. After changing to an older node version (see https://github.com/stephen/airsonos/issues/33) this DID work out and I was actually able to stream to the speakers, BUT

This did only work from my jailbroken 7.x iPad, not from my 8.4 iPhone. The phone did detect the speakers but was not able to connect. With the iPad it takes around 15 secons after pressing play, but then it seems to work fine.

Starting airsonos on the filer it starts well, but the speakers get never discovered on any device.

mrclst commented 9 years ago

I have the same problem. Everything is installed without any errors and after starting airsonos no speakers can be found. I have a DS212j with DSM 5.2-5592. Airsonos is 0.1.1 and Node is 0.10.29 an everything runs under debian chroot.

After starting airsonos I get the following: * WARNING * The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs * WARNING * The program 'nodejs' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs&f=DNSServiceRegister Searching for Sonos devices on network...

Any suggestions?

mattlima commented 9 years ago

I had a similar problem; the dockerized version worked for me.

mrclst commented 9 years ago

dockerized version does not work on DS212j :-(

mattlima commented 9 years ago

That's odd because it's mentioned in the release notes for your OS.

Tatster commented 9 years ago

Docker isn't available for that hardware model - despite what it says on the release notes for DSM 5.2 https://www.synology.com/en-us/dsm/app_packages/Docker

Tatster commented 9 years ago

I ended up forsaking the NAS route and this evening installed on a Raspberry Pi and that works great. Followed the instructions posted by webfuz in this issue #117. Cheaper than upgrading the NAS. The j-series Synology NAS's just don't have the compute power in their processor (won't make that mistake again!)

kami2011 commented 9 years ago

Hi, i have a problem with the installation of the airsonos from github:

root@NAS:/# npm install airsonos -g npm ERR! git clone git://github.com/stephen/node-sonos.git undefined npm ERR! git clone git://github.com/stephen/node-sonos.git undefined npm ERR! not found: git npm ERR! npm ERR! Failed using git. npm ERR! This is most likely not a problem with npm itself. npm ERR! Please check if you have git installed and in your PATH.

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! code ENOGIT npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /npm-debug.log npm ERR! not ok code 0 root@NAS:/#

Steps before was the procedure of "dejongrr". Can anyone help me?

davidmatas commented 9 years ago

@kami2011 Fist of all you need to install git in your Synology: npm ERR! not found: git Take a look if the Git package is available from Package Center.

Then, probably you will also need ipkg for the build. Check what ipkg you need for your Synology model http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc

kami2011 commented 9 years ago

@davidmatas Thank you very much for the quick response. The PackageCenter (Community package) serves Git, but it look like the git server however i installed it and i also installed in debian chroot git "apt-get install git".

Now if i run the npm airsonos installation routine i run into a new error: root@NAS:/# npm install airsonos -g npm WARN engine nodetunes@0.2.1: wanted: {"node":"0.12.x"} (current: {"node":"0.10.29","npm":"1.4.21"}) npm WARN deprecated static-favicon@1.0.2: use serve-favicon module npm WARN optional dep failed, continuing fsevents@1.0.2

mdns@2.2.10 install /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns node-gyp rebuild

make: Entering directory '/usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns/build' CXX(target) Release/obj.target/dns_sd_bindings/src/dns_sd.o In file included from ../src/mdns.hpp:12:0, from ../src/dns_sd.cpp:1: ../node_modules/nan/nan.h:316:47: error: ‘REPLACE_INVALID_UTF8’ is not a member of ‘v8::String’ static const unsigned kReplaceInvalidUtf8 = v8::String::REPLACE_INVALID_UTF8; ^ dns_sd_bindings.target.mk:131: recipe for target 'Release/obj.target/dns_sd_bindings/src/dns_sd.o' failed make: *\ [Release/obj.target/dns_sd_bindings/src/dns_sd.o] Error 1 make: Leaving directory '/usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:267:23) gyp ERR! stack at ChildProcess.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:809:12) gyp ERR! System Linux 2.6.32.12 gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild" gyp ERR! cwd /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/mdns gyp ERR! node -v v0.10.29 gyp ERR! node-gyp -v v0.12.2 gyp ERR! not ok npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian

npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/forge/node_modules/reactify/node_modules/react-tools/src/browser/server/tests/ReactServerRendering-test.js' npm ERR! If you need help, you may report this entire log, npm ERR! including the npm and node versions, at: npm ERR! http://github.com/npm/npm/issues

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/forge/node_modules/reactify/node_modules/react-tools/src/browser/server/tests/ReactServerRendering-test.js npm ERR! fstream_path /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/forge/node_modules/reactify/node_modules/react-tools/src/browser/server/tests/ReactServerRendering-test.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (evalmachine.:107:15) npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/forge/node_modules/jshintify/node_modules/jshint/src/cli.js' npm ERR! If you need help, you may report this entire log, npm ERR! including the npm and node versions, at: npm ERR! http://github.com/npm/npm/issues

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/forge/node_modules/jshintify/node_modules/jshint/src/cli.js npm ERR! fstream_path /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/forge/node_modules/jshintify/node_modules/jshint/src/cli.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (evalmachine.:107:15) npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/usr/local/lib/node_modules/airsonos/node_modules/babel/node_modules/lodash' npm ERR! error rolling back airsonos@0.2.4 { [Error: ENOTEMPTY, rmdir '/usr/local/lib/node_modules/airsonos/node_modules/babel/node_modules/lodash'] npm ERR! error rolling back errno: 53, npm ERR! error rolling back code: 'ENOTEMPTY', npm ERR! error rolling back path: '/usr/local/lib/node_modules/airsonos/node_modules/babel/node_modules/lodash' } npm ERR! mdns@2.2.10 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the mdns@2.2.10 install script. npm ERR! This is most likely a problem with the mdns package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! You can get their info via: npm ERR! npm owner ls mdns npm ERR! There is likely additional logging output above.

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! code ELIFECYCLE npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/icecast-stack/test/dumps/4EverFloyd-3-8192.mp3' npm ERR! If you need help, you may report this entire log, npm ERR! including the npm and node versions, at: npm ERR! http://github.com/npm/npm/issues

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/icecast-stack/test/dumps/4EverFloyd-3-8192.mp3 npm ERR! fstream_path /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/icecast-stack/test/dumps/4EverFloyd-3-8192.mp3 npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (evalmachine.:107:15) npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/node-forge/nodejs/ui/test.min.js' npm ERR! If you need help, you may report this entire log, npm ERR! including the npm and node versions, at: npm ERR! http://github.com/npm/npm/issues

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/node-forge/nodejs/ui/test.min.js npm ERR! fstream_path /usr/local/lib/node_modules/airsonos/node_modules/nodetunes/node_modules/node-forge/nodejs/ui/test.min.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (evalmachine.:107:15) npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/lame/deps/lame/configure' npm ERR! If you need help, you may report this entire log, npm ERR! including the npm and node versions, at: npm ERR! http://github.com/npm/npm/issues

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/lame/deps/lame/configure npm ERR! fstream_path /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/lame/deps/lame/configure npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (evalmachine.:107:15) npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/express/node_modules/connect/node_modules/multiparty/test/fixture/multi_video.upload' npm ERR! If you need help, you may report this entire log, npm ERR! including the npm and node versions, at: npm ERR! http://github.com/npm/npm/issues

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/express/node_modules/connect/node_modules/multiparty/test/fixture/multi_video.upload npm ERR! fstream_path /usr/local/lib/node_modules/airsonos/node_modules/nicercast/node_modules/express/node_modules/connect/node_modules/multiparty/test/fixture/multi_video.upload npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (evalmachine.:107:15) npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/airsonos/node_modules/babel/node_modules/babel-core/browser.js' npm ERR! If you need help, you may report this entire log, npm ERR! including the npm and node versions, at: npm ERR! http://github.com/npm/npm/issues

npm ERR! System Linux 2.6.32.12 npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "airsonos" "-g" npm ERR! cwd / npm ERR! node -v v0.10.29 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/airsonos/node_modules/babel/node_modules/babel-core/browser.js npm ERR! fstream_path /usr/local/lib/node_modules/airsonos/node_modules/babel/node_modules/babel-core/browser.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (evalmachine.:107:15) npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /npm-debug.log npm ERR! not ok code 0 root@NAS:/#

I also tried to install ipkg, should i have to install some packages with ipkg ? Thanks in advance

Finariel commented 9 years ago

Did everything intended - everything works fine except of installing Airsonos. npm install airsonos -g leads to "Illegal Instruction" - Please Help!

bjeanes commented 8 years ago

apt-get kept installing NodeJS 0.10.x for me, even after adding the 0.12.x series sources. I had to explicitly request the right version (which I got from apt-cache policy nodes) with apt-get install nodejs=0.12.9-1nodesource1~jessie1. Unfortunately I couldn't get airsonos to install properly.

In the end I got Airsonos working on my NAS just through docker, using:

$ docker run -d --restart=always --net="host" --name="airsonos" -p 5000-5050:5000-5050/tcp leachbj/airsonos
ben-germany commented 8 years ago

I have a DS214 and docker does not work on this NAS. So i need to go with debian chroot (can be installed via the packet manager of synology, included in their gui) and used the guide from dejongrr in this thread.

Most of the guide worked for me, only thing I missed in the guide was to install git. If you do not, its not possible to install airsonos via npm command. With git installed, i can install airsonos with npm command. When trying to run airsonos i got some error-messages, that my nodejs was wrong version (to old). I updated nodejs to the newest version (got it direct from nodejs)……voila…..airsonos runs with some warnings, but worked perfect.

Last thing to do was run airsonos automatically and for that i used the script from HenkvdM in this thread. Voila….everything worked now. I can reboot NAS and airsonos starts automatically and worked. Only thing u need to do was "airsonos restart" if you add some more Sonos speaker into your environment.

If you have the possibility to run docker on your NAS (e.g. you have a DS414 oder bigger NAS) I would recommend to go this way. Docker can be installed via Synology packet manager and you find a airsonos docker container have all things on board you need to run it with one click.

Thx a lot to dejongrr and HenkvdM, you did a great job !!!!

FpazHn commented 8 years ago

I got pretty close to install it.

I was never able to update nodejs. I tried everything but it seems the compiled versions available were never compatible with the DS211.

At the end i bought a raspberry 2 and that did it for me.

Sent from my iPhone

On Jan 30, 2016, at 5:23 AM, ben-germany notifications@github.com wrote:

I have a DS214 and docker does not work on this NAS. So i need to go with debian chroot (can be installed via the packet manager of synology, included in their gui) and used the guide from dejongrr in this thread.

Most of the guide worked for me, only thing I missed in the guide was to install git. If you do not, its not possible to install airsonos via npm command. With git installed, i can install airsonos with npm command. When trying to run airsonos i got some error-messages, that my nodejs was wrong version (to old). I updated nodejs to the newest version (got it direct from nodejs)……voila…..airsonos runs with some warnings, but worked perfect.

Last thing to do was run airsonos automatically and for that i used the script from HenkvdM in this thread. Voila….everything worked now. I can reboot NAS and airsonos starts automatically and worked. Only thing u need to do was "airsonos restart" if you add some more Sonos speaker into your environment.

If you have the possibility to run docker on your NAS (e.g. you have a DS414 oder bigger NAS) I would recommend to go this way. Docker can be installed via Synology packet manager and you find a airsonos docker container have all things on board you need to run it with one click.

Thx a lot to dejongrr and HenkvdM, you did a great job !!!!

— Reply to this email directly or view it on GitHub.

ben-germany commented 8 years ago

Hi FpazHn,

the nodejs version which was included in debian chroot was v0.10.29 and does not work because airsonos need something > v0.12.0. So you get a lot of errors and warnings with the result airsonos does not work.

If you look into your sources.list (chroot) you will see that you can find in the section "testing" of your debian sources a newer version. (Other way: Its possible to go to the web page of node.js and you find in the download section "latest" a version 5.x.x for the arm processor which you need for the Synology NAS)

I make it short…..you need a newer nodejs and due to some dependencies to other packages like "gym" you should install newer versions. I installed 5 packages.

To see what software I have installed you can use the following command without any danger (it will not install something):

apt-get install -d nodejs/testing npm/testing node-gyp/testing nodes-dev/testing gym/testing

You will see, that e.g. for nodejs the version 4.2.4 compiled for arm cpu will be selected. And much more info. (If someone do that at later date…the version could be newer….)

Now use the command without "-d" and it will install the packages. Then you can install airsonos (you get some warnings, but thats no problem) and it should work without any problems.

I did it on raspberry before…and yes, its a little easier if you have no good knowledge about chroot. But my NAS runs 24/7 and has enough CPU power. I don't want to operate additional hardware 24/7 only for a small help, which could be done by my NAS easily.

Hope that helps and hope you get it work.

Cameron82 commented 8 years ago

Hi @ben-germany - i think I am getting a similar error message on the nodejs with not an up to date version. But I am struggling to update. Can you walk me through how you did this please?

ben-germany commented 8 years ago

Hi Cameron82 have you tried the command within chroot and not busy box: apt-get install -d nodejs/testing npm/testing node-gyp/testing nodes-dev/testing gym/testing and if yes…what was the result?

First lines should (for node.js) look like the following: Reading package lists… Done Building dependency tree Reading state information… Done nodejs is already the newest version. Selected version '4.2.4~dfsg-2' (Debian:testing [armhf]) for 'nodejs' The following packages were automatically installed and are no longer required: libc-ares-dev libc-ares2 libv8-3.14-dev libv8-3.14.5 Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Cameron82 commented 8 years ago

Hi @ben-germany, thanks for the quick response. This is the read out I get...

Cameron82 commented 8 years ago

Reading package lists... Done Building dependency tree
Reading state information... Done E: Release 'testing' for 'nodejs' was not found E: Release 'testing' for 'npm' was not found E: Release 'testing' for 'node-gyp' was not found E: Unable to locate package nodes-dev E: Unable to locate package gym

ben-germany commented 8 years ago

Cameron82, either you was not in chroot or your system looks totally different (e.g. you have other version of chroot). Sorry, i can't not help you with this information (this would end in a endless ping pong communictation), for real help i need to log in into your system. If you were not expert enough to know what to do with the information i wrote before some days I propose to ask a friend with Linux knowledge who can support you.

esstheevau commented 8 years ago

@Cameron82, I ran into the same problems on my Synology DS715 and found a working solution for it: Without digging into it any further I assume certain DiskStation models won't install current versions of nodejs via apt-get (probably due to the Annapurna Alpine architecture they use).

However, you can build and install a current version manually:

  1. Clone the Node repository: git clone https://github.com/nodejs/node.git
  2. Checkout a release tag (e.g. git checkout tags/v0.12.9) as building from the master repo will result in issues when building libalac later
  3. Build Node: ./configure --prefix=/usr/local/bin make make install
  4. Install airsonos: npm install airsonos -g