Mining with a SBC
The following guide will show you how to compile a CPU miner (XMRig) for SBCs like the Raspberry Pi.
What are the benefits of compiling XMRig from scratch?
- You'll have the most up-to-date version of XMRig
- You can optimize XMRig for specific SBCs (improves hash rate)
- You can compile XMRig with different releases of GCC (may improve hash rate)
First we want to make sure your SBC's software is up to date:
sudo apt-get update && sudo apt-get upgrade
After that's done, we're going to install some tools that are important for the process:
sudo apt-get install git build-essential cmake make libuv1-dev libmicrohttpd-dev gcc g++ automake autoconf pkg-config libcurl4-openssl-dev libjansson-dev libssl-dev libgmp-dev
At this step we'll obtain the latest binaries of XMRig and create a directory called
git clone https://github.com/xmrig/xmrig.git
cd xmrig && mkdir build && cd build
Now we specify the build flags to optimize XMRig for your SBC in particular. You'll have to only choose one of these:
- for any SBC:
- for the Raspberry Pi 2:
cmake .. -DCMAKE_C_FLAGS="-mcpu=cortex-a7 -mtune=cortex-a7" -DCMAKE_CXX_FLAGS="-mcpu=cortex-a7 -mtune=cortex-a7"
- for the Raspberry Pi 2 if the command above doesn't work:
cmake .. -DARM_TARGET=7
- for the Raspberry Pi 3:
cmake .. -DCMAKE_C_FLAGS="-mcpu=cortex-a53 -mtune=cortex-a53" -DCMAKE_CXX_FLAGS="-mcpu=cortex-a53 -mtune=cortex-a53"
- for the Raspberry Pi 4:
cmake .. -DCMAKE_C_FLAGS="-mcpu=cortex-a72 -mtune=cortex-a72" -DCMAKE_CXX_FLAGS="-mcpu=cortex-a72 -mtune=cortex-a72"
- for the Asus Tinker Board:
cmake .. -DCMAKE_C_FLAGS="-march=armv7-a" -DCMAKE_CXX_FLAGS="-march=armv7-a"
You may find the right flags for your board here. I was only able to test these on a Raspberry Pi 2 and the Asus Tinker Board. Also, this guide is not perfect, so feel free to add/edit flags or devices!
To finish the compilation type:
To speed up the compilation you can add
-j [amount_of_CPU_cores]. On a Raspberry Pi 2/3 this would be
make -j 4for example.
First we need to copy
config.jsonto the same directory the XMRig executable is located:
cp ~/xmrig/src/config.json config.json
Now we have to edit the configuration file properly. In this guide we'll be using
nano, but any other text editor should also work fine:
Your terminal should display the contents of
- In order to mine Kryptokrona, we tell XMRig what algorithm you want to mine. Look out for the
"algo":setting and change it to
When you're done with that, press:
CTRL + Oto save, confirm with
Enter. And after that, hit
CTRL + Xto close the file.
Then start the miner:
After entering this command, the miner will start scanning your hardware and begin to mine.
Congratulations! You did it! :)