503 HTA Tube Amp GPIO Plugin fails to start

I downloaded and installed the latest Volumio version yesterday and tried installing the 503 HTA Tube Amp GPIO Plugin and noticed that the plugin is failing to start. It appears there is a Node.js version issue:

Mar 26 17:09:32 ryan-volumio volumio[1007]: info: Enabling plugin 503_hta_tube_amp
Mar 26 17:09:32 ryan-volumio volumio[1007]: info: Loading plugin "503_hta_tube_amp"...
Mar 26 17:09:32 ryan-volumio volumio[1007]: error: !!!! WARNING !!!!
Mar 26 17:09:32 ryan-volumio volumio[1007]: error: The plugin miscellanea/503_hta_tube_amp failed to load, setting it to stopped. Error: Error: The module '/data/plugins/miscellanea/503_hta_tube_amp/node_modules/epoll/build/Release/epoll.node'
Mar 26 17:09:32 ryan-volumio volumio[1007]: was compiled against a different Node.js version using
Mar 26 17:09:32 ryan-volumio volumio[1007]: NODE_MODULE_VERSION 48. This version of Node.js requires
Mar 26 17:09:32 ryan-volumio volumio[1007]: NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
Mar 26 17:09:32 ryan-volumio volumio[1007]: the module (for instance, using `npm rebuild` or `npm install`).
Mar 26 17:09:32 ryan-volumio volumio[1007]: error: Stack trace: Error: The module '/data/plugins/miscellanea/503_hta_tube_amp/node_modules/epoll/build/Release/epoll.node'
Mar 26 17:09:32 ryan-volumio volumio[1007]: was compiled against a different Node.js version using
Mar 26 17:09:32 ryan-volumio volumio[1007]: NODE_MODULE_VERSION 48. This version of Node.js requires
Mar 26 17:09:32 ryan-volumio volumio[1007]: NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
Mar 26 17:09:32 ryan-volumio volumio[1007]: the module (for instance, using `npm rebuild` or `npm install`).
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Object.Module._extensions..node (module.js:681:18)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Module.load (module.js:565:32)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at tryModuleLoad (module.js:505:12)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Function.Module._load (module.js:497:3)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Module.require (module.js:596:17)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at require (internal/module.js:11:18)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at bindings (/data/plugins/miscellanea/503_hta_tube_amp/node_modules/bindings/bindings.js:76:44)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Object.<anonymous> (/data/plugins/miscellanea/503_hta_tube_amp/node_modules/epoll/epoll.js:1:99)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Module._compile (module.js:652:30)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Object.Module._extensions..js (module.js:663:10)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Module.load (module.js:565:32)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at tryModuleLoad (module.js:505:12)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Function.Module._load (module.js:497:3)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Module.require (module.js:596:17)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at require (internal/module.js:11:18)
Mar 26 17:09:32 ryan-volumio volumio[1007]: at Object.<anonymous> (/data/plugins/miscellanea/503_hta_tube_amp/node_modules/onoff/onoff.js:4:11)
Mar 26 17:09:32 ryan-volumio volumio[1007]: error: !!!! WARNING !!!!
Mar 26 17:09:32 ryan-volumio volumio[1007]: info: Done.

Hi Ryan, welcome to Volumio & the forum.

What device and Volumio version are you using (please include by default when posting for help)?

Volumio 2.873
Raspberry Pi 3 Model B Plus Rev 1.3
HiFiBerry DAC
Pi2Media 503HTA

Does anyone have any thoughts here? I’m not terribly familiar with node.js

Aren’t all the modules recompiled when a new Volumio release is made? Is it possible for me to recompile this?

You should be able to compile epoll quite simply –

sudo apt install build-essentials 
cd /data/plugins/miscellanea/503_hta_tube_amp/
npm install 

But from a quick peek at the plugin’s package.json, all the dependencies are already included in Volumio’s base installation. So it would be simplerto symlink the plugin’s node_modules dir to /volumio/node_modules that already contains the correct compiled version of epoll required by onoff.

So something like:

ln -s /volumio/node_modules/ /data/plugins/miscellanea/503_hta_tube_amp/

And to tidy up, you can edit the 503_hta_tube_amp/package.json to reflect the same version of onff as in /volumio/node_modules/ – "onoff": "^5.0.1".