17

I have an "almost always idle" ARM home server (not a rPi, more powerful) and I was thinking running a monero node in it, plus maybe have it mine if possible/profitable.

For the node part, is the monero code compatible with ARM devices? Has anyone actually tried running a monero node in an ARM device?

For the mining part, I am thinking it might even be profitable because the device tops at 5W consumption plus it has working OpenGL and OpenCL drivers for its Mali GPU. Again, if I wanted to test the mining software, would it compile in an ARM device? has anyone actually tried it? What difficulties can I expect to get the integrated GPU to mine?

  • What is the CPU model you're using? You might try to compile an older version of Wolf's AMD miner, which uses OpenCL. (Newer versions use some AMD-specific OpenCL extensions, which won't work on that Mali GPU.) – hyc Aug 27 '16 at 15:38
10

For the node part, is the monero code compatible with ARM devices?

Yes, there are even binaries for ARMv7, which can be found here. Alternatively, you could compile from master. From the pull requests to master, it is clear that the Monero developers are maintaining ARM support.

Has anyone actually tried running a monero node in an ARM device?

Yes, a variety of people have ran Monero on a Raspberry Pi. For example, see here and here.

Again, if I wanted to test the mining software, would it compile in an ARM device?

Bitmonerod (the daemon) has a solominer embedded. Thus, you can simply start solo mining if you are running a full node by entering the following command in bitmonerod:

start_mining <address> [<number_of_threads>]

Note that the optimal amount of threads is amount of cache available divided by 2. Thus, if you have 4 MB available, you should use 2 as number of threads.

has anyone actually tried it?

Not entirely sure about that, but there have been some question on reddit about it. See here for example.

What difficulties can I expect to get the integrated GPU to mine?

According to hyc mining on a 32bit OS is quite slow and inefficient. In addition, there are currently no optimizations for ARM64 yet.

  • 4
    Mining on an ARMv6 (raspberry pi 1B) yielded 1.25 seconds per hash. I don't recall my hash speeds on ARMv7. It should get significantly better on ARMv8 once we have optimized code to use the ARMv8 AES instructions. – hyc Aug 27 '16 at 15:35
  • 1
    Also, I've found that these integrated GPUs have pretty tiny local RAM, a few tens of KB. CryptoNight requires at least 2MB per thread, so I'm not very optimistic about performance on the GPUs. Still a work in progress though. – hyc Jan 8 '17 at 14:17
10

I've been running a full node on a Geekbox for the past 6 months. This uses an RK3368 SOC with 8 Cortex-A53 cores and 2GB RAM. It's running Debian Jessie for ARM64. This little box is powerful enough to compile the entire bitmonero source tree natively (but it's still faster to cross-compile from a full-blown PC).

With the performance enhancements due to show up in the next release (0.10), it's a perfectly capable full node.

As a miner it only gets 3 hashes/second for 1 CPU core. At 4 threads it gets 12 hashes/second, and at 6 threads it gets 14 hashes/second, so peak efficiency is at 4 threads. It's not clear how much faster we can expect this to get after optimizations are written.

2

It's possible and easy to compile and run Monero mining software on modern ARM 64 Bit board. I recommend you use xmrig to which arm support was added recently.

Here is an example of mining perfromance on Quad Core Cortex A53 (Amlogic S905X) TV-Box using Linux Ubuntu 17.10 distro.

rns@amlogic:~/miners/xmr$ ./xmrig --threads=4
 * VERSIONS:     XMRig/2.4.4 libuv/1.8.0 gcc/5.4.0
 * HUGE PAGES:   available, enabled
 * CPU:          Unknown (1) x64 AES-NI
 * THREADS:      4, cryptonight, av=1, donate=1%
 * POOL #1:      etn-eu1.nanopool.org:13333
 * POOL #2:      etn-eu2.nanopool.org:13333
 * COMMANDS:     hashrate, pause, resume
[2018-01-17 00:40:18] use pool etn-eu1.nanopool.org:13333 79.137.82.70
[2018-01-17 00:40:18] new job from etn-eu1.nanopool.org:13333 diff 120001
[2018-01-17 00:40:37] new job from etn-eu1.nanopool.org:13333 diff 120001
[2018-01-17 00:41:05] new job from etn-eu1.nanopool.org:13333 diff 120001
[2018-01-17 00:41:22] speed 2.5s/60s/15m n/a 18.2 n/a H/s max: n/a H/s
[2018-01-17 00:42:06] new job from etn-eu1.nanopool.org:13333 diff 120001
[2018-01-17 00:42:22] speed 2.5s/60s/15m n/a 18.2 n/a H/s max: n/a H/s
[2018-01-17 00:43:06] new job from etn-eu1.nanopool.org:13333 diff 120001
[2018-01-17 00:43:22] speed 2.5s/60s/15m n/a 18.2 n/a H/s max: n/a H/s
  • Agree with this and I have a pool for these lower hash rate devices in the event anyone is interested: mon.gulfcoastmining.com See the less than 100H/s "Raspberry" ports. Basically, the large pools sort of frown on low hash devices and my pool is quite new with no such prejudice. – user4066 Jan 19 '18 at 13:15
2

Custom ARM fork of cpuminer-multi.

Take a look at this answer that gets minergate-multi working on ARM, thanks to some genius forking it and fixing it.

The basic steps are as follows:

git clone https://github.com/tkinjo1985/cpuminer-multi.git

cd cpuminer-multi

./build.sh

If you're on Ubuntu/Debian, of course make sure you install the necessary packages BEFORE:

apt-get install automake autoconf pkg-config libcurl4-openssl-dev libjansson-dev libssl-dev libgmp-dev make g++

And then ./cpuminer --help

I tried this on a 64-core ARM server and it worked great. Here's a screenshot of the multi-core goodness in action:

64-core mining on ARM

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.