Raspberry Pi で bbc-microbit-io のインストールエラー
環境
Raspbian GNU/Linux 9.11 (stretch))
Python 2.7
node v8.9.4 (nvm)
npm v5.6.0
以下のページを参考にインストールしました。
https://github.com/sandeepmistry/node-bbc-microbit-io
npm install bbc-microbit-io johnny-five
そして~/node_modules/bbc-microbit-io/examples/に移動し
$ sudo node led-matrix.js
を実行すると以下のようなエラーを吐きました。
Error: Cannot find module '../build/Release/binding.node'
at Function.Module._resolveFilename (module.js:538:15)
at Function.Module._load (module.js:468:25)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/pi/node_modules/bluetooth-hci-socket/lib/native.js:3:15)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
上手くインストールできていないのだと思い
sudo npm install
を実行
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: xpc-connection@0.1.4 (node_modules/xpc-connection):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for xpc-connection@0.1.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
以下のようなメッセージが出ました。
再度
$ sudo node led-matrix.js
を実行しても結果は同じでした。
strace で詳細を調べてみたところ、エラーメッセージの直前で
stat64("/home/pi/node_modules/bluetooth-hci-socket/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/pi/node_modules/bluetooth-hci-socket/build/Release/binding.node", 0x7ef73520) = -1 ENOENT (No such file or directory)
stat64("/home/pi/node_modules/bluetooth-hci-socket/build/Release/binding.node.js", 0x7ef73480) = -1 ENOENT (No such file or directory)
stat64("/home/pi/node_modules/bluetooth-hci-socket/build/Release/binding.node.json", 0x7ef73480) = -1 ENOENT (No such file or directory)
stat64("/home/pi/node_modules/bluetooth-hci-socket/build/Release/binding.node.node", 0x7ef73480) = -1 ENOENT (No such file or directory)
と表示されていたため、bluetooth-hci-socket/build/Release/binding.nodeが存在しないことが原因だと突き止めることができました。
そこでbuild するために
sudo npm build /home/pi/node_modules/bluetooth-hci-socket/
npm WARN lifecycle bluetooth-hci-socket@0.5.1~install:
cannot run in wd %s %s (wd=%s) bluetooth-hci-socket@0.5.1
node-gyp rebuild /home/pi/node_modules/bluetooth-hci-socket
このような警告が出て結局再度トライしても治らず、