diff options
-rw-r--r-- | INSTALL.md | 201 | ||||
-rw-r--r-- | README.md | 170 | ||||
-rw-r--r-- | doc/FAQ.md | 61 | ||||
-rw-r--r-- | doc/compile.md | 81 | ||||
-rw-r--r-- | doc/compile_FreeBSD.md (renamed from doc/FREEBSDCOMPILE.md) | 6 | ||||
-rw-r--r-- | doc/compile_Linux.md (renamed from doc/LINUXCOMPILE.md) | 6 | ||||
-rw-r--r-- | doc/compile_Windows.md (renamed from doc/WINCOMPILE.md) | 3 | ||||
-rw-r--r-- | doc/tuning.md | 67 | ||||
-rw-r--r-- | doc/usage.md | 54 |
9 files changed, 490 insertions, 159 deletions
diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..d127bb6 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,201 @@ +# XMR-Stak-CPU - Monero mining software + +XMR-Stak is a universal Stratum pool miner. This is the CPU-mining version; there is also an [AMD GPU version](https://github.com/fireice-uk/xmr-stak-amd) and an [NVIDA GPU version](https://github.com/fireice-uk/xmr-stak-nvidia) + +## HTML reports +<img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-hashrate.png" width="260"> <img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-results.png" width="260"> <img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-connection.png" width="260"> + +## HTML and JSON API report configuraton + +To configure the reports shown above you need to edit the httpd_port variable. Then enable wifi on your phone and navigate to [miner ip address]:[httpd_port] in your phone browser. If you want to use the data in scripts, you can get the JSON version of the data at url [miner ip address]:[httpd_port]/api.json + +## Usage on Windows +1) Edit the config.txt file to enter your pool login and password. +2) Double click the exe file. + +XMR-Stak should compile on any C++11 compliant compiler. +``` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +sha1sum +d34a0ba0dd7b3b1f900a7e02772e197e974b4a73 libeay32.dll +2ee9966a0fc163da58408d91be36b84fa287c10b ssleay32.dll +e4d8a974e58985214de163df0c1ed0f54250d7ee xmr-stak-cpu.exe +ae0153ff98df82022b2c392d6a17c5f3614f6a50 xmr-stak-cpu-notls.exe + +sha3sum +05003137a87313c81d6c348c9b96411c95d48dc22c35f36c39129747 libeay32.dll +133c065d9ef2c93396382e2ba5d8c3ca8c6a57c6beb0159cb9a4b6c5 ssleay32.dll +7bfc30b06524dc9139a3157e2661d2a6f5720738dde8e490f05cc8e2 xmr-stak-cpu.exe +005fb81fc3711a97b2ce65bad0ca97318d878dc793a8cba99c7d1f6f xmr-stak-cpu-notls.exe + +date +Wed 19 Jul 21:18:58 BST 2017 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQEcBAEBCAAGBQJZb77XAAoJEPsk95p+1Bw0GU4H/26sBwJzYSeWoLwo0LdmOPk3 +19n+svFYnz6NlxAjs+fvuTK992ilLMy2pa4PHKhot2oyZIgt2rRaFsvRADcHVraG +nsIh4Oq31T9epZI0WxIH5FJlDx30fdGkpMTu9xt6ta2JXsmkDiCoZxmETuljB7Rw +xvnKeHiuTccp73C6Nd7dkuiemsOw0FZA7XXS/Kmwqm7n8BtCztY70R6SVN7QFbCz +C49s0A9cT4UbAUPuu8KvxFozmJHA/wDBYHgkq95Y6n/q116+Sc9BpdF8j+qK4YzZ +uM+B10XY0g7Qv376UoJRYKokpVaBxF08nD+JXLdL+zfQvnEfKgrhTnjaTkWFfEY= +=jpgE +-----END PGP SIGNATURE----- +``` +## Compile guides + +- [Free BSD](FREEBSDCOMPILE.md) +- [Linux](LINUXCOMPILE.md) +- [Windows](WINCOMPILE.md) + + +#### CPU mining performance + +Performance is nearly identical to the closed source paid miners. Here are some numbers: + +* **I7-2600K** - 266 H/s +* **I7-6700** - 276 H/s (with a separate GPU miner) +* **Dual X5650** - 466 H/s (depends on NUMA) +* **Dual E5640** - 365 H/s (same as above) + +## Default dev donation +By default the miner will donate 2% of the hashpower (2 minute in 100 minutes) to my pool. If you want to change that, edit **xmrstak/donate-level.hpp** before you build the binaries. + +If you want to donate directly to support further development, here is my wallet + +fireice-uk: +``` +4581HhZkQHgZrZjKeCfCJxZff9E3xCgHGF25zABZz7oR71TnbbgiS7sK9jveE6Dx6uMs2LwszDuvQJgRZQotdpHt1fTdDhk +``` + +psychocrypt: +``` +43NoJVEXo21hGZ6tDG6Z3g4qimiGdJPE6GRxAmiWwm26gwr62Lqo7zRiCJFSBmbkwTGNuuES9ES5TgaVHceuYc4Y75txCTU +``` + +## Common Issues + +**SeLockMemoryPrivilege failed** + +Please see [config.txt](config.txt) under section **LARGE PAGE SUPPORT** + +For Windows 7 pro, or Windows 8 and above see [this article](https://msdn.microsoft.com/en-gb/library/ms190730.aspx) (make sure to reboot afterwards!). + +For Windows 7 Home : + +1) Download and install [Windows Server 2003 Resource Kit Tools](https://www.microsoft.com/en-us/download/details.aspx?id=17657). Ignore incompatiablity warning during installation. + +2) In cmd or power shell: `ntrights -u %USERNAME% +r SeLockMemoryPrivilege` (where %USERNAME% is the user that will be running the program. This command needs to be run as admin) + +3) Reboot. + +Reference: http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=259791#pid259791 + +*Warning: do not download ntrights.exe from any other site other then the offical Microsoft download page.* + +**VirtualAlloc failed** + +If you set up the user rights properly (see above), and your system has 4-8GB of RAM (50%+ use), there is a significant chance that there simply won't be a large enough chunk of contiguous memory because Windows is fairly bad at mitigating memory fragmentation. + +If that happens, disable all auto-staring applications and run the miner after a reboot. + +**msvcp140.dll and vcruntime140.dll not available errors** + +Download and install this [runtime package](https://go.microsoft.com/fwlink/?LinkId=746572) from Microsoft. *Warning: Do NOT use "missing dll" sites - dll's are exe files with another name, and it is a fairly safe bet that any dll on a shady site like that will be trojaned. Please download offical runtimes from Microsoft above.* + + +**Error: MEMORY ALLOC FAILED: mmap failed** + +From [config.txt](config.txt): + +On Linux you will need to configure large page support `sudo sysctl -w vm.nr_hugepages=128` and increase your +ulimit -l. To do this you need to add following lines to /etc/security/limits.conf: + + * soft memlock 262144 + * hard memlock 262144 + +Save file. You WILL need to log out and log back in for these settings to take affect on your user (no need to reboot, just relogin in your session). + +You can also do it Windows-style and simply run-as-root, but this is NOT recommended for security reasons. + +**Illegal instruction (core dumped)** + +This typically means you are trying to run it on a CPU that does not have [AES](https://en.wikipedia.org/wiki/AES_instruction_set). This only happens on older version of miner, new version gives better error message (but still wont' work since your CPU doesn't support the required instructions). + + +## Advanced Compile Options + +The build system is CMake, if you are not familiar with CMake you can learn more [here](https://cmake.org/runningcmake/). + +### Short Description + +There are two easy ways to set variables for `cmake` to configure *xmr-stak-cpu* +- use the ncurses GUI + - `ccmake .` + - edit your options + - end the GUI by pressing the key `c`(create) and than `g`(generate) +- set Options on the command line + - enable a option: `cmake . -DNAME_OF_THE_OPTION=ON` + - disable a option `cmake . -DNAME_OF_THE_OPTION=OFF` + - set a value `cmake . -DNAME_OF_THE_OPTION=value` + +After the configuration you need to call +`make install` for slow sequential build +or +`make -j install` for faster parallel build +and install. + +### xmr-stak-cpu Compile Options +- `CMAKE_INSTALL_PREFIX` install miner to the home folder + - `cmake . -DCMAKE_INSTALL_PREFIX=$HOME/xmr-stak-cpu` + - you can find the binary and the `config.txt` file after `make install` in `$HOME/xmr-stak-cpu/bin` +- `CMAKE_LINK_STATIC` link libgcc and libstdc++ libraries static (default OFF) + - disable with `cmake . -DCMAKE_LINK_STATIC=ON` +-`CMAKE_BUILD_TYPE` set the build type + - valid options: `Release` or `Debug` + - you should always keep `Release` for your productive miners +- `MICROHTTPD_ENABLE` allow to disable/enable the dependency *microhttpd* + - by default enabled + - there is no *http* interface available if option is disabled: `cmake . -DMICROHTTPD_ENABLE=OFF` +- `OpenSSL_ENABLE` allow to disable/enable the dependency *OpenSSL* + - by default enabled + - it is not possible to connect to a *https* secured pool if option is disabled: `cmake . -DOpenSSL_ENABLE=OFF` +- `HWLOC_ENABLE` allow to disable/enable the dependency *hwloc* + - by default enabled + - the config suggestion is not optimal if option is disabled: `cmake . -DHWLOC_ENABLE=OFF` + +## PGP Key +``` +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2 + +mQENBFhYUmUBCAC6493W5y1MMs38ApRbI11jWUqNdFm686XLkZWGDfYImzL6pEYk +RdWkyt9ziCyA6NUeWFQYniv/z10RxYKq8ulVVJaKb9qPGMU0ESfdxlFNJkU/pf28 +sEVBagGvGw8uFxjQONnBJ7y7iNRWMN7qSRS636wN5ryTHNsmqI4ClXPHkXkDCDUX +QvhXZpG9RRM6jsE3jBGz/LJi3FyZLo/vB60OZBODJ2IA0wSR41RRiOq01OqDueva +9jPoAokNglJfn/CniQ+lqUEXj1vjAZ1D5Mn9fISzA/UPen5Z7Sipaa9aAtsDBOfP +K9iPKOsWa2uTafoyXgiwEVXCCeMMUjCGaoFBABEBAAG0ImZpcmVpY2VfdWsgPGZp +cmVpY2UueG1yQGdtYWlsLmNvbT6JATcEEwEIACEFAlhYUmUCGwMFCwkIBwIGFQgJ +CgsCBBYCAwECHgECF4AACgkQ+yT3mn7UHDTEcQf8CMhqaZ0IOBxeBnsq5HZr2X6z +E5bODp5cPs6ha1tjH3CWpk1AFeykNtXH7kPW9hcDt/e4UQtcHs+lu6YU59X7xLJQ +udOkpWdmooJMXRWS/zeeon4ivT9d69jNnwubh8EJOyw8xm/se6n48BcewfHekW/6 +mVrbhLbF1dnuUGXzRN1WxsUZx3uJd2UvrkJhAtHtX92/qIVhT0+3PXV0bmpHURlK +YKhhm8dPLV9jPX8QVRHQXCOHSMqy/KoWEe6CnT0Isbkq3JtS3K4VBVeTX9gkySRc +IFxrNJdXsI9BxKv4O8yajP8DohpoGLMDKZKSO0yq0BRMgMh0cw6Lk22uyulGALkB +DQRYWFJlAQgAqikfViOmIccCZKVMZfNHjnigKtQqNrbJpYZCOImql4FqbZu9F7TD +9HIXA43SPcwziWlyazSy8Pa9nCpc6PuPPO1wxAaNIc5nt+w/x2EGGTIFGjRoubmP +3i5jZzOFYsvR2W3PgVa3/ujeYYJYo1oeVeuGmmJRejs0rp1mbvBSKw1Cq6C4cI0x +GTY1yXFGLIgdfYNMmiLsTy1Qwq8YStbFKeUYAMMG3128SAIaT3Eet911f5Jx4tC8 +6kWUr6PX1rQ0LQJqyIsLq9U53XybUksRfJC9IEfgvgBxRBHSD8WfqEhHjhW1VsZG +dcYgr7A1PIneWsCEY+5VUnqTlt2HPaKweQARAQABiQEfBBgBCAAJBQJYWFJlAhsM +AAoJEPsk95p+1Bw0Pr8H/0vZ6U2zaih03jOHOvsrYxRfDXSmgudOp1VS45aHIREd +2nrJ+drleeFVyb14UQqO/6iX9GuDX2yBEHdCg2aljeP98AaMU//RiEtebE6CUWsL +HPVXHIkxwBCBe0YkJINHUQqLz/5f6qLsNUp1uTH2++zhdBWvg+gErTYbx8aFMFYH +0GoOtqE5rtlAh5MTvDZm+UcDwKJCxhrLaN3R3dDoyrDNRTgHQQuX5/opJBiUnVNK +d+vugnxzpMIJQP11yCZkz/KxV8zQ2QPMuZdAoh3znd/vGCJcp0rWphn4pqxA4vDp +c4hC0Yg9Dha1OoE5CJCqVL+ic4vAyB1urAwBlsd/wH8= +=B5I+ +-----END PGP PUBLIC KEY BLOCK----- +``` @@ -1,69 +1,34 @@ -# XMR-Stak-CPU - Monero mining software +# XMR-Stak - Monero All-in-One Mining Software -XMR-Stak is a universal Stratum pool miner. This is the CPU-mining version; there is also an [AMD GPU version](https://github.com/fireice-uk/xmr-stak-amd) and an [NVIDA GPU version](https://github.com/fireice-uk/xmr-stak-nvidia) +XMR-Stak is a universal Stratum pool miner. This miner supports CPUs, AMD and NVIDIA gpus. ## HTML reports <img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-hashrate.png" width="260"> <img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-results.png" width="260"> <img src="https://gist.githubusercontent.com/fireice-uk/2da301131ac01695ff79539a27b81d68/raw/4c09cdeee86f94df2e9dd86b927e64aded6184f5/xmr-stak-cpu-connection.png" width="260"> -## HTML and JSON API report configuraton +## Content Overview +* [Features](#features) +* [Download](#download) +* [Usage](doc/usage.md) +* [HowTo Compile](doc/compile.md) +* [FAQ](doc/FAQ.md) +* [Developer Donation](#default-developer-donation) +* [PGP Key](#pgp-key) -To configure the reports shown above you need to edit the httpd_port variable. Then enable wifi on your phone and navigate to [miner ip address]:[httpd_port] in your phone browser. If you want to use the data in scripts, you can get the JSON version of the data at url [miner ip address]:[httpd_port]/api.json +## Features -## Usage on Windows -1) Edit the config.txt file to enter your pool login and password. -2) Double click the exe file. +- support all common backends (CPU/x86, AMD-GPU and NVIDIA-GPU) +- support all common OS (Linux, Windows and MacOS) +- easy to use + - guided start (no need to edit a config file for the first start) + - auto configuration for each backend +- open source software (GPLv3) +- TLS support +- HTML statistics +- JSON API for monitoring -XMR-Stak should compile on any C++11 compliant compiler. -``` ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - -sha1sum -d34a0ba0dd7b3b1f900a7e02772e197e974b4a73 libeay32.dll -2ee9966a0fc163da58408d91be36b84fa287c10b ssleay32.dll -e4d8a974e58985214de163df0c1ed0f54250d7ee xmr-stak-cpu.exe -ae0153ff98df82022b2c392d6a17c5f3614f6a50 xmr-stak-cpu-notls.exe - -sha3sum -05003137a87313c81d6c348c9b96411c95d48dc22c35f36c39129747 libeay32.dll -133c065d9ef2c93396382e2ba5d8c3ca8c6a57c6beb0159cb9a4b6c5 ssleay32.dll -7bfc30b06524dc9139a3157e2661d2a6f5720738dde8e490f05cc8e2 xmr-stak-cpu.exe -005fb81fc3711a97b2ce65bad0ca97318d878dc793a8cba99c7d1f6f xmr-stak-cpu-notls.exe - -date -Wed 19 Jul 21:18:58 BST 2017 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQEcBAEBCAAGBQJZb77XAAoJEPsk95p+1Bw0GU4H/26sBwJzYSeWoLwo0LdmOPk3 -19n+svFYnz6NlxAjs+fvuTK992ilLMy2pa4PHKhot2oyZIgt2rRaFsvRADcHVraG -nsIh4Oq31T9epZI0WxIH5FJlDx30fdGkpMTu9xt6ta2JXsmkDiCoZxmETuljB7Rw -xvnKeHiuTccp73C6Nd7dkuiemsOw0FZA7XXS/Kmwqm7n8BtCztY70R6SVN7QFbCz -C49s0A9cT4UbAUPuu8KvxFozmJHA/wDBYHgkq95Y6n/q116+Sc9BpdF8j+qK4YzZ -uM+B10XY0g7Qv376UoJRYKokpVaBxF08nD+JXLdL+zfQvnEfKgrhTnjaTkWFfEY= -=jpgE ------END PGP SIGNATURE----- -``` -## Compile guides - -- [Free BSD](FREEBSDCOMPILE.md) -- [Linux](LINUXCOMPILE.md) -- [Windows](WINCOMPILE.md) - - -#### CPU mining performance - -Performance is nearly identical to the closed source paid miners. Here are some numbers: +## Download -* **I7-2600K** - 266 H/s -* **I7-6700** - 276 H/s (with a separate GPU miner) -* **Dual X5650** - 466 H/s (depends on NUMA) -* **Dual E5640** - 365 H/s (same as above) - -## Default dev donation -By default the miner will donate 2% of the hashpower (2 minute in 100 minutes) to my pool. If you want to change that, edit **xmrstak/donate-level.hpp** before you build the binaries. - -If you want to donate directly to support further development, here is my wallet +You can find the latest releases and precompiled binaries on GitHub under [Releases](https://github.com/xmr-stak/xmr-stak/releases). fireice-uk: ``` @@ -75,97 +40,6 @@ psychocrypt: 43NoJVEXo21hGZ6tDG6Z3g4qimiGdJPE6GRxAmiWwm26gwr62Lqo7zRiCJFSBmbkwTGNuuES9ES5TgaVHceuYc4Y75txCTU ``` -## Common Issues - -**SeLockMemoryPrivilege failed** - -Please see [config.txt](config.txt) under section **LARGE PAGE SUPPORT** - -For Windows 7 pro, or Windows 8 and above see [this article](https://msdn.microsoft.com/en-gb/library/ms190730.aspx) (make sure to reboot afterwards!). - -For Windows 7 Home : - -1) Download and install [Windows Server 2003 Resource Kit Tools](https://www.microsoft.com/en-us/download/details.aspx?id=17657). Ignore incompatiablity warning during installation. - -2) In cmd or power shell: `ntrights -u %USERNAME% +r SeLockMemoryPrivilege` (where %USERNAME% is the user that will be running the program. This command needs to be run as admin) - -3) Reboot. - -Reference: http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=259791#pid259791 - -*Warning: do not download ntrights.exe from any other site other then the offical Microsoft download page.* - -**VirtualAlloc failed** - -If you set up the user rights properly (see above), and your system has 4-8GB of RAM (50%+ use), there is a significant chance that there simply won't be a large enough chunk of contiguous memory because Windows is fairly bad at mitigating memory fragmentation. - -If that happens, disable all auto-staring applications and run the miner after a reboot. - -**msvcp140.dll and vcruntime140.dll not available errors** - -Download and install this [runtime package](https://go.microsoft.com/fwlink/?LinkId=746572) from Microsoft. *Warning: Do NOT use "missing dll" sites - dll's are exe files with another name, and it is a fairly safe bet that any dll on a shady site like that will be trojaned. Please download offical runtimes from Microsoft above.* - - -**Error: MEMORY ALLOC FAILED: mmap failed** - -From [config.txt](config.txt): - -On Linux you will need to configure large page support `sudo sysctl -w vm.nr_hugepages=128` and increase your -ulimit -l. To do this you need to add following lines to /etc/security/limits.conf: - - * soft memlock 262144 - * hard memlock 262144 - -Save file. You WILL need to log out and log back in for these settings to take affect on your user (no need to reboot, just relogin in your session). - -You can also do it Windows-style and simply run-as-root, but this is NOT recommended for security reasons. - -**Illegal instruction (core dumped)** - -This typically means you are trying to run it on a CPU that does not have [AES](https://en.wikipedia.org/wiki/AES_instruction_set). This only happens on older version of miner, new version gives better error message (but still wont' work since your CPU doesn't support the required instructions). - - -## Advanced Compile Options - -The build system is CMake, if you are not familiar with CMake you can learn more [here](https://cmake.org/runningcmake/). - -### Short Description - -There are two easy ways to set variables for `cmake` to configure *xmr-stak-cpu* -- use the ncurses GUI - - `ccmake .` - - edit your options - - end the GUI by pressing the key `c`(create) and than `g`(generate) -- set Options on the command line - - enable a option: `cmake . -DNAME_OF_THE_OPTION=ON` - - disable a option `cmake . -DNAME_OF_THE_OPTION=OFF` - - set a value `cmake . -DNAME_OF_THE_OPTION=value` - -After the configuration you need to call -`make install` for slow sequential build -or -`make -j install` for faster parallel build -and install. - -### xmr-stak-cpu Compile Options -- `CMAKE_INSTALL_PREFIX` install miner to the home folder - - `cmake . -DCMAKE_INSTALL_PREFIX=$HOME/xmr-stak-cpu` - - you can find the binary and the `config.txt` file after `make install` in `$HOME/xmr-stak-cpu/bin` -- `CMAKE_LINK_STATIC` link libgcc and libstdc++ libraries static (default OFF) - - disable with `cmake . -DCMAKE_LINK_STATIC=ON` --`CMAKE_BUILD_TYPE` set the build type - - valid options: `Release` or `Debug` - - you should always keep `Release` for your productive miners -- `MICROHTTPD_ENABLE` allow to disable/enable the dependency *microhttpd* - - by default enabled - - there is no *http* interface available if option is disabled: `cmake . -DMICROHTTPD_ENABLE=OFF` -- `OpenSSL_ENABLE` allow to disable/enable the dependency *OpenSSL* - - by default enabled - - it is not possible to connect to a *https* secured pool if option is disabled: `cmake . -DOpenSSL_ENABLE=OFF` -- `HWLOC_ENABLE` allow to disable/enable the dependency *hwloc* - - by default enabled - - the config suggestion is not optimal if option is disabled: `cmake . -DHWLOC_ENABLE=OFF` - ## PGP Key ``` -----BEGIN PGP PUBLIC KEY BLOCK----- diff --git a/doc/FAQ.md b/doc/FAQ.md new file mode 100644 index 0000000..995a421 --- /dev/null +++ b/doc/FAQ.md @@ -0,0 +1,61 @@ +# FAQ + +## Content Overview +* [SeLockMemoryPrivilege failed](#selockmemoryprivilege-failed) +* [VirtualAlloc failed](#virtualalloc-failed) +* [Error msvcp140.dll and vcruntime140.dll not available](#error-msvcp140dll-and-vcruntime140dll-not-available) +* [Error: MEMORY ALLOC FAILED: mmap failed](#error-memory-alloc-failed-mmap-failed) +* [Illegal instruction (core dumped)](#illegal-instruction) +* [Virus Protection Alert](#virus-protection-alert) + +## SeLockMemoryPrivilege failed + +Please see [config.txt](config.txt) under section **LARGE PAGE SUPPORT** + +For Windows 7 pro, or Windows 8 and above see [this article](https://msdn.microsoft.com/en-gb/library/ms190730.aspx) (make sure to reboot afterwards!). + +For Windows 7 Home : + +1) Download and install [Windows Server 2003 Resource Kit Tools](https://www.microsoft.com/en-us/download/details.aspx?id=17657). Ignore incompatiablity warning during installation. + +2) In cmd or power shell: `ntrights -u %USERNAME% +r SeLockMemoryPrivilege` (where %USERNAME% is the user that will be running the program. This command needs to be run as admin) + +3) Reboot. + +Reference: http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=259791#pid259791 + +*Warning: do not download ntrights.exe from any other site other then the offical Microsoft download page.* + +## VirtualAlloc failed + +If you set up the user rights properly (see above), and your system has 4-8GB of RAM (50%+ use), there is a significant chance that there simply won't be a large enough chunk of contiguous memory because Windows is fairly bad at mitigating memory fragmentation. + +If that happens, disable all auto-staring applications and run the miner after a reboot. + +## Error msvcp140.dll and vcruntime140.dll not available + +Download and install this [runtime package](https://go.microsoft.com/fwlink/?LinkId=746572) from Microsoft. *Warning: Do NOT use "missing dll" sites - dll's are exe files with another name, and it is a fairly safe bet that any dll on a shady site like that will be trojaned. Please download offical runtimes from Microsoft above.* + + +## Error: MEMORY ALLOC FAILED: mmap failed + +On Linux you will need to configure large page support `sudo sysctl -w vm.nr_hugepages=128` and increase your +ulimit -l. To do this you need to add following lines to /etc/security/limits.conf: + + * soft memlock 262144 + * hard memlock 262144 + +Save file. You WILL need to log out and log back in for these settings to take affect on your user (no need to reboot, just relogin in your session). + +You can also do it Windows-style and simply run-as-root, but this is NOT recommended for security reasons. + +## Illegal Instruction + +This typically means you are trying to run it on a CPU that does not have [AES](https://en.wikipedia.org/wiki/AES_instruction_set). This only happens on older version of miner, new version gives better error message (but still wont' work since your CPU doesn't support the required instructions). + +## Virus Protection Alert + +Some Virus protection software flag the miner binary as *Male Ware*. +In this case the binary is moved to the quarantine area of the protection software. +This is a wrong alert and not avoid by use. +Add the binary to to protection software white list to solve this issue.s diff --git a/doc/compile.md b/doc/compile.md new file mode 100644 index 0000000..04b1fe4 --- /dev/null +++ b/doc/compile.md @@ -0,0 +1,81 @@ +# Compile xmr-stak + +## Content Overview +* [Build System](#build-system) +* [Generic Build Options](#generic-build-options) +* [CPU Build Options](#cpu-build-options) +* [AMD Build Options](#amd-build-options) +* [NVIDIA Build Options](#nvidia-build-options) +* [Compile in Windows](compile_Windows.md) +* [Compile in Linux](compile_Linux.md) +* [Compile in FreeBSD](compile_FreeBSD.md) + +## Build System + +The build system is CMake, if you are not familiar with CMake you can learn more [here](https://cmake.org/runningcmake/). + +By default the miner will be build with all dependencies. Each optional dependency can be disabled (this will reduce the miner features). + +There are two easy ways to set variables for `cmake` to configure *xmr-stak* +- use the ncurses GUI + - `ccmake .` + - edit your options + - end the GUI by pressing the key `c`(create) and than `g`(generate) +- set Options on the command line + - enable a option: `cmake . -DNAME_OF_THE_OPTION=ON` + - disable a option `cmake . -DNAME_OF_THE_OPTION=OFF` + - set a value `cmake . -DNAME_OF_THE_OPTION=value` + +After the configuration you need to compile the miner, follow the guide for your platform: +* [Compile in Windows](compile_Windows.md) +* [Compile in Linux](compile_Linux.md) +* [Compile in FreeBSD](compile_FreeBSD.md) + +## Generic Build Options +- `CMAKE_INSTALL_PREFIX` install miner to the home folder + - `cmake . -DCMAKE_INSTALL_PREFIX=$HOME/xmr-stak-cpu` + - you can find the binary and the `config.txt` file after `make install` in `$HOME/xmr-stak-cpu/bin` +- `CMAKE_LINK_STATIC` link libgcc and libstdc++ libraries static (default OFF) + - disable with `cmake . -DCMAKE_LINK_STATIC=ON` +- `CMAKE_BUILD_TYPE` set the build type + - valid options: `Release` or `Debug` + - you should always keep `Release` for your productive miners +- `MICROHTTPD_ENABLE` allow to disable/enable the dependency *microhttpd* + - there is no *http* interface available if option is disabled: `cmake . -DMICROHTTPD_ENABLE=OFF` +- `OpenSSL_ENABLE` allow to disable/enable the dependency *OpenSSL* + - it is not possible to connect to a *https* secured pool if option is disabled: `cmake . -DOpenSSL_ENABLE=OFF` + +## CPU Build Options + +- `CPU_ENABLE` allow to disable/enable the CPU backend of the miner +- `HWLOC_ENABLE` allow to disable/enable the dependency *hwloc* + - the config suggestion is not optimal if option is disabled: `cmake . -DHWLOC_ENABLE=OFF` + - disabling can be reduce the miner performance + +## AMD Build Options + +- `OpenCL_ENABLE` allow to disable/enable the AMD backend of the miner + +## NVIDIA Build Options + +- `CUDA_ENABLE` allow to disable/enable the NVIDIA backend of the miner +- `CUDA_ARCH` build for a certain compute architecture + - this option needs a semicolon separated list + - `cmake . -DCUDA_ARCH=61` or `cmake . -DCUDA_ARCH=20;61` + - [list](https://developer.nvidia.com/cuda-gpus) with NVIDIA compute architectures + - by default the miner is created for all currently available compute architectures +- `CUDA_COMPILER` select the compiler for the device code + - valid options: `nvcc` or `clang` if clang 3.9+ is installed +``` + # compile host and device code with clang + export CC=/usr/bin/clang + export CXX=/usr/bin/clang++ + cmake . -DCUDA_COMPILER=clang +``` +- `XMR-STAK_LARGEGRID` use `32` or `64` bit integer for on device indices + - default is enabled + - on old GPUs it can increase the hash rate if disabled: `cmake . -DXMR-STAK_LARGEGRID=OFF` + - if disabled it is not allowed to use more than `1000` threads on the device +- `XMR-STAK_THREADS` give the compiler information which value for `threads` is used at runtime + - default is `0` (compile time optimization) + - if the miner is compiled and used at runtime with the some value it can increase the hash rate: `cmake . -DXMR-STAK_THREADS=32` diff --git a/doc/FREEBSDCOMPILE.md b/doc/compile_FreeBSD.md index 230ce73..6dd1165 100644 --- a/doc/FREEBSDCOMPILE.md +++ b/doc/compile_FreeBSD.md @@ -13,8 +13,6 @@ Type 'y' and hit enter to proceed with installing the packages. git clone https://github.com/fireice-uk/xmr-stak-cpu.git cd xmr-stak-cpu cmake . - make + make install -Now you have the binary located at "bin/xmr-stak-cpu". Either move this file to your desired location or run "make install" to install it to your path. - -You can edit the prebuilt [config.txt](config.txt) file found in the root of the repository or you can make your own. This file is required to run xmr-stak-cpu. +Now you have the binary located at "bin/xmr-stak" and the needed shared libraries. diff --git a/doc/LINUXCOMPILE.md b/doc/compile_Linux.md index 4486081..4947fd2 100644 --- a/doc/LINUXCOMPILE.md +++ b/doc/compile_Linux.md @@ -37,8 +37,7 @@ make install ``` -- g++ version 5.1 or higher is required for full C++11 support. CMake release compile scripts, as well as CodeBlocks build environment for debug builds is included. - +- g++ version 5.1 or higher is required for full C++11 support. If you want to compile the binary without installing libraries / compiler or just compile binary for some other distribution, please check the [build_xmr-stak_docker.sh script](scripts/build_xmr-stak_docker/build_xmr-stak_docker.sh). ### To do a static build for a system without gcc 5.1+ @@ -47,6 +46,3 @@ If you want to compile the binary without installing libraries / compiler or jus make install ``` Note - cmake caches variables, so if you want to do a dynamic build later you need to specify '-DCMAKE_LINK_STATIC=OFF' - - - diff --git a/doc/WINCOMPILE.md b/doc/compile_Windows.md index f70ecff..dec1e75 100644 --- a/doc/WINCOMPILE.md +++ b/doc/compile_Windows.md @@ -58,7 +58,7 @@ ## Compile -- download and unzip `xmr-stak-cpu` +- download and unzip `xmr-stak - open the command line terminal `cmd` - `cd` to your unzipped source code directory - execute the following commands (NOTE: path to VS2017 can be different) @@ -71,4 +71,3 @@ cmake --build . --config Release --target install cd bin\Release ``` -- customize your `config.txt` file by adding the pool, username and password diff --git a/doc/tuning.md b/doc/tuning.md new file mode 100644 index 0000000..820fab5 --- /dev/null +++ b/doc/tuning.md @@ -0,0 +1,67 @@ +# Tuning Guide + +## Content Overview +* [NVIDIA Backend](#nvidia-backend) + * [Choose Value for `threads` and `blocks`](#choose-value-for-threads-and-blocks) + * [Add more GPUs](#add-more-gpus) +* [AMD Backend](#amd-backend) + * [Choose `intensity` and `worksize`](#choose-intensity-and-worksize) + * [Add more GPUs](#add-more-gpus) + +## NVIDIA Backend + +By default the NVIDIA backend can be tuned in the config file `nvidia.txt` + +### Choose Value for `threads` and `blocks` + +The optimal parameter for the `threads` and `blocks` option in `config.txt` depend on your GPU. +For all GPU's with a compute capability `>=2.0` and `<6.0` there is a restriction of the amount of RAM that can be used for the mining algorithm. +The maximum RAM that can be used must be less than 2GB (e.g. GTX TITAN) or 1GB (e.g. GTX 750-TI). +The amount of RAM used for mining can be changed with `"threads" : T, "blocks : B"`. + - `T` = threads used per block + - `B` = CUDA blocks started (should be a multiple of the multiprocessors `M` on the GPU) + +For the 2GB limit the equations must be full filled: `T * B * 2 <= 1900` and ` B mod M == 0`. +The value `1900` is used because there is a little data overhead for administration. +The GTX Titan X has 24 multiprocessors `M`, this means a valid and good starting configuration is `"threads" : 16, "blocks : 48"` +and full fill all restrictions `16 * 48 * 2 = 1536` and `48 mod 24 = 0`. + +The memory limit for NVIDIA Pascal GPUs is `16` GiB if the newest CUDA driver is used. + +### Add More GPUs + +To add a new GPU you need to add a new config set to `gpu_threads_conf`. +`index` is the number of the gpu, the index order not follow the order from `nvidia-smi` or the order shown in windows. + +``` +"gpu_threads_conf" : +[ + { "index" : 0, "threads" : 17, "blocks" : 60, "bfactor" : 0, "bsleep" : 0, "affine_to_cpu" : false}, + { "index" : 1, "threads" : 17, "blocks" : 60, "bfactor" : 0, "bsleep" : 0, "affine_to_cpu" : false}, +], +``` + +## AMD Backend + +By default the NVIDIA backend can be tuned in the config file `nvidia.txt` + +### Choose `intensity` and `worksize` + +Intensity means the number of threads used to mine. +`worksize` is the number of threads working together to increase the miner performance. +In the most cases a `worksize` of `16` or `8` is optimal. + +### Add More GPUs + +To add a new GPU you need to add a new config set to `gpu_threads_conf` and increase `gpu_thread_num"` to the number of gpus (entries in `gpu_threads_conf`). +`index` is the number of the gpu. + +``` +"gpu_thread_num" : 2, + +"gpu_threads_conf" : +[ + { "index" : 0, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false }, + { "index" : 1, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false }, +], +```
\ No newline at end of file diff --git a/doc/usage.md b/doc/usage.md new file mode 100644 index 0000000..dfebf21 --- /dev/null +++ b/doc/usage.md @@ -0,0 +1,54 @@ +# HowTo Use xmr-stak + +## Content Overview +* [Configuration](#configuration) +* [Usage on Windows](#usage-on-windows) +* [Usage on Linux](#usage-on-linux) +* [Command Line Options](#command-line-options) +* [HTML and JSON API report configuraton](#xx) + +## Configurations + +Before you started the miner the first time there are no config files available. +Config files will be created at the first start. +The number of files depends on the available backends. +`config.txt` contains the common miner settings. +`amd.txt`, `cpu.txt` and `nvidia.txt` contains miner backend specific settings and can be used for further tuning ([Tuning Guide](tuning.md)). + + +## Usage on Windows +1) Double click the `xmr-stak.exe` file +2) Fill in the pool url, username and password + +## Usage on Linux +1) Open a terminal within the folder with the binary +2) Start the miner with `./xmr-stak` + +## Command Line Options + +The miner allow to overwrite some of the settings via command line options. + +``` +Usage: xmr-stak [OPTION]... [CONFIGFILE] + + -c, --config common miner configuration file + -h, --help show this help + --noCPU disable the CPU miner backend + --cpu FILE CPU backend miner config file + --noAMD disable the AMD miner backend + --amd FILE AMD backend miner config file + +The Following options temporary overwrites the config file settings: + -o, --url URL pool url and port, e.g. pool.usxmrpool.com:3333 + -u, --user USERNAME pool user name or wallet address + -p, --pass PASSWD pool password, in the most cases x or empty "" + +## HTML and JSON API report configuraton + +To configure the reports shown on the [README](README.md) side you need to edit the httpd_port variable. Then enable wifi on your phone and navigate to [miner ip address]:[httpd_port] in your phone browser. If you want to use the data in scripts, you can get the JSON version of the data at url [miner ip address]:[httpd_port]/api.json + +## Default Developer Donation +By default the miner will donate 2% of the hashpower (2 minute in 100 minutes) to my pool. If you want to change that, edit **xmrstak/donate-level.hpp** before you build the binaries. + +If you want to donate directly to support further development, here is my wallet +``` |