MoneroOcean / xmrig

Monero (rx/0, rx/wow, rx/loki, defyx, rx/arq, rx/sfx, rx/keva, cn/0, cn/1, cn/2, cn/r, cn/fast, cn/half, cn/xao, cn/rto, cn/rwz, cn/zls, cn/double, cn/gpu, cn-lite/0, cn-lite/1, cn-heavy/0, cn-heavy/tube, cn-heavy/xhv, cn-pico, cn-pico/tlo, argon2/chukwa, argon2/wrkz, astrobwt) CPU/GPU miner
https://moneroocean.stream
GNU General Public License v3.0
271 stars 83 forks source link

Does not compile on arm (raspberry) anymore #31

Open Khamos84 opened 3 years ago

Khamos84 commented 3 years ago

Describe the bug Since this release i am not able to build this version on arm (raspberry pi 4)

To Reproduce Build it on a raspberry pi 4

Expected behavior Previous versions build fine.

Additional context The same bug report is on official xmrig github and they released a fixed version already

KenSharp commented 3 years ago

Build log? This is no help.

Hyenadae commented 3 years ago

This should be closed, everything is fine (as of this post, latest git) as long as you install the dependencies:

then, mkdir build, cd build, and then run: sudo apt-get install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev

Please note I use a franken-debian containing GCC10 on a Raspbian64 (Mar-2021 release) for near-maximum performance. To compile, I use: cmake .. -DWITH_SSE4_1=OFF -DWITH_OPENCL=OFF -DWITH_CUDA=OFF -DWITH_CN_GPU=OFF -DWITH_NVML=OFF -DWITH_ASM=OFF -DWITH_MSR=OFF -DWITH_ARGON2=OFF -DARM_TARGET=8

to make: pi@raspberrypi: ~/src/xmrig-ocean $ ldd ./xmrig-ocean.arm64 linux-vdso.so.1 (0x0000007faf3f1000) libssl.so.1.1 => /lib/aarch64-linux-gnu/libssl.so.1.1 (0x0000007faef2d000) libcrypto.so.1.1 => /lib/aarch64-linux-gnu/libcrypto.so.1.1 (0x0000007faec7e000) libuv.so.1 => /lib/aarch64-linux-gnu/libuv.so.1 (0x0000007faec41000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007faec10000) libhwloc.so.15 => /lib/aarch64-linux-gnu/libhwloc.so.15 (0x0000007faebae000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007faeb03000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007fae98d000) /lib/ld-linux-aarch64.so.1 (0x0000007faf3c1000) libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000007fae979000) libudev.so.1 => /lib/aarch64-linux-gnu/libudev.so.1 (0x0000007fae942000) pi@raspberrypi:~/src/xmrig-ocean $ file ./xmrig-ocean.arm64 ./xmrig-ocean.arm64: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=cecca8e114d2ced8aed5af561cfe26e71349a457, for GNU/Linux 3.7.0, stripped The issue is my Pi is only 2GB of RAM, and well, the performance on all tests are terrible. Like, 10-30X slower than my 4600H laptop, and way slower than my Core i7 5600U (3.1GHz) Thinkpad with Linux

In other words, mining on the Pi 4, even with a 64bit binary and OS is stupidly slow, and kind of useless as it has no crypto acceleration

wondras commented 3 years ago

I am able to compile and run the latest version (v6.12.2-mo2) on a Raspberry Pi 3B running Raspbian 10 Buster 32-bit, but only if I do it from within a "ds64-shell" environment.

A month or two ago, I was able to compile xmrig from the standard 32-bit shell prompt. I'm not sure what changed with my environment, but previously working builds now fail with numerous errors that seem to have to do with 128-bit data types. Since ds64-shell is required to run the compiled binary, I didn't think there was any need for the build process to work from a 32-bit shell, so I did not investigate further.

It was also able to compile and run a recent version (v6.11 I think) on Ubuntu 64-bit for Pi with no issues.

[For what it's worth, in my testing with the Pi 3B, hash rate for cn-heavy/xhv ranged from about 5 H/s (USB power, stock speed, no cooling) to 9 H/s (hard-wired 2.5A power, moderate overclock, heat sink and fan). Panthera maxed out at 103 H/s, and rx/0 only hit 22 H/s. As such, it has no practical value, but setting it up was interesting and educational nonetheless.]