You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
io.js armv7l build isn't working on the BeagleBone Black #349
I'm using iojs-v1.0.0-nightly201501135ea716d895-linux-armv7l on Debian Wheezy (default image for BBB) and this comes with eglibc instead of glibc
root@beaglebone:~/iojs/bin# ./iojs
./iojs: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.16' not found (required by ./iojs)
./iojs: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.15' not found (required by ./iojs)
root@beaglebone:~/iojs/bin# lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
yes, still an issue, I'd love to have a couple of BBB boards donated to the project so we can integrate them to CI and produce builds based on an older Linux distro on armv7
the only other resolution is for me to come up with a way to produce builds on the current armv7 box but linking to an older libc, which I started on but is not a simple afternoon job.
Maybe I should just not use Debian Wheezy? I recently ran into this glibc issue both on a BeagleBone Black and on my local Debian install on my rooted Android tablet. Should I switch to a different OS with more up-to-date libraries or something? If so, which Linux distribution that is ARM compatible works with io.js?
I think I have a way to fix this, http://cloud.online.net/ offer a Wheezy version on their ARMv7 machines, I just need to find some time to work on this and hook it up to CI. If it works, then the binaries should be compiled against a much older libc and in theory would work on the standard BBB distro (I think).
@rvagg Another solution could be creating a cross-compile host which would allow for more "exotic" flavours. Not sure how many we'd actually need, but it's not very hard to setup. I guess we can have it in mind as the build team progresses.
@fivdi thanks.. I have found Ubuntu packages to generally be more up-to-date before. Was just going with Debian because I thought it might be a lighter-weight option but I keep running into issues with packages so I may go back to Ubuntu.
@rvagg talked with people from BeagleBoard and current image will be deprecated, will test binary with new one, also will work on getting io.js bundled on the new image.
With my Vagrant VM setup for running Docker ARM containers, I noticed the issue using a Docker image based on Debian Wheezy, but not when using Debian Jessie. I know the current default BBB image is based on Wheezy, but it looks like the issue will go away once Jessie becomes standard.
surely you jest! Wheezy will live longer than you and I ..
The priority for the @iojs/build team re ARMv7 is to start building releases on a Wheezy-based OS. I think the easiest path there is to just start using a Wheezy image on Online Labs.
It's definitely looking a lot better. Here's the output of a few commands on a BeagleBone Black using the latest Recommended Debian Wheezy 7.8 Image:
debian@beaglebone:~$ uname -a
Linux beaglebone 3.8.13-bone70 #1 SMP Fri Jan 23 02:15:42 UTC 2015 armv7l GNU/Linux
debian@beaglebone:~$
debian@beaglebone:~$ lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
debian@beaglebone:~$
debian@beaglebone:~$ iojs -v
v2.3.1-nightly2015061696165f9be2
debian@beaglebone:~$
debian@beaglebone:~$ node -v
v2.3.1-nightly2015061696165f9be2
debian@beaglebone:~$
debian@beaglebone:~$ node
> console.log("Hello, World!")
Hello, World!
undefined
>
(^C again to quit)
>
debian@beaglebone:~$
This is the first time I've worked with a nightly build and I haven't figured out how to get npm/gyp to install addons yet. For example, below is the output of npm install onoff. onoff depends on the addon epoll, and in order to compile it, gyp tries to download iojs-v2.3.1-nightly2015061696165f9be2.tar.gz from https://iojs.org/dist/v2.3.1-nightly2015061696165f9be2. It gets a 404 because it's not there. io.js doesn't have it's nightlies at https://iojs.org/dist/, it has them at https://iojs.org/download/nightly/. Maybe npm/gyp have an option for this, but I haven't found it yet.
debian@beaglebone:~/dev/onoff$ npm install onoff
npm WARN engine onoff@1.0.2: wanted: {"node":">=0.8.0"} (current: {"node":"2.3.1-nightly2015061696165f9be2","npm":"2.11.2"})
npm WARN engine epoll@0.1.13: wanted: {"node":">=0.8.0"} (current: {"node":"2.3.1-nightly2015061696165f9be2","npm":"2.11.2"})
\
> epoll@0.1.13 install /home/debian/dev/onoff/node_modules/onoff/node_modules/epoll
> node-gyp rebuild
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 response dowloading https://iojs.org/dist/v2.3.1-nightly2015061696165f9be2/iojs-v2.3.1-nightly2015061696165f9be2.tar.gz
gyp ERR! stack at Request.<anonymous> (/home/debian/opt/iojs-v2.3.1-nightly/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:251:14)
gyp ERR! stack at emitOne (events.js:82:20)
gyp ERR! stack at Request.emit (events.js:169:7)
gyp ERR! stack at Request.onRequestResponse (/home/debian/opt/iojs-v2.3.1-nightly/lib/node_modules/npm/node_modules/request/request.js:1142:10)
gyp ERR! stack at emitOne (events.js:77:13)
gyp ERR! stack at ClientRequest.emit (events.js:169:7)
gyp ERR! stack at HTTPParser.parserOnIncomingClient (_http_client.js:415:21)
gyp ERR! stack at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
gyp ERR! stack at TLSSocket.socketOnData (_http_client.js:305:20)
gyp ERR! stack at emitOne (events.js:77:13)
gyp ERR! System Linux 3.8.13-bone70
gyp ERR! command "/home/debian/opt/iojs-v2.3.1-nightly/bin/iojs" "/home/debian/opt/iojs-v2.3.1-nightly/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/debian/dev/onoff/node_modules/onoff/node_modules/epoll
gyp ERR! node -v v2.3.1-nightly2015061696165f9be2
gyp ERR! node-gyp -v v2.0.1
gyp ERR! not ok
npm ERR! Linux 3.8.13-bone70
npm ERR! argv "/home/debian/opt/iojs-v2.3.1-nightly/bin/iojs" "/home/debian/opt/iojs-v2.3.1-nightly/bin/npm" "install" "onoff"
npm ERR! node v2.3.1-nightly2015061696165f9be2
npm ERR! npm v2.11.2
npm ERR! code ELIFECYCLE
npm ERR! epoll@0.1.13 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the epoll@0.1.13 install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the epoll 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 epoll
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/debian/dev/onoff/npm-debug.log
debian@beaglebone:~/dev/onoff$
you can grab the source for the nightly and stick it in ~/.node-gyp/ with the appropriate name and it'll work, alternatively use --nodedir /path/to/source when using node-gyp or npm install and it should be fine
... working towards making this actually work without hackery but we're not there yet
@rvagg the v2.3.1 nightlies are coming out of a Wheezy-based ARMv7 machine, but v2.3.1 release didn't. Will release builds come out of a Wheezy-based ARMv7 machine in the future?
new release job that we're now using for nightlies, next-nightlies, rcs and releases is using the new Wheezy-based ARMv7 build machine so expect v2.3.2 to have a binary that works on older linuxes.
Tried out a few modules and addons and everything functioned as expected.
argv.push('--no-parallel')here in node-gyp still needs to be commented out to avoid the error below when addons are installed. There's already a few issues over at node-gyp related to the topic, for example, nodejs/node-gyp#426, nodejs/node-gyp#434, and nodejs/node-gyp#651
debian@beaglebone:~/dev/lcd$ npm install lcd
-
> epoll@0.1.13 install /home/debian/dev/lcd/node_modules/lcd/node_modules/onoff/node_modules/epoll
> node-gyp rebuild
Usage: gyp_main.py [options ...] [build_file ...]
gyp_main.py: error: no such option: --no-parallel
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 2
gyp ERR! stack at ChildProcess.onCpExit (/home/debian/opt/iojs-v2.3.2/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:355:16)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.8.13-bone70
gyp ERR! command "/home/debian/opt/iojs-v2.3.2/bin/iojs" "/home/debian/opt/iojs-v2.3.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/debian/dev/lcd/node_modules/lcd/node_modules/onoff/node_modules/epoll
gyp ERR! node -v v2.3.2
gyp ERR! node-gyp -v v2.0.1
gyp ERR! not ok
npm ERR! Linux 3.8.13-bone70
npm ERR! argv "/home/debian/opt/iojs-v2.3.2/bin/iojs" "/home/debian/opt/iojs-v2.3.2/bin/npm" "install" "lcd"
npm ERR! node v2.3.2
npm ERR! npm v2.11.3
npm ERR! code ELIFECYCLE
npm ERR! epoll@0.1.13 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the epoll@0.1.13 install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the epoll 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 epoll
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/debian/dev/lcd/npm-debug.log
debian@beaglebone:~/dev/lcd$
Activity
rvagg commentedon Jan 14, 2015
ok, well that kind of sucks .. I'm building on an Ubuntu 14.04 base which has a lot of stuff updated
Fishrock123 commentedon Feb 6, 2015
@rvagg @julianduque What's the status on this? I'm assuming this is still an issue.
rvagg commentedon Feb 7, 2015
yes, still an issue, I'd love to have a couple of BBB boards donated to the project so we can integrate them to CI and produce builds based on an older Linux distro on armv7
the only other resolution is for me to come up with a way to produce builds on the current armv7 box but linking to an older libc, which I started on but is not a simple afternoon job.
runvnc commentedon Feb 15, 2015
Maybe I should just not use Debian Wheezy? I recently ran into this glibc issue both on a BeagleBone Black and on my local Debian install on my rooted Android tablet. Should I switch to a different OS with more up-to-date libraries or something? If so, which Linux distribution that is ARM compatible works with io.js?
fivdi commentedon Feb 15, 2015
I've being running the ARMv7 version of io.js 1.0.2 successfully on a BeagleBone Black using Ubuntu 14.4.1. This version of Ubuntu can be downloaded here http://elinux.org/BeagleBoardUbuntu. There are several files available for downloads. I'm using this one https://rcn-ee.net/rootfs/2015-01-06/ubuntu-14.04.1-console-armhf-2015-01-06.tar.xz
rvagg commentedon Feb 15, 2015
I think I have a way to fix this, http://cloud.online.net/ offer a Wheezy version on their ARMv7 machines, I just need to find some time to work on this and hook it up to CI. If it works, then the binaries should be compiled against a much older libc and in theory would work on the standard BBB distro (I think).
jbergstroem commentedon Feb 15, 2015
@rvagg Another solution could be creating a cross-compile host which would allow for more "exotic" flavours. Not sure how many we'd actually need, but it's not very hard to setup. I guess we can have it in mind as the build team progresses.
rvagg commentedon Feb 15, 2015
I'm not really keen on cross-compiling because it's very difficult to test
runvnc commentedon Feb 16, 2015
@fivdi thanks.. I have found Ubuntu packages to generally be more up-to-date before. Was just going with Debian because I thought it might be a lighter-weight option but I keep running into issues with packages so I may go back to Ubuntu.
julianduque commentedon Feb 19, 2015
@rvagg I have one BBB Rev C here for you, will give it to you next week if that works
rvagg commentedon Feb 19, 2015
@julianduque aye! thanks
julianduque commentedon Mar 4, 2015
@rvagg talked with people from BeagleBoard and current image will be deprecated, will test binary with new one, also will work on getting io.js bundled on the new image.
techniq commentedon Mar 5, 2015
With my Vagrant VM setup for running Docker ARM containers, I noticed the issue using a Docker image based on Debian Wheezy, but not when using Debian Jessie. I know the current default BBB image is based on Wheezy, but it looks like the issue will go away once Jessie becomes standard.
rvagg commentedon Mar 5, 2015
surely you jest! Wheezy will live longer than you and I ..
The priority for the @iojs/build team re ARMv7 is to start building releases on a Wheezy-based OS. I think the easiest path there is to just start using a Wheezy image on Online Labs.
3 remaining items
samkrew commentedon Apr 15, 2015
Any updates ?
rvagg commentedon Apr 15, 2015
some notes on this in nodejs/build#77 - summary: WIP
rvagg commentedon Jun 16, 2015
Hey folks, just letting you know that as of this build: https://iojs.org/download/nightly/v2.3.1-nightly2015061696165f9be2/ the nightlies are coming out of a Wheezy-based ARMv7 machine. I'd love to hear if they are solving the problems coming up here.
fivdi commentedon Jun 16, 2015
It's definitely looking a lot better. Here's the output of a few commands on a BeagleBone Black using the latest Recommended Debian Wheezy 7.8 Image:
This is the first time I've worked with a nightly build and I haven't figured out how to get
npm/gypto install addons yet. For example, below is the output ofnpm install onoff.onoffdepends on the addonepoll, and in order to compile it,gyptries to downloadiojs-v2.3.1-nightly2015061696165f9be2.tar.gzfromhttps://iojs.org/dist/v2.3.1-nightly2015061696165f9be2. It gets a404because it's not there. io.js doesn't have it's nightlies athttps://iojs.org/dist/, it has them athttps://iojs.org/download/nightly/. Maybenpm/gyphave an option for this, but I haven't found it yet.Fishrock123 commentedon Jun 17, 2015
@fivdi iirc node-gyp doesn't work with nightlies.
rvagg commentedon Jun 17, 2015
you can grab the source for the nightly and stick it in ~/.node-gyp/ with the appropriate name and it'll work, alternatively use
--nodedir /path/to/sourcewhen usingnode-gypornpm installand it should be fine... working towards making this actually work without hackery but we're not there yet
fivdi commentedon Jun 17, 2015
Yes, using
--nodedir=/path/to/sourceworks :)One additional hack was needed.
argv.push('--no-parallel')here had to be commented out to avoid the following error:Whether or not it's a good idea to comment out this line is a different question.
Did a few tests and they all worked as expected 👍
fivdi commentedon Jun 23, 2015
@rvagg the v2.3.1 nightlies are coming out of a Wheezy-based ARMv7 machine, but v2.3.1 release didn't. Will release builds come out of a Wheezy-based ARMv7 machine in the future?
rvagg commentedon Jun 24, 2015
only nightlies so far sorry, transition to releases is planned but not something I want to hurry for complicated reasons
rvagg commentedon Jul 1, 2015
new release job that we're now using for nightlies, next-nightlies, rcs and releases is using the new Wheezy-based ARMv7 build machine so expect v2.3.2 to have a binary that works on older linuxes.
rvagg commentedon Jul 2, 2015
v2.3.2 armv7 binary came off a wheezy machine so should fix this issue
fivdi commentedon Jul 2, 2015
Nice Job :)
Other than the
node-gypworkaround mentioned below, everything is looking good on the BeagleBone Black now:Tried out a few modules and addons and everything functioned as expected.
argv.push('--no-parallel')here innode-gypstill needs to be commented out to avoid the error below when addons are installed. There's already a few issues over atnode-gyprelated to the topic, for example, nodejs/node-gyp#426, nodejs/node-gyp#434, and nodejs/node-gyp#651brendanashworth commentedon Jul 31, 2015
Should this issue be closed or should it be kept open for the node-gyp issue?