Roon Extension Manager now included in DietPi (v6.10)

[ OK ] DietPi-Software | Connection test: https://github.com/TheAppgineer/roon-extension-manager-packaging/raw/master/linux/setup.sh
–2018-09-22 18:11:26-- https://github.com/TheAppgineer/roon-extension-manager-packaging/raw/master/linux/setup.sh
Resolving github.com (github.com)… 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/TheAppgineer/roon-extension-manager-packaging/master/linux/setup.sh [following]
–2018-09-22 18:11:26-- https://raw.githubusercontent.com/TheAppgineer/roon-extension-manager-packaging/master/linux/setup.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.16.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.16.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 4121 (4.0K) [text/plain]
Saving to: ‘setup.sh’

setup.sh 100%[========================================================================================================================================>] 4.02K --.-KB/s in 0s

2018-09-22 18:11:26 (9.56 MB/s) - ‘setup.sh’ saved [4121/4121]

roon-extension-manager setup script - version 0.3.1

Checking prerequisites…
OK
Installing extensions…
npm ERR! pna.nextTick is not a function
Unhandled rejection Error: No cache entry for pacote:packed-dir: found in /root/.npm/_cacache
at index.find.then.entry (/usr/local/lib/node_modules/npm/node_modules/cacache/get.js:83:18)
at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18)
at Promise._resolveCallback (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:432:57)
at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:524:17)
at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:689:18)
at Async._drainQueue (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues [as _onImmediate] (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:694:18)

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-09-22T17_11_35_565Z-debug.log
npm ERR! pna.nextTick is not a function
Unhandled rejection Error: No cache entry for pacote:packed-dir: found in /root/.npm/_cacache
at index.find.then.entry (/usr/local/lib/node_modules/npm/node_modules/cacache/get.js:83:18)
at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18)
at Promise._resolveCallback (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:432:57)
at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:524:17)
at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:689:18)
at Async._drainQueue (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues [as _onImmediate] (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:694:18)

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-09-22T17_11_41_292Z-debug.log
–2018-09-22 18:11:41-- https://raw.githubusercontent.com/TheAppgineer/roon-extension-manager-packaging/master/linux/roon-extension-manager.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.16.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.16.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 184 [text/plain]
Saving to: ‘roon-extension-manager.sh’

roon-extension-manager.sh 100%[========================================================================================================================================>] 184 --.-KB/s in 0s

2018-09-22 18:11:41 (2.16 MB/s) - ‘roon-extension-manager.sh’ saved [184/184]

Setting up service…
Created symlink /etc/systemd/system/multi-user.target.wants/roon-extension-manager.service → /etc/systemd/system/roon-extension-manager.service.

Roon Extension Manager installed successfully!
Select Settings->Extensions on your Roon Remote to manage your extensions.

[ SUB1 ] DietPi-Services > stop
[ OK ] DietPi-Services | stop : cron
[ OK ] DietPi-Services | stop : netdata
[ OK ] DietPi-Services | stop : raspotify
[ OK ] DietPi-Services | stop : roon-extension-manager
[ OK ] DietPi-Services | stop : mpd
[ OK ] DietPi-Services | stop : lighttpd
[ OK ] DietPi-Services | stop : php7.0-fpm
[ OK ] DietPi-Services | stop : mysql
[ OK ] DietPi-Services | stop : avahi-daemon

DietPi-Software
─────────────────────────────────────────────────────
Mode: Optimize and configure software

[ INFO ] DietPi-Software | Applying DietPi optimizations and configurations for Sparky SBC (armv7l), please wait…

DietPi-Software
─────────────────────────────────────────────────────
Mode: Configuring Roon Extension Manager: Manage extensions from within Roon

[ SUB1 ] DietPi-Services > dietpi_controlled
[ OK ] DietPi-Services | dietpi_controlled : avahi-daemon
[ OK ] DietPi-Services | dietpi_controlled : mysql
[ OK ] DietPi-Services | dietpi_controlled : php7.0-fpm
[ OK ] DietPi-Services | dietpi_controlled : lighttpd
[ OK ] DietPi-Services | dietpi_controlled : mpd
[ OK ] DietPi-Services | dietpi_controlled : roon-extension-manager
[ OK ] DietPi-Services | dietpi_controlled : raspotify
[ OK ] DietPi-Services | dietpi_controlled : netdata
[ OK ] DietPi-Services | dietpi_controlled : cron
[ OK ] DietPi-Survey | Connection test: ssh.dietpi.com

DietPi-Software
─────────────────────────────────────────────────────
Mode: Installation completed

[ SUB1 ] DietPi-Services > start
[ OK ] DietPi-Services | start : avahi-daemon
[ OK ] DietPi-Services | start : mysql
[ OK ] DietPi-Services | start : php7.0-fpm
[ OK ] DietPi-Services | start : lighttpd
[ OK ] DietPi-Services | start : mpd
[ OK ] DietPi-Services | start : roon-extension-manager
[ OK ] DietPi-Services | start : raspotify
[ OK ] DietPi-Services | start : netdata
[ OK ] DietPi-Services | start : cron
[ SUB2 ] DietPi-Process_tool > Apply
[ OK ] DietPi-Process_tool | Completed
root@Allo:~# systemctl status roon-extension-manager.service
● roon-extension-manager.service - Roon Extension Manager
Loaded: loaded (/etc/systemd/system/roon-extension-manager.service; disabled; vendor preset: enabled)
Active: failed (Result: start-limit-hit) since Sat 2018-09-22 18:12:03 BST; 19s ago
Process: 19496 ExecStart=/root/.RoonExtensions/lib/roon-extension-manager.sh (code=exited, status=0/SUCCESS)
Main PID: 19496 (code=exited, status=0/SUCCESS)

Sep 22 18:12:03 Allo systemd[1]: roon-extension-manager.service: Service hold-off time over, scheduling restart.
Sep 22 18:12:03 Allo systemd[1]: Stopped Roon Extension Manager.
Sep 22 18:12:03 Allo systemd[1]: roon-extension-manager.service: Start request repeated too quickly.
Sep 22 18:12:03 Allo systemd[1]: Failed to start Roon Extension Manager.
Sep 22 18:12:03 Allo systemd[1]: roon-extension-manager.service: Unit entered failed state.
Sep 22 18:12:03 Allo systemd[1]: roon-extension-manager.service: Failed with result ‘start-limit-hit’.
root@Allo:~#

node is v10.11.0

That’s in combination with npm 6.4.1, right?

The cause of the problem seems to be an incompatibility between node and npm.

Is there any difference when you uninstall both the Extension Manager and Node.js and then reinstall?

Nope that’s what I did for that post. Its an automated install via the dietpi-software menu. I wonder if npm wont update due to the kernel being so old on the Sparky?

Hi Simon,

I was unable to replicate this on the current Allo GUI Sparky image with v6.16:

root@DietPi:~# systemctl status roon-extension-manager.service -l
● roon-extension-manager.service - Roon Extension Manager
   Loaded: loaded (/etc/systemd/system/roon-extension-manager.service; disabled;
 vendor preset: enabled)
   Active: active (running) since Mon 2018-09-24 13:24:40 BST; 38s ag
o
 Main PID: 19696 (roon-extension-)
   CGroup: /system.slice/roon-extension-manager.service
           ├─19696 /bin/sh /root/.RoonExtensions/lib/roon-extension-manager.sh
           └─19699 node . ignore service

Sep 24 13:24:40 DietPi systemd[1]: Started Roon Extension Manager.

This is also running node v10.11.0 and npm 6.4.1

Try reinstalling node:

  • Backup your system 1st with
dietpi-backup
  • Uninstall node:
dietpi-software uninstall 9; rm -r /usr/local/lib/node_modules
  • Reinstall node with:
dietpi-software install 9
1 Like

Will try that tonight @Dan_Knight, thanks for the tip.

After all the instability I’ve had running extensions on my Windows core, I thought I would try to run Extension Manager on one of my RPi endpoints. I installed it through DietPi-software and it shows up in Roon. However, I’m having two issues:

  1. The Denon/Marantz extension won’t install. It just gives the error below.

  2. I was able to install the Harmony extension and choose my Harmony in the extension settings, but it does not show up as a source control option in audio settings.

How do I begin to troubleshoot these issues? I’m not even sure where the log files live in DietPi. (I’m using an RPi 3+ with non-GUI DietPi. I updated to the latest version and rebooted just this morning.)

image

If you enable ssh in DietPi then you can use PuTTY to connect to it. The log files are in:

/root/.RoonExtensions/lib/log

PuTTY should also include an scp command that allows you to copy the log files over to your PC. The command should be something like:

scp root@<ip>:/root/.RoonExtensions/lib/log/roon-extension-manager.log <local directory>

You have to enable logging on the Extension Manager first, like you did for your Windows setup.

Some scp / PuTTY info:

https://success.tanaza.com/s/article/How-to-use-SCP-command-on-Windows

After all the instability I’ve had running extensions on my Windows core, I thought I would try to run Extension Manager on one of my RPi endpoints. I installed it through DietPi-software and it shows up in Roon. However, I’m having two issues:

  1. The Denon/Marantz extension won’t install. It just gives the error below.
  2. I was able to install the Harmony extension and choose my Harmony in the extension settings, but it does not show up as a source control option in audio settings.

How do I begin to troubleshoot these issues? I’m not even sure where the log files live in DietPi. (I’m using an RPi 3+ with non-GUI DietPi. I updated to the latest version and rebooted just this morning.)

image

exactly the same problem I have too

In my previous post I described how to get the log file. Can you take these steps?

I tried it, but I did not manage it.

What was it that failed?

root@DietPi:~# scp root@192.168.188.42:21:/root/.RoonExtensions/lib/log/roon-extension-manager.log
-bash: scp: Kommando nicht gefunden.

@Andy_Spinks, @Jense,

I can reproduce the Denon install issue, I have to dive into it…

1 Like

That would be very good.

Hopefully you can fix the problem.

Thanks, @Jan_Koudijs! I was able to set up logging and start generating a log file, but I couldn’t get the log file transferred to Windows. I installed Putty and tried multiple variations of the SCP, PSCP, and PSFTP commands without success. Since then I haven’t had a chance to get back to it.

For what it’s worth, I tried Extension Manager on a Sparky SBC running DietPi, and the Denon Extension installed OK there. (DietPi on the Sparky uses a different version of Linux, I believe.)

The problem has been reported before but i forgot about it:

It remains a mystery to me why the postinstall script runs on some platforms but does not on others, even with the same npm and Node.js versions :confused:

Only thing I can come up with at this moment is something that might be a workaround:

  • Connect to your DietPi using ssh
    ssh root@<ip address>
  • Install the Denon extension manually with the --ignore-scripts option
    npm install --ignore-scripts -g https://github.com/docbobo/roon-extension-denon.git
  • Now get to the Extension Manager on your Roon Remote, select the Extension Manager from the System category and perform the Restart action
  • Open the Extension Manager again and go the the Denon extension, it should be reported as Stopped. You can now perform the Start action.

With these steps I get it running on DietPi but I don’t know if it works correctly as I don’t own a Denon or Marantz receiver.

@Jense, @Andy_Spinks, please let me know if this works.

1 Like

The workaround worked for me.
Thank you for your effort.
everything works now

1 Like

Hi Jan,
Sorry I forgot to reply earlier. This workaround got me up and running. It did crash at some point over the last few days, but I was able to set it up again. I restarted it with logging this time in case it crashes again. Thanks yet again!