SerialPort with node v8.10.0?
-
I'm trying to get the npm package serialport to work with the latest firmware, npm v5.6.0 and node v8.10.0, but to my knowledge there isn't any precompiled binaries for this version. I've tried building from source, but get this output where ld returns with an error /usr/bin/ld: cannot find -lpthread.
BusyBox v1.28.3 () built-in shell (ash) ****____ _ ____ / __ \___ (_)__ ___ / __ \__ _ ___ ___ ____ _ / /_/ / _ \/ / _ \/ _ \ / /_/ / ' \/ -_) _ `/ _ `/ \____/_//_/_/\___/_//_/ \____/_/_/_/\__/\_, /\_,_/ W H A T W I L L Y O U I N V E N T ? /___/ -----------------------------------------------------**** O-ware: 0.3.2 b218 ----------------------------------------------------- root@Omega-2F49:~# node --max_old_space_size=64 $(which npm) install serialport --unsafe-perm --build-from-source > @serialport/bindings@2.0.7 install /root/node_modules/@serialport/bindings > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild make: Entering directory '/root/node_modules/@serialport/bindings/build' CXX(target) Release/obj.target/bindings/src/serialport.o CXX(target) Release/obj.target/bindings/src/serialport_unix.o CXX(target) Release/obj.target/bindings/src/poller.o CXX(target) Release/obj.target/bindings/src/serialport_linux.o SOLINK_MODULE(target) Release/obj.target/bindings.node /usr/bin/ld: cannot find -lpthread collect2: error: ld returned 1 exit status make: *** [bindings.target.mk:128: Release/obj.target/bindings.node] Error 1 make: Leaving directory '/root/node_modules/@serialport/bindings/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_module s/node-gyp/lib/build.js:262:23) gyp ERR! stack at emitTwo (events.js:126:13) gyp ERR! stack at ChildProcess.emit (events.js:214:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_proces s.js:198:12) gyp ERR! System Linux 4.14.81 gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gy p/bin/node-gyp.js" "rebuild" gyp ERR! cwd /root/node_modules/@serialport/bindings gyp ERR! node -v v8.10.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok npm WARN enoent ENOENT: no such file or directory, open '/root/package.json' npm WARN root No description npm WARN root No repository field. npm WARN root No README data npm WARN root No license field. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @serialport/bindings@2.0.7 install: `prebuild-install --tag-prefix @ser ialport/bindings@ || node-gyp rebuild` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @serialport/bindings@2.0.7 install script. npm ERR! This is probably not a problem with npm. There is likely additional log ging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2019-03-19T08_25_29_634Z-debug.log
If I try to
opkg install libpthread
I get
Package libpthread (1.1.19-1) installed in root is up to date.
I have the latest versions of make (4.2.1-2) and gcc version 5.4.0 (OpenWrt GCC 5.4.0) with threadmodel: posix
Did anyone else have luck installing serialport or know how to do it, or do I have to bite the dust and use older firmware to get an older, working package?
regards
-
I ran into this problem a couple of weeks ago and just now had time to dig into it a little more, I found a thread that provided this solution:
run
ar -rc /usr/lib/libpthread.a
to create an archive file that is missing.Also, for serialport specifically it looks like someone has tackled that:
https://community.onion.io/topic/1537/serial-ports-usb-and-nodejs-support