macOS Installation: ethminer on M1 (ARM) Mac's (Crypto Miner Software)
Posted: Wed Mar 24, 2021 9:58 pm
An Ethereum miner with OpenCL, CUDA and stratum support. This guide will show how to install and run ethminer on an M1(x) Mac with ARM technology.
Install ethminer-m1 on macOS for ARM-based Apple Mac
1. Download pre-compiled version (No cmake compile is required for this) from here and save it to your Desktop.
2. Open Terminal and change directory to your Desktop.
3. In Terminal, change permissions on ethminer-m:
4. In Terminal try to start ethminer-m1. You should receive a warning.
5. Allow ethminer-m1 in System Preferences -> Security & Privacy -> Allow
6. Finally, launch ethminer-m1 again. For configuration parameters, see below.
Example launch sequence:
Note: On a MacBook Air M1 2020 with 8 GPU's, ethminer sees Using Device : Intel GPU 0.0 Apple M1 OpenCL 1.2 Memory : 10.67 GB (11453251584 B)
Ethminer connections specifications:
Whether you need to connect to a stratum pool or to make use of getWork polling
mode (generally used to solo mine) you need to specify the connection making use
of -P command line argument filling up the URL. The URL is in the form :
scheme://[user[.workername][:password]@]hostname:port[/...].
where 'scheme' can be any of :
getwork for http getWork mode
stratum for tcp stratum mode
stratums for tcp encrypted stratum mode
stratumss for tcp encrypted stratum mode with strong TLS 1.2 validation
Example 1: -P getwork://127.0.0.1:8545
Example 2: -P stratums://0x012345678901234567890234567890123.miner1@ethermine.org:5555
Example 3: -P stratum://0x012345678901234567890234567890123.miner1@nanopool.org:9999/john.doe%40gmail.com
Example 4: -P stratum://0x012345678901234567890234567890123@nanopool.org:9999/miner1/john.doe%40gmail.com
Please note: if your user or worker or password do contain characters
which may impair the correct parsing (namely any of . : @ # ?) you have to
enclose those values in backticks( ` ASCII 096) or Url Encode them
Also note that backtick has a special meaning in *nix environments thus
you need to further escape those backticks with backslash.
Example : -P stratums://\`account.121\`.miner1:x@ethermine.org:5555
Example : -P stratums://account%2e121.miner1:x@ethermine.org:5555
(In Windows backslashes are not needed)
Common url encoded chars are
. (dot) %2e
: (column) %3a
@ (at sign) %40
? (question) %3f
# (number) %23
/ (slash) %2f
+ (plus) %2b
You can add as many -P arguments as you want. Every -P specification
after the first one behaves as fail-over connection. When also the
the fail-over disconnects ethminer passes to the next connection
available and so on till the list is exhausted. At that moment
ethminer restarts the connection cycle from the first one.
An exception to this behavior is ruled by the --failover-timeout
command line argument. See 'ethminer -H misc' for details.
The special notation '-P exit' stops the failover loop.
When ethminer reaches this kind of connection it simply quits.
When using stratum mode ethminer tries to auto-detect the correct
flavour provided by the pool. Should be fine in 99% of the cases.
Nevertheless you might want to fine tune the stratum flavour by
any of of the following valid 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 stratum3+ssl stratum3+tcp stratum3+tls stratum3+tls12
where a scheme is made up of two parts, the stratum variant + the tcp transport protocol
Stratum variants :
stratum Stratum
stratum1 Eth Proxy compatible
stratum2 EthereumStratum 1.0.0 (nicehash)
stratum3 EthereumStratum 2.0.0
Transport variants :
tcp Unencrypted tcp connection
tls Encrypted tcp connection (including deprecated TLS 1.1)
tls12 Encrypted tcp connection with TLS 1.2
ssl Encrypted tcp connection with TLS 1.2
Install ethminer-m1 on macOS for ARM-based Apple Mac
1. Download pre-compiled version (No cmake compile is required for this) from here and save it to your Desktop.
2. Open Terminal and change directory to your Desktop.
Code: Select all
cd Desktop
3. In Terminal, change permissions on ethminer-m:
Code: Select all
chmod +x ethminer-m1
4. In Terminal try to start ethminer-m1. You should receive a warning.
Code: Select all
./ethminer-m1
5. Allow ethminer-m1 in System Preferences -> Security & Privacy -> Allow
6. Finally, launch ethminer-m1 again. For configuration parameters, see below.
Code: Select all
./ethminer-m1
Example launch sequence:
Code: Select all
./ethminer-m1 -P stratum://ETH:WALLETADDRESS.ME@ethash.unmineable.com:3333
Note: On a MacBook Air M1 2020 with 8 GPU's, ethminer sees Using Device : Intel GPU 0.0 Apple M1 OpenCL 1.2 Memory : 10.67 GB (11453251584 B)
Ethminer connections specifications:
Whether you need to connect to a stratum pool or to make use of getWork polling
mode (generally used to solo mine) you need to specify the connection making use
of -P command line argument filling up the URL. The URL is in the form :
scheme://[user[.workername][:password]@]hostname:port[/...].
where 'scheme' can be any of :
getwork for http getWork mode
stratum for tcp stratum mode
stratums for tcp encrypted stratum mode
stratumss for tcp encrypted stratum mode with strong TLS 1.2 validation
Example 1: -P getwork://127.0.0.1:8545
Example 2: -P stratums://0x012345678901234567890234567890123.miner1@ethermine.org:5555
Example 3: -P stratum://0x012345678901234567890234567890123.miner1@nanopool.org:9999/john.doe%40gmail.com
Example 4: -P stratum://0x012345678901234567890234567890123@nanopool.org:9999/miner1/john.doe%40gmail.com
Please note: if your user or worker or password do contain characters
which may impair the correct parsing (namely any of . : @ # ?) you have to
enclose those values in backticks( ` ASCII 096) or Url Encode them
Also note that backtick has a special meaning in *nix environments thus
you need to further escape those backticks with backslash.
Example : -P stratums://\`account.121\`.miner1:x@ethermine.org:5555
Example : -P stratums://account%2e121.miner1:x@ethermine.org:5555
(In Windows backslashes are not needed)
Common url encoded chars are
. (dot) %2e
: (column) %3a
@ (at sign) %40
? (question) %3f
# (number) %23
/ (slash) %2f
+ (plus) %2b
You can add as many -P arguments as you want. Every -P specification
after the first one behaves as fail-over connection. When also the
the fail-over disconnects ethminer passes to the next connection
available and so on till the list is exhausted. At that moment
ethminer restarts the connection cycle from the first one.
An exception to this behavior is ruled by the --failover-timeout
command line argument. See 'ethminer -H misc' for details.
The special notation '-P exit' stops the failover loop.
When ethminer reaches this kind of connection it simply quits.
When using stratum mode ethminer tries to auto-detect the correct
flavour provided by the pool. Should be fine in 99% of the cases.
Nevertheless you might want to fine tune the stratum flavour by
any of of the following valid 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 stratum3+ssl stratum3+tcp stratum3+tls stratum3+tls12
where a scheme is made up of two parts, the stratum variant + the tcp transport protocol
Stratum variants :
stratum Stratum
stratum1 Eth Proxy compatible
stratum2 EthereumStratum 1.0.0 (nicehash)
stratum3 EthereumStratum 2.0.0
Transport variants :
tcp Unencrypted tcp connection
tls Encrypted tcp connection (including deprecated TLS 1.1)
tls12 Encrypted tcp connection with TLS 1.2
ssl Encrypted tcp connection with TLS 1.2
ethminer 0.19.0-17+commit.ce52c740.dirty
Build: darwin/release/appleclang
i 17:08:37 Configured pool us1.ethermine.org:4444
i 17:08:37 Selected pool us1.ethermine.org:4444
i 17:08:37 Stratum mode : Eth-Proxy compatible
i 17:08:37 Established connection to us1.ethermine.org [172.65.218.238:4444]
i 17:08:37 Spinning up miners...
cl 17:08:37 cl-0 Using Device : Intel GPU 0.0 Apple M1 OpenCL 1.2 Memory : 10.67 GB (11453251584 B)
i 17:08:37 Epoch : 403 Difficulty : 4.00 Gh
i 17:08:37 Job: 010f3abd… block 12104183 us1.ethermine.org [172.65.218.238:4444]
cl 17:08:38 cl-0 Generating split DAG + Light (total): 4.15 GB
i 17:08:38 Job: 45cd698c… block 12104183 us1.ethermine.org [172.65.218.238:4444]
cl 17:08:38 cl-0 OpenCL kernel
cl 17:08:38 cl-0 Creating DAG buffer, size: 4.15 GB, free: 6.52 GB
cl 17:08:38 cl-0 Creating light cache buffer, size: 66.37 MB
cl 17:08:38 cl-0 Loading kernels
cl 17:08:39 cl-0 Creating buffer for header.
cl 17:08:39 cl-0 Creating mining buffer
i 17:08:41 Job: 68665786… block 12104183 us1.ethermine.org [172.65.218.238:4444]
m 17:08:42 0:00 A0 0.00 h - cl0 0.00
i 17:08:45 Job: 3aad166a… block 12104183 us1.ethermine.org [172.65.218.238:4444]
m 17:08:47 0:00 A0 0.00 h - cl0 0.00
i 17:08:48 Job: 89c1c687… block 12104184 us1.ethermine.org [172.65.218.238:4444]
i 17:08:48 Job: d8242eb5… block 12104184 us1.ethermine.org [172.65.218.238:4444]
i 17:08:52 Job: e8afc8ce… block 12104184 us1.ethermine.org [172.65.218.238:4444]
m 17:08:52 0:00 A0 0.00 h - cl0 0.00
i 17:08:52 Job: f7b7e2ef… block 12104185 us1.ethermine.org [172.65.218.238:4444]
i 17:08:52 Job: ec5d0539… block 12104185 us1.ethermine.org [172.65.218.238:4444]
i 17:08:55 Job: 928cd4bd… block 12104186 us1.ethermine.org [172.65.218.238:4444]
i 17:08:56 Job: 6c1db8da… block 12104186 us1.ethermine.org [172.65.218.238:4444]
m 17:08:57 0:00 A0 0.00 h - cl0 0.00
i 17:08:59 Job: 1815263e… block 12104186 us1.ethermine.org [172.65.218.238:4444]
i 17:09:00 Job: 4da102a9… block 12104187 us1.ethermine.org [172.65.218.238:4444]
i 17:09:00 Job: 0d41105d… block 12104187 us1.ethermine.org [172.65.218.238:4444]
m 17:09:02 0:00 A0 0.00 h - cl0 0.00
i 17:09:03 Job: c8560ec9… block 12104188 us1.ethermine.org [172.65.218.238:4444]
i 17:09:03 Job: 28b9e42d… block 12104188 us1.ethermine.org [172.65.218.238:4444]
m 17:09:07 0:00 A0 0.00 h - cl0 0.00
i 17:09:07 Job: fd6a1e20… block 12104188 us1.ethermine.org [172.65.218.238:4444]
i 17:09:11 Job: 183fe1b8… block 12104188 us1.ethermine.org [172.65.218.238:4444]
m 17:09:12 0:00 A0 0.00 h - cl0 0.00
i 17:09:14 Job: a1bf1df7… block 12104189 us1.ethermine.org [172.65.218.238:4444]
i 17:09:14 Job: 12579362… block 12104189 us1.ethermine.org [172.65.218.238:4444]
cl 17:09:17 cl-0 4.15 GB of DAG data generated in 38,375 ms.
m 17:09:17 0:00 A0 210.81 Kh - cl0 210.81
i 17:09:18 Job: 2025d316… block 12104189 us1.ethermine.org [172.65.218.238:4444]
i 17:09:20 Job: 30743db9… block 12104190 us1.ethermine.org [172.65.218.238:4444]
m 17:09:22 0:00 A0 2.05 Mh - cl0 2.05
i 17:09:24 Job: fa21ee64… block 12104190 us1.ethermine.org [172.65.218.238:4444]
m 17:09:27 0:00 A0 1.98 Mh - cl0 1.98
i 17:09:28 Job: f02ec0a2… block 12104190 us1.ethermine.org [172.65.218.238:4444]
i 17:09:31 Job: 9c9a3775… block 12104191 us1.ethermine.org [172.65.218.238:4444]
i 17:09:31 Job: 5e8f9359… block 12104191 us1.ethermine.org [172.65.218.238:4444]
m 17:09:32 0:00 A0 1.97 Mh - cl0 1.97
i 17:09:35 Job: 9c259939… block 12104191 us1.ethermine.org [172.65.218.238:4444]
m 17:09:37 0:01 A0 2.02 Mh - cl0 2.02