serialport / node-serialport

Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!
https://serialport.io
MIT License
5.81k stars 1.01k forks source link

Build fails on Raspberry Pi #180

Closed myrtleTree33 closed 10 years ago

myrtleTree33 commented 11 years ago

Hello,

I have downloaded the Node binaries for 0.8.* and 0.10.12 , and have installed Node on the Raspberry Pi. However, gyp-rebuild fails when I execute npm install -g serialport on the Pi. I was previously able to execute this 2 weeks back.

The error output as follows:

includes, True, check) File "/usr/local/lib/node_modules/serialport/.node-gyp/0.8.11/tools/gyp/pylib/gyp/input.py", line 208, in LoadOneBuildFile raise Exception("%s not found (cwd: %s)" % (build_file_path, os.getcwd())) Exception: binding.gyp not found (cwd: /usr/local/lib/node_modules/serialport/build) while trying to load binding.gyp make: *\ [Makefile] Error 1 make: Leaving directory /usr/local/lib/node_modules/serialport/build' gyp ERR! build error gyp ERR! stack Error:makefailed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:219:23) gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:96:17) gyp ERR! stack at Process._handle.onexit (child_process.js:678:10) gyp ERR! System Linux 3.6.11+ gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /usr/local/lib/node_modules/serialport gyp ERR! node -v v0.8.11 gyp ERR! node-gyp -v v0.6.11 gyp ERR! not ok npm ERR! serialport@1.1.1 install:node-gyp rebuild npm ERR!sh "-c" "node-gyp rebuild"` failed with 1 npm ERR! npm ERR! Failed at the serialport@1.1.1 install script. npm ERR! This is most likely a problem with the serialport 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 serialport npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.6.11+
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "serialport"
npm ERR! cwd /home/pi/repos/node-v0.8.11
npm ERR! node -v v0.8.11
npm ERR! npm -v 1.1.62
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/pi/repos/node-v0.8.11/npm-debug.log
npm ERR! not ok code 0
voodootikigod commented 11 years ago

Setting up a test scenario right now with NOOBS (new-out-of-box system) wheezy at 2013-05-25. I will post all my instructions here.

Just to clarify this is test RAW serialport or serialport used via johnny five?

myrtleTree33 commented 11 years ago

Hello,

I have reflashed the Pi and redone the builds - it is working now. Thanks.

Sorry for the trouble - spent a day debugging. Perhaps something went wrong with the installation / tmp files.

Thanks,

voodootikigod commented 11 years ago

so all is ok now?

SUCCESS!

On Thu, Jun 27, 2013 at 10:29 AM, toiletfreak notifications@github.comwrote:

Hello,

I have reflashed the Pi and redone the builds - it is working now. Thanks.

Sorry for the trouble - spent a day debugging. Perhaps something went wrong with the installation / tmp files.

Thanks,

— Reply to this email directly or view it on GitHubhttps://github.com/voodootikigod/node-serialport/issues/180#issuecomment-20123327 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

myrtleTree33 commented 11 years ago

Yes - Thank you!

node 0.10.x works too BTW!

voodootikigod commented 11 years ago

w00t

On Thu, Jun 27, 2013 at 10:31 AM, toiletfreak notifications@github.comwrote:

Yes - Thank you!

node 0.10.x works too BTW!

— Reply to this email directly or view it on GitHubhttps://github.com/voodootikigod/node-serialport/issues/180#issuecomment-20123475 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

myrtleTree33 commented 11 years ago

Oh dear, I tried it this morning at work and the error reappeared. The same procedure I used to installed was performed - reflashing OS, running the shell script.

I suspect the problem could be down to incompatibility with Raspi Model A (0002)? A dump of the board processes as follow:

npm http GET https://registry.npmjs.org/serialport npm http 304 https://registry.npmjs.org/serialport npm http GET https://registry.npmjs.org/bindings/1.1.0 npm http GET https://registry.npmjs.org/async/0.1.18 npm http GET https://registry.npmjs.org/sf/0.1.6 npm http GET https://registry.npmjs.org/optimist npm http 304 https://registry.npmjs.org/async/0.1.18 npm http 304 https://registry.npmjs.org/optimist npm http 304 https://registry.npmjs.org/sf/0.1.6 npm http 304 https://registry.npmjs.org/bindings/1.1.0 npm http GET https://registry.npmjs.org/wordwrap npm http 304 https://registry.npmjs.org/wordwrap /usr/local/bin/serialportlist -> /usr/local/lib/node_modules/serialport/bin/serialportList.js /usr/local/bin/serialportterm -> /usr/local/lib/node_modules/serialport/bin/serialportTerminal.js

> serialport@1.1.1 install /usr/local/lib/node_modules/serialport
> node-gyp rebuild

make: Entering directory `/usr/local/lib/node_modules/serialport/build'
make: Warning: File `../../../../../../root/.node-gyp/0.10.12/common.gypi' has modification time 1.1e+07 s in the future
  ACTION Regenerating Makefile
gyp: binding.gyp not found (cwd: /usr/local/lib/node_modules/serialport/build) while trying to load binding.gyp
make: *** [Makefile] Error 1
make: Leaving directory `/usr/local/lib/node_modules/serialport/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Linux 3.6.11+
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/serialport
gyp ERR! node -v v0.10.12
gyp ERR! node-gyp -v v0.10.0
gyp ERR! not ok 
npm ERR! weird error 1
npm ERR! not ok code 0
Processor   : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS    : 464.48
Features    : swp half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xb76
CPU revision    : 7

Hardware    : BCM2708
Revision    : 0002
Serial      : 0000000059dbf8a4
voodootikigod commented 11 years ago

unlikely, but i don't have one local to verify (only Rev B).

aurangzaib commented 11 years ago

@toiletfreak firstly why you need serialport as global. modules are installed globally when you need to have them in REPL, modules are installed locally when you need to have them in script file. to installed globally => sudo -i npm install serialport -g to installed locally => npm install serialport

i tested it on raspi model B

myrtleTree33 commented 11 years ago

@aurangzaib They are installed global so npm link is sufficient, if they are needed for multiple project builds. Waiting for GET / build takes up time - something of a preference.

Tested on Raspi Model A / B, is working. However, this does not appear to work on older Raspis tested at my workplace.

Solution that worked for me: Just upgrade the pi, if you can =P

voodootikigod commented 11 years ago

are there older RPIs than A/B??? Tell me more...

On Wed, Aug 14, 2013 at 12:01 AM, toiletfreak notifications@github.comwrote:

@aurangzaib https://github.com/aurangzaib They are installed global so npm link is sufficient, if they are needed for multiple project builds. Waiting for GET / build takes up time - something of a preference.

Tested on Raspi Model A / B, is working. However, this does not appear to work on older Raspis tested.

— Reply to this email directly or view it on GitHubhttps://github.com/voodootikigod/node-serialport/issues/180#issuecomment-22613781 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

myrtleTree33 commented 11 years ago

@voodootikigod Yeah, see http://elinux.org/Rpi_HardwareHistory and http://elinux.org/RPi_General_History

Boards have been revised.. The difference between the A / B is the Qualcomm chip and ethernet slot.

LowPowerLab commented 11 years ago

+1 from me - it doesn't build with node 0.11.6 (on latest wheezy sept-10-13), exits with loads of errors. Had to revert back to node 0.10.12

xseignard commented 10 years ago

I had the same error here, then I noticed that part of the error message :

has modification time 1.1e+07 s in the future

oh wait??!! Am I Marty McFly?? No I guess not, so I typed the date command and... tada wrong date! Since the raspberry pi has no internal clock, it keeps the last date ntp served .

So if your ntp conf is messed, you won't be able to install something newer than your current date on the pi.

You need to change the /etc/ntp.conf to point to a real server pool:

All of that with an internet connection obviously! It may take a few minutes for the date to update

And then you're good!

JayBeavers commented 10 years ago

Looks like @xseignard has figured out the issue above. @LowPowerLab , node 0.11.x is not supported, only 0.10.x.

Closing, please reopen if @xseignard's observation about setting the time properly isn't the root cause of the problem.

xixixao commented 10 years ago

@JayBeavers No chance of getting node 0.11.5 working on the RPi? I am getting:

node: symbol lookup error: node_modules/serialport/build/Release/serialport.node: undefined symbol: _ZNK2v85Value7ToInt32Ev
reconbot commented 10 years ago

I wouldn't saw we'll never support it but we'll probably skip 11as it's unstable. We endevor to support every stable release. I imagine we'll have similar issues with 12 so that may fix 11. We recently introduced nan so whatever version incompatibilities it solves for us is what we'll get.

Your error however doesn't seem like such a big deal, but I don't know enough about how one might solve it.

xixixao commented 10 years ago

Yeah, I'd file a PR, but that message is absolutely cryptic to me and I don't have the slightest understanding of how it's supposed to work. I am moving to 10 with traceur.

programmarchy commented 10 years ago

The undefined symbol is just munged by C++, and is probably the ToInt32() method… e.g. https://github.com/voodootikigod/node-serialport/blob/b68a15dbd4877a503612299b15eb6123ecd2847e/src/serialport.cpp#L45

This is probably a linker issue. Could you have compiled the module with an older version of node? If so, you'll need to recompile the module with node 0.11.5

On Thursday, January 30, 2014 at 6:01 PM, Michal Srb wrote:

Yeah, I'd file a PR, but that message is absolutely cryptic to me and I don't have the slightest understanding of how it's supposed to work. I am moving to 10 with traceur.

— Reply to this email directly or view it on GitHub (https://github.com/voodootikigod/node-serialport/issues/180#issuecomment-33752831).

programmarchy commented 10 years ago

May be relevant:

https://github.com/TooTallNate/node-gyp/issues/353

On Thursday, January 30, 2014 at 6:07 PM, Donald Ness wrote:

The undefined symbol is just munged by C++, and is probably the ToInt32() method… e.g. https://github.com/voodootikigod/node-serialport/blob/b68a15dbd4877a503612299b15eb6123ecd2847e/src/serialport.cpp#L45

This is probably a linker issue. Could you have compiled the module with an older version of node? If so, you'll need to recompile the module with node 0.11.5

On Thursday, January 30, 2014 at 6:01 PM, Michal Srb wrote:

Yeah, I'd file a PR, but that message is absolutely cryptic to me and I don't have the slightest understanding of how it's supposed to work. I am moving to 10 with traceur.

— Reply to this email directly or view it on GitHub (https://github.com/voodootikigod/node-serialport/issues/180#issuecomment-33752831).

JSubat commented 10 years ago

OK... I downloaded new Debian: RASPBIAN Debian Wheezy Version:June 2014 Release date:2014-06-20 And install again everything. And now... It works!!!

Unfortunately I have no clue why...

voodootikigod commented 10 years ago

Success!!!

On Wednesday, August 6, 2014, JSubat notifications@github.com wrote:

OK... I downloaded new Debian: RASPBIAN Debian Wheezy Version:June 2014 Release date:2014-06-20 And install again everything. And now... It works!!!

Unfortunately I have no clue why...

— Reply to this email directly or view it on GitHub https://github.com/voodootikigod/node-serialport/issues/180#issuecomment-51368277 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHub http://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | RobotsConf http://robotsconf.com/ | RobotsWeekly http://robotsweekly.com/

Help me end the negativity on the internet, share this http://jsconf.eu/2011/an_end_to_negativity.html.