Welcome to the PiMP OS and Miner.farm forum.
PiMP Guide to Ethminer.
The ethminer is an Ethereum GPU mining worker. This is the actively maintained version of ethminer. It originates from cpp-ethereum project (where GPU mining has been discontinued) and builds on the improvements made in Genoil's fork. See FAQ for more details.
- OpenCL mining
- Nvidia CUDA mining
- realistic benchmarking against arbitrary epoch/DAG/blocknumber
- on-GPU DAG generation (no more DAG files on disk)
- stratum mining without proxy
- OpenCL devices picking
- farm failover (getwork + stratum)
Ethminer can be added using
First, make sure you have the latest copy by running
pimpupand selecting the appropriate updates. In the release, you are looking for these entries, please be aware the numbers may change with future updates.
 (amd) ethminer 0.15.0-pimp: ethash [ethminer.amd.pcfg]  (nvid) ethminer 0.15.0-pimp: ethash [ethminer.amd.pcfg]
Now you can add ethminer as normal using
pimp --add, and one of the following profiles.
[/root]:# pimp --add | grep -i ethminer 1451 (amd) ethminer 0.15.0-pimp: ethash [ethminer.amd.pcfg] [ethminer.amd.pcfg] 2451 (nvid) ethminer 0.15.0-pimp: ethash [ethminer.nvidia.pcfg] [ethminer.nvidia.pcfg]
pimp --edit, modify the defaults as appropriate. Here is an example pool config:
# ETH Ethermine (USER1 is ETH wallet dot workername) POOL1=stratum+tcp://0xe8C128B81B26bA1614f4CF2292A5D754Ca352c91:email@example.com:4444
The important part to notice here is that ethminer uses a POOL with the Wallet, Worker, Password, & Pool URL as one long string. We can break the POOL string down as follows:
stratumSelects the stratum protocol. The choices are:
0: official stratum spec: ethpool, ethermine, coinotron, mph, nanopool (default)
1: eth-proxy compatible: dwarfpool, f2pool, nanopool (required for hashrate reporting to work with nanopool)
2: EthereumStratum/1.0.0: nicehash
tcpSelects the TCP mode (
0: Force TLS1.2 (default)
1: Allow any TLS version
2: Allow self-signed or invalid certs and any TLS version
Wallet.Worker:Passwordis pretty obvious, the Worker is so you can define to a pool a given rig instance. The password is normally
x, but check with your pool to be sure. In the default, only
pool.address:portCheck with the pool to be sure you have the right address and port.
So say you want to connect to a hashrate reporting nanopool, using TLS with self-signed certs. You would use a string like this:
The documentation for your pool will most likely give you the proper settings for this string. You can also define a
POOL2and on with backup pools. Ethminer will fall down the list of pools if it fails to connect to one.
Next, you setup the flags. The AMD default looks like this:
FLAGS=-G --farm-recheck 2000
-Goption selects OpenCL, or AMD mode. If you have both AMD and NVIDIA cards, you will need to setup which type of cards ethminer uses. Simply start ethminer using the
[/opt/miners/ethminer]:# /opt/miners/ethminer/ethminer --list-devices Listing OpenCL devices. FORMAT: [platformID] [deviceID] deviceName   GeForce GTX 1060 6GB CL_DEVICE_TYPE: GPU CL_DEVICE_GLOBAL_MEM_SIZE: 6371475456 CL_DEVICE_MAX_MEM_ALLOC_SIZE: 1592868864 CL_DEVICE_MAX_WORK_GROUP_SIZE: 1024   GeForce GTX 1060 6GB CL_DEVICE_TYPE: GPU CL_DEVICE_GLOBAL_MEM_SIZE: 6373572608 CL_DEVICE_MAX_MEM_ALLOC_SIZE: 1593393152 CL_DEVICE_MAX_WORK_GROUP_SIZE: 1024   Ellesmere CL_DEVICE_TYPE: GPU CL_DEVICE_GLOBAL_MEM_SIZE: 8579432448 CL_DEVICE_MAX_MEM_ALLOC_SIZE: 4244635648 CL_DEVICE_MAX_WORK_GROUP_SIZE: 256   Ellesmere CL_DEVICE_TYPE: GPU CL_DEVICE_GLOBAL_MEM_SIZE: 4284465152 CL_DEVICE_MAX_MEM_ALLOC_SIZE: 4020158464 CL_DEVICE_MAX_WORK_GROUP_SIZE: 256 Listing CUDA devices. FORMAT: [deviceID] deviceName  GeForce GTX 1060 6GB Compute version: 6.1 cudaDeviceProp::totalGlobalMem: 6371475456 Pci: 0000:01:00  GeForce GTX 1060 6GB Compute version: 6.1 cudaDeviceProp::totalGlobalMem: 6373572608 Pci: 0000:03:00
Here you can see a mixed box, with two of each AMD and NVIDIA GPUs. The first [number] is the PlatformID. In this example, you can see that NVIDIA devices are PlatformID , and AMD is . So we will need to add
--opencl-platform 1like this:
FLAGS=-G --opencl-platform 1 --farm-recheck 2000
If you wish to use NVIDIA cards, you can simply change the
FLAGS=-U --farm-recheck 2000
There is another option for ethminer that allows you to use both NVIDIA and AMD gpus at the sometime, but we cannot recommend using it at this time.
Ethminer also allows a lot of control of the miner setup. Review the help data, FAQ, and information from the internet for reference. The full help output is:
[/opt/miners/ethminer]:# cat help Usage ethminer [OPTIONS] Options: Work farming mode: -F,--farm <url> (deprecated) Put into mining farm mode with the work server at URL (default: http://127.0.0.1:8545) -FF,-FO, --farm-failover, --stratum-failover <url> (deprecated) Failover getwork/stratum URL (default: disabled) --farm-retries <n> Number of retries until switch to failover (default: 3) -S, --stratum <host:port> (deprecated) Put into stratum mode with the stratum server at host:port -SF, --stratum-failover <host:port> (deprecated) Failover stratum server at host:port -O, --userpass <username.workername:password> (deprecated) Stratum login credentials -FO, --failover-userpass <username.workername:password> (deprecated) Failover stratum login credentials (optional, will use normal credentials when omitted) --work-timeout <n> reconnect/failover after n seconds of working on the same (stratum) job. Defaults to 180. Don't set lower than max. avg. block time --stratum-ssl [<n>] (deprecated) Use encryption to connect to stratum server. 0: Force TLS1.2 (default) 1: Allow any TLS version 2: Allow self-signed or invalid certs and any TLS version -SP, --stratum-protocol <n> (deprecated) Choose which stratum protocol to use: 0: official stratum spec: ethpool, ethermine, coinotron, mph, nanopool (default) 1: eth-proxy compatible: dwarfpool, f2pool, nanopool (required for hashrate reporting to work with nanopool) 2: EthereumStratum/1.0.0: nicehash -RH, --report-hashrate Report current hashrate to pool (please only enable on pools supporting this) -HWMON [<n>], Displays gpu temp, fan percent and power usage. Note: In linux, the program uses sysfs, which may require running with root priviledges. 0: Displays only temp and fan percent (default) 1: Also displays power usage --exit Stops the miner whenever an error is encountered -SE, --stratum-email <s> Email address used in eth-proxy (optional) --farm-recheck <n> Leave n ms between checks for changed work (default: 500). When using stratum, use a high value (i.e. 2000) to get more stable hashrate output -P URL Specify a pool URL. Can be used multiple times. The 1st for for the primary pool, and the 2nd for the failover pool. URL takes the form: scheme://user[:password]@hostname:port. for getwork use one of the following schemes: http for stratum use one of the following schemes: stratum+ssl stratum+tcp stratum+tls stratum+tls12 stratum1+ssl stratum1+tcp stratum1+tls stratum1+tls12 stratum2+ssl stratum2+tcp stratum2+tls stratum2+tls12 Example: stratum+ssl://firstname.lastname@example.org:5555 Benchmarking mode: -M [<n>],--benchmark [<n>] Benchmark for mining and exit; Optionally specify block number to benchmark against specific DAG. --benchmark-warmup <seconds> Set the duration of warmup for the benchmark tests (default: 3). --benchmark-trial <seconds> Set the duration for each trial for the benchmark tests (default: 3). --benchmark-trials <n> Set the number of benchmark trials to run (default: 5). Simulation mode: -Z [<n>],--simulation [<n>] Mining test mode. Used to validate kernel optimizations. Optionally specify block number. Mining configuration: -G,--opencl When mining use the GPU via OpenCL. -U,--cuda When mining use the GPU via CUDA. -X,--cuda-opencl Use OpenCL + CUDA in a system with mixed AMD/Nvidia cards. May require setting --opencl-platform 1 or 2. Use --list-devices option to check which platform is your AMD. --opencl-platform <n> When mining using -G/--opencl use OpenCL platform n (default: 0). --opencl-device <n> When mining using -G/--opencl use OpenCL device n (default: 0). --opencl-devices <0 1 ..n> Select which OpenCL devices to mine on. Default is to use all -t, --mining-threads <n> Limit number of CPU/GPU miners to n (default: use everything available on selected platform) --list-devices List the detected OpenCL/CUDA devices and exit. Should be combined with -G, -U, or -X flag --display-interval <n> Set mining stats display interval in seconds. (default: every 5 seconds) -L, --dag-load-mode <mode> DAG generation mode. parallel - load DAG on all GPUs at the same time (default) sequential - load DAG on GPUs one after another. Use this when the miner crashes during DAG generation single <n> - generate DAG on device n, then copy to other devices OpenCL configuration: --cl-kernel <n> Use a different OpenCL kernel (default: use stable kernel) 0: stable kernel 1: experimental kernel --cl-local-work Set the OpenCL local work size. Default is 128 --cl-global-work Set the OpenCL global work size as a multiple of the local work size. Default is 8192 * 128 --cl-parallel-hash <1 2 ..8> Define how many threads to associate per hash. Default=8 CUDA configuration: --cuda-block-size Set the CUDA block work size. Default is 128 --cuda-grid-size Set the CUDA grid size. Default is 8192 --cuda-streams Set the number of CUDA streams. Default is 2 --cuda-schedule <mode> Set the schedule mode for CUDA threads waiting for CUDA devices to finish work. Default is 'sync'. Possible values are: auto - Uses a heuristic based on the number of active CUDA contexts in the process C and the number of logical processors in the system P. If C > P, then yield else spin. spin - Instruct CUDA to actively spin when waiting for results from the device. yield - Instruct CUDA to yield its thread when waiting for results from the device. sync - Instruct CUDA to block the CPU thread on a synchronization primitive when waiting for the results from the device. --cuda-devices <0 1 ..n> Select which CUDA GPUs to mine on. Default is to use all --cuda-parallel-hash <1 2 ..8> Define how many hashes to calculate in a kernel, can be scaled to achieve better performance. Default=4 --cuda-noeval bypass host software re-evalution of GPU solutions. This will trim some milliseconds off the time it takes to send a result to the pool. Use at your own risk! If GPU generates errored results they WILL be forwarded to the pool Not recommended at high overclock. API core configuration: --api-port Set the api port, the miner should listen to. Use 0 to disable. Default=0, use negative numbers to run in readonly mode. for example -3333. General Options: -v,--verbosity <0 - 9> Set the log verbosity from 0 to 9 (default: 5). Set to 9 for switch time logging. -V,--version Show the version and exit. -h,--help Show this help message and exit. Envionment variables: NO_COLOR - set to any value to disable color output. Unset to re-enable color output.
We promise to keep your email safe and never spam you.
Copyright (c) 2012-2018 PiMP LLC. All rights Reserved.