# Mining With 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)
* It's possible to disable certain features of xmrig (more info)

### Setup

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`

### Compiling xmrig

At this step we'll obtain the latest binaries of xmrig and create a directory called build:

`cd ~` `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:

`cmake ..`

* 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 3:

`cmake .. -DCMAKE_C_FLAGS="-mcpu=cortex-a53 -mtune=cortex-a53" -DCMAKE_CXX_FLAGS="-mcpu=cortex-a53 -mtune=cortex-a53"`

* 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:

`make`

To speed up the compilation you can add `-j [amount_of_CPU_cores]`. On a Raspberry Pi 2/3 this would be `make -j 4` for example.

## Configuring and Running xmrig

First we need to copy `config.json` to 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:

`nano config.json`

Your terminal should display the contents of `config.json`.

* In order to mine Qwertycoin, we tell xmrig what algorithm you want to mine. Look out for the `"algo":` setting and change it to `"algo": "cryptonight",`
* In place of "url": "pool.qwertycoin.org:3333", you'll need to choose a pool to mine towards. Make sure to choose the right port. You can check the full list of pools here.
* Instead of "user": "YOUR\_WALLET\_ADDRESS", simply paste your Qwertycoin wallet address. If you don't have one yet, you can find out how to create a wallet here.

When you're done with that, press:

`CTRL + O` to save, confirm with `Enter`. And after that, hit `CTRL + X` to close the file.

Then start the miner:

`./xmrig`

After entering this command, the miner will start scanning your hardware and begin to mine.

Congratulations! You did it! :)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.qwertycoin.org/mining/mining-with-sbc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
