Skip to content
This repository has been archived by the owner on Jun 29, 2021. It is now read-only.

Support ARM #130

Open
Dev1an opened this issue Jun 23, 2017 · 24 comments
Open

Support ARM #130

Dev1an opened this issue Jun 23, 2017 · 24 comments

Comments

@Dev1an
Copy link

Dev1an commented Jun 23, 2017

Add support for ARM architectures. It would open up meteor to a whole new world of embedded developers.

@zimme
Copy link

zimme commented Jun 25, 2017

We have some prior arts over here.
There are some prior arts over here.
https://github.com/4commerce-technologies-AG/meteor

@Dev1an
Copy link
Author

Dev1an commented Jun 25, 2017

@zimme What is the status of that project? Are you discontinuing it?

@zimme
Copy link

zimme commented Jun 25, 2017

@Dev1an, seems like it's at a standstill. I guess the maintainers of that fork hasn't had much time for it lately. Maybe open a "status update" issue on their issue tracker and ask how they see the future for that project.

@zimme
Copy link

zimme commented Jun 25, 2017

Hopefully it might just be a matter of merging/rebasing in the latest changes from Meteor and you have a working version of the latest Meteor on ARMv7 and ARMv8. I do believe that version don't support MongoDB, as in you need to provide your own MongoDB from the OS or on a separate server.

@Dev1an
Copy link
Author

Dev1an commented Jun 25, 2017

MongoDB supports ARMv8 (64-bit) or newer (see this post from one year ago).

@matthova
Copy link

matthova commented Jul 7, 2017

I would be interested in working to support this feature, but I don't know where to start.
Any tips?

@Dev1an
Copy link
Author

Dev1an commented Jul 7, 2017

@matthov: ask Tom Freudenberg, he's still working on arm meteor builds.

@matthova
Copy link

matthova commented Jul 8, 2017

Thanks. Here is his defacto guide, for reference https://meteor-universal.tumblr.com/tagged/installation

@duvrai
Copy link

duvrai commented Oct 4, 2017

It seems like this feature request more or less migrated from meteor/meteor#6033

@christofu
Copy link

We run a big distributed environment with lots of microservices based on Meteor. It's painful and expensive to be using x86_64 single board computers when we could easily design boards using ARM. We do use some ARM SBCs running the (now ancient) "Universal Port" for super simple and not frequently updated microservices.

I can foresee a big uptick in usage with people using Raspberry Pis and other ARM-based maker boards if Meteor was available on ARM.

We likely could do it ourselves but then we'll be stuck in manual-update-cycle hell. Just wanted to voice support for officially supported ARM. This certainly cannot be as difficult as the windows port.

@broth-eu
Copy link

Is there any progress on this? Will ARM architectures ever be supported?

@eskan
Copy link

eskan commented Jul 16, 2019

as arm devices becomes more and more popular meteor should support at least arm64 to valid architecture.

@lorros
Copy link

lorros commented Jul 21, 2019

I've recently compiled a fairly large project on A20 (i.e., 32-bit Arm v7l / armhf arch) using Meteor 1.8.1 and managed to run it on the same machine (not in development mode, but the actual results of the build). Currently, an external mongodb is required. I don't really have time now to bring each-and-every code to meet the possible requirements of a PR; if any of you does, I can grant access on a per-user basis (after erasing the company-specific codes) to the machine that's running it. Machine is a Banana PI R1, but mem. use was low enough that a Raspberry PI Zero might be considered. lorro-at-please-dont-spam-lorro.hu

@dave-ct
Copy link

dave-ct commented Aug 11, 2019

@lorros do you have the steps you went through to compile 1.8.1 on arm?

@lorros
Copy link

lorros commented Aug 13, 2019

Hi @dave-ct ,
I can give you temp access to the router if you mail me a desired username/pass (after I erased secure content, jftr), or share the sd card's content in a private channel (16GB). It's not just a few steps, but some code modifications as well (which are yet to be completed). Alternatively, we might push a code review together.
Also keep in mind that the first step is to find a suitable machine for mongodb, which is unsupported on 32-bit archs [1]. I haven't yet completed a full static build on x86 either (simply used the package provider's version), which would (have) be(en) required for running via qemu-linux.
Once you have mongodb, you need the standard tools & packages that you can copy (either the files or package name list, note this is distrib AND board-specific) from the router, fix each and every point that has x86_64 or similar (this is done on my router, it follows 2 patterns, search & replace), create the bundle as the distributor would normally do, upload somewhere & change the download path conditionally and then run the install. Current stage tries to download always (unless in cache), this is sg to fix I think. That's just a nutshell.
Once it's distrib-ready, this might be shared with a broad audience, it's just the early stage that I prefer to keep amongst people who help fixing it (or keep here till I fix it and upload it), so that it reaches a given level of code quality before it goes public (or to PR).

[1] I'm actually considering writing an email to them, estimating the CO2-impact of this decision, given that these boards might be decommissioned earlier if lacking mongodb. Millions of boards.

@ghost
Copy link

ghost commented Jun 28, 2020

What about today ? :(

@Dev1an
Copy link
Author

Dev1an commented Jun 28, 2020

Today it is possible to bundle meteor apps on an Intel machine and then run the bundled nodeJS app on ARM.

@ghost
Copy link

ghost commented Jun 28, 2020

How do you do that ?

@Dev1an
Copy link
Author

Dev1an commented Jun 28, 2020

Steps for running on a raspberry (arm)

Bundle on development Machine (intel)

# Install git
sudo apt-get install git

# Install meteor
curl https://install.meteor.com/ | sh

# Go to app
cd <your-meteor-app-here>

# Bundle your meteor app
meteor build <Destination path>

Download Ubuntu Server 20.04 from http://cdimage.ubuntu.com/releases/20.04/release/ubuntu-20.04-preinstalled-server-arm64+raspi.img.xz

Copy Ubuntu to SD card

Run on ARM

Setup MongoDB 4.2.6

from https://pimylifeup.com/mongodb-raspberry-pi/

# Install MongoDB
curl -s https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt update
sudo apt upgrade
sudo apt install mongodb-org

# Start MongoDB
sudo systemctl enable mongod
sudo systemctl start mongod

# Check MongoDB
sudo systemctl status mongod

Install NodeJS 12.16.3

from https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install gcc g++ make

Go to meteor bundle

Install bundle dependencies

cd <bundle>/programs/server/
npm install

export MONGO_URL='mongodb://localhost:27017/app-name'
export ROOT_URL='http://ubuntu.local:3000/'
export PORT=3000

Run bundled app

cd <bundle>
node main

@odidev
Copy link

odidev commented Jan 19, 2021

Hi Team,

I am trying to use the meteor on the arm64 Linux platform but it seems it is not available officially for arm64.

Do you have any plans on releasing meteor for arm64?

It will be very helpful if meteor is released with ARM64 support.

@jankapunkt
Copy link

@filipenevola I'd like to bump this issue up again, since there has been lots of recent discussion here and here and I did not find any reason why it's actually not supported. Does it make sense to add this as a feature proposal for future 3.0 release?

@alihuber
Copy link

If anyone is interested: in 2018 I did a dev-bundle for Meteor 1.6.1 and aarch64, similar to what https://github.com/4commerce-technologies-AG/meteor were doing:
alihuber/meteor@c75e6ab
As far as I can remember, the biggest problem was finding a distribution of MongoDB that will run on the RaspberryPi. However things have changed considerably since then, MongoDB should run on current RaspberryPis just fine I guess.
The actual changes on the files weren't too complicated, though. Unfortunately it stopped working with Meteor 1.7.x/1.8.x when those files changed a lot, and for some reason I couldn't get it to work anymore and lost interest.

@JonahGroendal
Copy link

JonahGroendal commented Apr 19, 2021

@Dev1an very helpful but for anyone trying this, you actually need to use Node 8.17.0, or whatever version is in bundle/.node_version.txt

@StorytellerCZ
Copy link
Collaborator

@JonahGroendal that Node version looks wrong. It should be in the v12 range.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests