-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ARM support #2546
Comments
This requires build docker images/binaries with The validator client builds for ARM, but not the beacon-chain due to some cgo dependencies in go-ethereum. |
I made a brief attempt at trying to cross compile for ARM, but running into weird issues with cgo. |
Hi, |
The binaries should build on ARM as of e71e91c, but we don't officially support ARM binaries at this time. |
Hi, |
@diglos Hi, |
Hi Xinya, |
I will try this, thanks! |
I think this was blocked by crosstool rewrite (bazelbuild/bazel#5380). Most likely, we need to add some cc toolchains for cross compilation. See: https://docs.bazel.build/versions/master/tutorial/cc-toolchain-config.html There is a tutorial here for clang: https://github.com/bazelbuild/rules_go/blob/master/go/crosstool.rst Other artifacts:
Now blocked by bazel-contrib/rules_go#2089 |
Here are the notes I have taken when compiling bazel for an ARM64 (4 cores A53, 2GB RAM).
|
Thanks @jbriquet! My last comment is referring to cross complation. We’d love to build ARM64 binaries for you without unreasonable build environment, but I am glad to see that you were able to build one after 1450s(!!!). ARM builds will soon be a priority for us and we’ll be providing regular ARM binaries for tagged releases soon :) |
Great news! |
This is resolved by #2970 |
Verifying that building on linux amd64 for arm64 works! bazel build //beacon-chain //validator --platforms=@io_bazel_rules_go//go/toolchain:linux_arm64 |
Recent BLS PR has broken ARM builds #3670. Reopening this issue for tracking. |
Hi, |
Hi, |
Hi, |
hey @diglos , thanks for testing this out. It seems like we might not be giving the correct archive for bls, I will try and see where it fails |
There’s an army of RPi4 standing by to join test network. |
Hey sorry currently we haven't been able to get it to work on arm32 yet, only arm64 is currently supported. I havent been able to dedicate the time to resolving this, I hope this can be done soon |
I'm trying to get it to run on a NanoPC T4 (ARM 64). Installed docker and pulled the images. When I run
I get the error
That's all, nothing else. Any idea how to proceed? |
I
@diglos seems to be on the ball here. If you don’t answer for your docker image question, suggest you look up diglox image here on github - diglos/userpatches. I’m considering NanoPC T4 purchase from Friendly Arm this week. So I’m tracking developer responsiveness here before I pull trigger. Let us know if you make progress! |
The current docker image is compiled for AMD64 so it will not work on ARM64. It's not compiled for ARM and I am not sure about any workaround. To give you guys a sense of timeline, we most likely won't get to this until after the holiday. We'd welcome anyone to attempt a resolution here. I have a few ideas if someone wants to attempt resolving builds for ARM64. |
Hi @mangoleap. Are you running a Ethereum on ARM image?. If so, you can install it by typing (last version):
@prestonvanloon, @wikidemic, it compiles fine on ARM64 (NanoPC-T4 and RockPro64) after #4181 merged. ARM7 (Raspberry Pi 4), doesn't work at the moment. |
@diglos That worked, thank you! If anyone wants to try it: Config files are at
Chain and validator can be started with
Auto start up on boot can be enabled with
Real time output from both services can be watched with
|
Done by @SuburbanDad and included in our https://docs.prylabs.network |
Link to install docs: https://docs.prylabs.network/docs/install/arm/ |
I just attempted to load the ‘Unofficial’ version(2.1.0) of Bazel for ARM architecture using docs below. Unfortunately, it did not work as the current version is now at 2.2 and does not incorporate this Arm edit (by SuburbanDad)
I haven’t coded in quite a while so I cann’t offer too much detail other than saying Bazel doesn’t load on my RPi4. Installation script error notes that Unofficial Bazel isn’t current version and references a config file that requires editing before it is happy.
Hope that helps.
Mc
…Sent from my iPad
On Mar 6, 2020, at 6:35 PM, Johns Gresham ***@***.***> wrote:
Link to install docs: https://docs.prylabs.network/docs/install/arm/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
@wikidemic prysm has pinned to bazel 2.1.1 for now. I added an arm64 build of 2.1.1: give it a whirl |
Edit: It appears that although the raspi4 comes with a 64 bit cpu, then default OS (Raspbian Buster) on raspi4 is 32 bit. Is there any particular 64 bit OS that you all would recommend for the raspi4? @SuburbanDad Should the bazel binaries on your releases work on a raspi4? I having issues after running step 3 from here https://docs.prylabs.network/docs/install/arm/ so I am trying to build prysm from source. Here is the result from trying to use your bazel binaries on raspi4:
Here is result from trying to run prysm on a raspi4:
In the meantime, I am trying to build bazel 2.1.1 on a raspi4. |
Hey @jgresham,
Edited after reading your edit:
the unofficial / dev bazel binaries I have here: https://github.com/SuburbanDad/bazel/releases
should work on any debian based arm64 os.
Ubuntu 19.10 is probably the easiest route. Personally I am running an unofficial distro of 18.04 from:
https://jamesachambers.com/raspberry-pi-4-ubuntu-server-desktop-18-04-3-image-unofficial/
Since it has pi-specific kernel optimizations from raspbian. I am hopeful that 20.04 will have better support when it comes out next month.
…On Sun, Mar 15, 2020, 3:40 PM Johns Gresham ***@***.***> wrote:
@SuburbanDad <https://github.com/SuburbanDad> Should the bazel binaries
on your releases work on a raspi4? I having issues after running step 3
from here https://docs.prylabs.network/docs/install/arm/ so I am trying
to build prysm from source.
Here is the result from trying to use your bazel binaries on raspi4:
***@***.***:~/prysm $ ./bazel --version
-bash: ./bazel: cannot execute binary file: Exec format error
***@***.***:~/prysm $ file bazel
bazel: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=09b54219645538b60aaaf5829af803cf3fad9fd4, not stripped
Here is result from trying to run prysm on a raspi4:
***@***.***:~/prysm $ ./prysm.sh --clear-db --datadir=$HOME/prysm
***@***.***:~/prysm $ ls dist/
beacon-chain-v0.3.4-linux-armv7l validator-v0.3.4-linux-armv7l
***@***.***:~/prysm $ ./prysm.sh beacon-chain
Latest Prysm version is v0.3.4.
Beacon chain is up to date.
Validator is up to date.
Starting Prysm beacon-chain
/home/pi/prysm/dist/beacon-chain-v0.3.4-linux-armv7l: line 1: Not: command not found
In the meantime, I am trying to build bazel 2.1.1 on a raspi4.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2546 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AOSEBJRG27FVPNPOED4ACD3RHVKMHANCNFSM4HL3T3WA>
.
|
I found that the Line one of the binary file was "Not Found" which resulted in an error - Turns out I was hitting the rate-limit imposed by github for unauthenticated requests.
I authenticated using |
It has been found that the binaries are not built for ARM, hence people trying to run a node in for example Rasberry Pi 3 are getting crashes.
The text was updated successfully, but these errors were encountered: