3
by Braiam Peguero
* Forgot adding files to the branch. |
1 |
This is a multi-threaded multi-pool CPU and GPU miner with ATI GPU monitoring, |
2 |
(over)clocking and fanspeed support for bitcoin and derivative coins. |
|
3 |
||
4 |
This code is provided entirely free of charge by the programmer in his spare |
|
5 |
time so donations would be greatly appreciated. Please consider using the |
|
6 |
--donation feature or donate directly to the address below. |
|
7 |
||
8 |
Con Kolivas <kernel@kolivas.org> |
|
9 |
15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ |
|
10 |
||
11 |
DOWNLOADS: |
|
12 |
||
13 |
http://ck.kolivas.org/apps/cgminer |
|
14 |
||
15 |
GIT TREE: |
|
16 |
||
17 |
https://github.com/ckolivas/cgminer |
|
18 |
||
19 |
Support thread: |
|
20 |
||
21 |
http://bitcointalk.org/index.php?topic=28402.0 |
|
22 |
||
23 |
IRC Channel: |
|
24 |
||
25 |
irc://irc.freenode.net/cgminer |
|
26 |
||
27 |
License: GPLv2. See COPYING for details. |
|
28 |
||
29 |
Dependencies: |
|
30 |
curl dev library http://curl.haxx.se/libcurl/ |
|
31 |
(libcurl4-openssl-dev) |
|
32 |
curses dev library |
|
33 |
(libncurses5-dev or libpdcurses on WIN32) |
|
34 |
pkg-config http://www.freedesktop.org/wiki/Software/pkg-config |
|
35 |
jansson http://www.digip.org/jansson/ |
|
36 |
(jansson is included in-tree and not necessary) |
|
37 |
yasm 1.0.1+ http://yasm.tortall.net/ |
|
38 |
(yasm is optional, gives assembly routines for CPU mining) |
|
39 |
AMD APP SDK http://developer.amd.com/sdks/AMDAPPSDK |
|
40 |
(This sdk is optional and gives support for GPU mining) |
|
41 |
AMD ADL SDK http://developer.amd.com/sdks/ADLSDK |
|
42 |
(This sdk is optional and gives support for ATI GPU monitoring & clocking) |
|
43 |
||
44 |
Basic *nix build instructions: |
|
45 |
To build with GPU mining support: |
|
46 |
Install AMD APP sdk, latest version - there is no official place to |
|
47 |
install it so just keep track of where it is if you're not installing |
|
48 |
the include files and library files into the system directory.
|
|
49 |
(Do NOT install the ati amd sdk if you are on nvidia.)
|
|
50 |
To build with GPU monitoring & clocking support:
|
|
51 |
Extract the AMD ADL SDK, latest version - there is also no official
|
|
52 |
place for these files. Copy all the *.h files in the "include"
|
|
53 |
directory into cgminer's ADL_SDK directory. |
|
54 |
||
55 |
The easiest way to install the ATI AMD SPP sdk on linux is to actually put it |
|
56 |
into a system location. Then building will be simpler. Download the correct |
|
57 |
version for either 32 bit or 64 bit from here: |
|
58 |
http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx |
|
59 |
||
60 |
This will give you a file with a name like AMD-APP-SDK-v2.4-lnx64.tgz |
|
61 |
||
62 |
Then: |
|
63 |
||
64 |
sudo su |
|
65 |
cd /opt |
|
66 |
tar xf /path/to/AMD-APP-SDK-v2.4-lnx64.tgz |
|
67 |
cd / |
|
68 |
tar xf /opt/AMD-APP-SDK-v2.4-lnx64/icd-registration.tgz |
|
69 |
ln -s /opt/AMD-APP-SDK-v2.4-lnx64/include/CL /usr/include |
|
70 |
ln -s /opt/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/* /usr/lib/ |
|
71 |
ldconfig
|
|
72 |
||
73 |
If you are on 32 bit, x86_64 in the 2nd last line should be x86
|
|
74 |
||
75 |
To actually build:
|
|
76 |
||
77 |
./autogen.sh # only needed if building from git repo
|
|
78 |
CFLAGS="-O2 -Wall -march=native" ./configure
|
|
79 |
or if you haven't installed the ati files in system locations:
|
|
80 |
CFLAGS="-O2 -Wall -march=native -I<path to AMD APP include>" LDFLAGS="-L<path to AMD APP lib/x86_64> ./configure
|
|
81 |
make
|
|
82 |
|
|
83 |
If it finds the opencl files it will inform you with
|
|
84 |
"OpenCL: FOUND. GPU mining support enabled."
|
|
85 |
||
86 |
Basic WIN32 build instructions (LIKELY OUTDATED INFO. requires mingw32):
|
|
87 |
./autogen.sh # only needed if building from git repo
|
|
88 |
rm -f mingw32-config.cache
|
|
89 |
MINGW32_CFLAGS="-O2 -Wall -msse2" mingw32-configure
|
|
90 |
make
|
|
91 |
./mknsis.sh
|
|
92 |
|
|
93 |
Native WIN32 build instructions (on mingw32, on windows):
|
|
94 |
Install the Microsoft platform SDK
|
|
95 |
Install AMD APP sdk, latest version (only if you want GPU mining)
|
|
96 |
Install AMD ADL sdk, latest version (only if you want GPU monitoring)
|
|
97 |
(Do NOT install the ati amd sdk if you are on nvidia)
|
|
98 |
Install mingw32
|
|
99 |
Install libcurl, copy libcurl.m4 into /mingw/share/aclocal
|
|
100 |
Install pkg-config, copy pkg.m4 into /mingw/share/aclocal
|
|
101 |
Run:
|
|
102 |
autoreconf -fvi
|
|
103 |
CFLAGS="-O2 -msse2" ./configure
|
|
104 |
make
|
|
105 |
||
106 |
---
|
|
107 |
||
108 |
Usage instructions: Run "cgminer --help" to see options:
|
|
109 |
||
110 |
Usage: . [-atDdGCgIKklmpPQqrRsTouvwOchnV]
|
|
111 |
Options for both config file and command line:
|
|
112 |
--algo|-a <arg> Specify sha256 implementation for CPU mining:
|
|
113 |
auto Benchmark at startup and pick fastest algorithm
|
|
114 |
c Linux kernel sha256, implemented in C
|
|
115 |
4way tcatm's 4-way SSE2 implementation
|
|
116 |
via VIA padlock implementation
|
|
117 |
cryptopp Crypto++ C/C++ implementation
|
|
118 |
sse2_64 SSE2 64 bit implementation for x86_64 machines
|
|
119 |
sse4_64 SSE4.1 64 bit implementation for x86_64 machines (default: sse2_64)
|
|
120 |
--auto-fan Automatically adjust all GPU fan speeds to maintain a target temperature
|
|
121 |
--auto-gpu Automatically adjust all GPU engine clock speeds to maintain a target temperature
|
|
122 |
--cpu-threads|-t <arg> Number of miner CPU threads (default: 4)
|
|
123 |
--debug|-D Enable debug output
|
|
124 |
--device|-d <arg> Select device to use, (Use repeat -d for multiple devices, default: all)
|
|
125 |
--disable-gpu|-G Disable GPU mining even if suitable devices exist
|
|
126 |
--donation <arg> Set donation percentage to cgminer author (0.0 - 99.9) (default: 0.0)
|
|
127 |
--enable-cpu|-C Enable CPU mining with GPU mining (default: no CPU mining if suitable GPUs exist)
|
|
128 |
--expiry|-E <arg> Upper bound on how many seconds after getting work we consider a share from it stale (default: 120)
|
|
129 |
--failover-only Don't leak work to backup pools when primary pool is lagging
|
|
130 |
--gpu-threads|-g <arg> Number of threads per GPU (1 - 10) (default: 2)
|
|
131 |
--gpu-engine <arg> GPU engine (over)clock range in Mhz - one value, range and/or comma separated list (e.g. 850-900,900,750-850)
|
|
132 |
--gpu-fan <arg> GPU fan percentage range - one value, range and/or comma separated list (e.g. 25-85,85,65)
|
|
133 |
--gpu-memclock <arg> Set the GPU memory (over)clock in Mhz - one value for all or separate by commas for per card.
|
|
134 |
--gpu-powertune <arg> Set the GPU powertune percentage - one value for all or separate by commas for per card.
|
|
135 |
--gpu-vddc <arg> Set the GPU voltage in Volts - one value for all or separate by commas for per card.
|
|
136 |
--intensity|-I <arg> Intensity of GPU scanning (d or -10 -> 10, default: d to maintain desktop interactivity)
|
|
137 |
--kernel-path|-K <arg> Specify a path to where the kernel .cl files are (default: "/usr/local/bin")
|
|
138 |
--kernel|-k <arg> Select kernel to use (poclbm or phatk - default: auto)
|
|
139 |
--load-balance Change multipool strategy from failover to even load balance
|
|
140 |
--log|-l <arg> Interval in seconds between log output (default: 5)
|
|
141 |
--monitor|-m <arg> Use custom pipe cmd for output messages
|
|
142 |
--no-longpoll Disable X-Long-Polling support
|
|
143 |
--no-restart Do not attempt to restart GPUs that hang
|
|
144 |
--pass|-p <arg> Password for bitcoin JSON-RPC server
|
|
145 |
--per-device-stats Force verbose mode and output per-device statistics
|
|
146 |
--protocol-dump|-P Verbose dump of protocol-level activities
|
|
147 |
--queue|-Q <arg> Minimum number of work items to have queued (0 - 10) (default: 1)
|
|
148 |
--quiet|-q Disable logging output, display status and errors
|
|
149 |
--real-quiet Disable all output
|
|
150 |
--retries|-r <arg> Number of times to retry before giving up, if JSON-RPC call fails (-1 means never) (default: -1)
|
|
151 |
--retry-pause|-R <arg> Number of seconds to pause, between retries (default: 5)
|
|
152 |
--rotate <arg> Change multipool strategy from failover to regularly rotate at N minutes (default: 0)
|
|
153 |
--round-robin Change multipool strategy from failover to round robin on failure
|
|
154 |
--scan-time|-s <arg> Upper bound on time spent scanning current work, in seconds (default: 60)
|
|
155 |
--sched-start <arg> Set a time of day in HH:MM to start mining (a once off without a stop time)
|
|
156 |
--sched-stop <arg> Set a time of day in HH:MM to stop mining (will quit without a start time)
|
|
157 |
--shares <arg> Quit after mining N shares (default: unlimited)
|
|
158 |
--submit-stale Submit shares even if they would normally be considered stale
|
|
159 |
--syslog Use system log for output messages (default: standard error)
|
|
160 |
--temp-cutoff <arg> Temperature where a GPU device will be automatically disabled, one value or comma separated list (default: 95)
|
|
161 |
--temp-hysteresis <arg> Set how much the temperature can fluctuate outside limits when automanaging speeds (default: 3)
|
|
162 |
--temp-overheat <arg> Overheat temperature when automatically managing fan and GPU speeds (default: 85)
|
|
163 |
--temp-target <arg> Target temperature when automatically managing fan and GPU speeds (default: 75)
|
|
164 |
--text-only|-T Disable ncurses formatted screen output
|
|
165 |
--url|-o <arg> URL for bitcoin JSON-RPC server
|
|
166 |
--user|-u <arg> Username for bitcoin JSON-RPC server
|
|
167 |
--vectors|-v <arg> Override detected optimal vector width (1, 2 or 4)
|
|
168 |
--verbose Log verbose output to stderr as well as status output
|
|
169 |
--worksize|-w <arg> Override detected optimal worksize (default: 0)
|
|
170 |
--userpass|-O <arg> Username:Password pair for bitcoin JSON-RPC server
|
|
171 |
Options for command line only:
|
|
172 |
--config|-c <arg> Load a JSON-format configuration file
|
|
173 |
See example-cfg.json for an example configuration.
|
|
174 |
--help|-h Print this message
|
|
175 |
--ndevs|-n Enumerate number of detected GPUs and exit
|
|
176 |
--version|-V Display version and exit
|
|
177 |
||
178 |
---
|
|
179 |
||
180 |
EXECUTIVE SUMMARY ON USAGE:
|
|
181 |
||
182 |
Single pool, regular desktop:
|
|
183 |
||
184 |
cgminer -o http://pool:port -u username -p password
|
|
185 |
||
186 |
Single pool, dedicated miner:
|
|
187 |
||
188 |
cgminer -o http://pool:port -u username -p password -I 9
|
|
189 |
||
190 |
Single pool, first card regular desktop, 3 other dedicated cards:
|
|
191 |
||
192 |
cgminer -o http://pool:port -u username -p password -I d,9,9,9
|
|
193 |
||
194 |
Multiple pool, dedicated miner:
|
|
195 |
||
196 |
cgminer -o http://pool1:port -u pool1username -p pool1password -o http://pool2:port -u pool2usernmae -p pool2password -I 9
|
|
197 |
||
198 |
Add overclocking settings, GPU and fan control for all cards:
|
|
199 |
||
200 |
cgminer -o http://pool:port -u username -p password -I 9 --auto-fan --auto-gpu --gpu-engine 750-950 --gpu-memclock 300
|
|
201 |
||
202 |
Add overclocking settings, GPU and fan control with different engine settings for 4 cards:
|
|
203 |
||
204 |
cgminer -o http://pool:port -u username -p password -I 9 --auto-fan --auto-gpu --gpu-engine 750-950,945,700-930,960 --gpu-memclock 300
|
|
205 |
||
206 |
READ WARNINGS AND DOCUMENTATION BELOW ABOUT OVERCLOCKING
|
|
207 |
||
208 |
On Linux you virtually always need to export your display settings before
|
|
209 |
starting to get all the cards recognised and/or temperature+clocking working:
|
|
210 |
||
211 |
export DISPLAY=:0
|
|
212 |
||
213 |
---
|
|
214 |
||
215 |
WHILE RUNNING:
|
|
216 |
||
217 |
The following options are available while running with a single keypress:
|
|
218 |
||
219 |
[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
|
|
220 |
||
221 |
P gives you:
|
|
222 |
||
223 |
Current pool management strategy: Failover
|
|
224 |
[A]dd pool [R]emove pool [D]isable pool [E]nable pool
|
|
225 |
[C]hange management strategy [S]witch pool [I]nformation
|
|
226 |
||
227 |
||
228 |
S gives you:
|
|
229 |
||
230 |
[L]ongpoll: On
|
|
231 |
[Q]ueue: 0
|
|
232 |
[S]cantime: 60
|
|
233 |
[R]etries: -1
|
|
234 |
[P]ause: 5
|
|
235 |
||
236 |
||
237 |
D gives you:
|
|
238 |
||
239 |
Toggle: [D]ebug [N]ormal [S]ilent [V]erbose [R]PC debug
|
|
240 |
[L]og interval [C]lear
|
|
241 |
||
242 |
||
243 |
Q quits the application.
|
|
244 |
||
245 |
||
246 |
G gives you something like:
|
|
247 |
||
248 |
GPU 0: [124.2 / 191.3 Mh/s] [Q:212 A:77 R:33 HW:0 E:36% U:1.73/m]
|
|
249 |
Temp: 67.0 C
|
|
250 |
Fan Speed: 35% (2500 RPM)
|
|
251 |
Engine Clock: 960 MHz
|
|
252 |
Memory Clock: 480 Mhz
|
|
253 |
Vddc: 1.200 V
|
|
254 |
Activity: 93%
|
|
255 |
Powertune: 0%
|
|
256 |
Last initialised: [2011-09-06 12:03:56]
|
|
257 |
Thread 0: 62.4 Mh/s Enabled ALIVE
|
|
258 |
Thread 1: 60.2 Mh/s Enabled ALIVE
|
|
259 |
||
260 |
[E]nable [D]isable [R]estart GPU [C]hange settings
|
|
261 |
Or press any other key to continue
|
|
262 |
||
263 |
||
264 |
---
|
|
265 |
Also many issues and FAQs are covered in the forum thread
|
|
266 |
dedicated to this program,
|
|
267 |
http://forum.bitcoin.org/index.php?topic=28402.0
|
|
268 |
||
269 |
The output line shows the following:
|
|
270 |
GPU 1: 73.5C 2551RPM | 427.3/443.0Mh/s | A:8 R:0 HW:0 U:4.39/m
|
|
271 |
||
272 |
Each column is as follows:
|
|
273 |
Temperature (if supported)
|
|
274 |
Fanspeed (if supported)
|
|
275 |
A 5 second exponentially decaying average hash rate
|
|
276 |
An all time average hash rate
|
|
277 |
The number of accepted shares
|
|
278 |
The number of rejected shares
|
|
279 |
The number of hardware erorrs
|
|
280 |
The utility defines as the number of shares / minute
|
|
281 |
||
282 |
The cgminer status line shows:
|
|
283 |
TQ: 1 ST: 1 SS: 0 DW: 0 NB: 1 LW: 8 GF: 1 RF: 1
|
|
284 |
||
285 |
TQ is Total Queued work items.
|
|
286 |
ST is STaged work items (ready to use).
|
|
287 |
SS is Stale Shares discarded (detected and not submitted so don't count as rejects)
|
|
288 |
DW is Discarded Work items (work from block no longer valid to work on)
|
|
289 |
NB is New Blocks detected on the network
|
|
290 |
LW is Locally generated Work items
|
|
291 |
GF is Getwork Fail Occasions (server slow to provide work)
|
|
292 |
RF is Remote Fail occasions (server slow to accept work)
|
|
293 |
||
294 |
NOTE: Running intensities above 9 with current hardware is likely to only
|
|
295 |
diminish return performance even if the hash rate might appear better. A good
|
|
296 |
starting baseline intensity to try on dedicated miners is 9. Higher values are
|
|
297 |
there to cope with future improvements in hardware.
|
|
298 |
||
299 |
---
|
|
300 |
MULTIPOOL
|
|
301 |
||
302 |
FAILOVER STRATEGIES WITH MULTIPOOL:
|
|
303 |
A number of different strategies for dealing with multipool setups are
|
|
304 |
available. Each has their advantages and disadvantages so multiple strategies
|
|
305 |
are available by user choice, as per the following list:
|
|
306 |
||
307 |
FAILOVER:
|
|
308 |
The default strategy is failover. This means that if you input a number of
|
|
309 |
pools, it will try to use them as a priority list, moving away from the 1st
|
|
310 |
to the 2nd, 2nd to 3rd and so on. If any of the earlier pools recover, it will
|
|
311 |
move back to the higher priority ones.
|
|
312 |
||
313 |
ROUND ROBIN:
|
|
314 |
This strategy only moves from one pool to the next when the current one falls
|
|
315 |
idle and makes no attempt to move otherwise.
|
|
316 |
||
317 |
ROTATE:
|
|
318 |
This strategy moves at user-defined intervals from one active pool to the next,
|
|
319 |
skipping pools that are idle.
|
|
320 |
||
321 |
LOAD BALANCE:
|
|
322 |
This strategy sends work in equal amounts to all the pools specified. If any
|
|
323 |
pool falls idle, the rest will take up the slack keeping the miner busy.
|
|
324 |
||
325 |
---
|
|
326 |
LOGGING
|
|
327 |
||
328 |
cgminer will log to stderr if it detects stderr is being redirected to a file.
|
|
329 |
To enable logging simply add 2>logfile.txt to your command line and logfile.txt
|
|
330 |
will contain the logged output at the log level you specify (normal, verbose,
|
|
331 |
debug etc.)
|
|
332 |
||
333 |
In other words if you would normally use:
|
|
334 |
./cgminer -o xxx -u yyy -p zzz
|
|
335 |
if you use
|
|
336 |
./cgminer -o xxx -u yyy -p zzz 2>logfile.txt
|
|
337 |
it will log to a file called logfile.txt and otherwise work the same.
|
|
338 |
||
339 |
||
340 |
There is also the -m option on linux which will spawn a command of your choice
|
|
341 |
and pipe the output directly to that command.
|
|
342 |
||
343 |
---
|
|
344 |
OVERCLOCKING WARNING AND INFORMATION
|
|
345 |
||
346 |
AS WITH ALL OVERCLOCKING TOOLS YOU ARE ENTIRELY RESPONSIBLE FOR ANY HARM YOU
|
|
347 |
MAY CAUSE TO YOUR HARDWARE. OVERCLOCKING CAN INVALIDATE WARRANTIES, DAMAGE
|
|
348 |
HARDWARE AND EVEN CAUSE FIRES. THE AUTHOR ASSUMES NO RESPONSIBILITY FOR ANY
|
|
349 |
DAMAGE YOU MAY CAUSE OR UNPLANNED CHILDREN THAT MAY OCCUR AS A RESULT.
|
|
350 |
||
351 |
The GPU monitoring, clocking and fanspeed control incorporated into cgminer
|
|
352 |
comes through use of the ATI Display Library. As such, it only supports ATI
|
|
353 |
GPUs. Even if ADL support is successfully built into cgminer, unless the card
|
|
354 |
and driver supports it, no GPU monitoring/settings will be available.
|
|
355 |
||
356 |
Cgminer supports initial setting of GPU engine clock speed, memory clock
|
|
357 |
speed, voltage, fanspeed, and the undocumented powertune feature of 69x0+ GPUs.
|
|
358 |
The setting passed to cgminer is used by all GPUs unless separate values are
|
|
359 |
specified. All settings can all be changed within the menu on the fly on a
|
|
360 |
per-GPU basis.
|
|
361 |
||
362 |
For example:
|
|
363 |
--gpu-engine 950 --gpu-memclock 825
|
|
364 |
||
365 |
will try to set all GPU engine clocks to 950 and all memory clocks to 825,
|
|
366 |
while:
|
|
367 |
--gpu-engine 950,945,930,960 --gpu-memclock 300
|
|
368 |
||
369 |
will try to set the engine clock of card 0 to 950, 1 to 945, 2 to 930, 3 to
|
|
370 |
960 and all memory clocks to 825.
|
|
371 |
||
372 |
AUTO MODES:
|
|
373 |
There are two "auto" modes in cgminer, --auto-fan and --auto-gpu. These can
|
|
374 |
be used independently of each other and are complementary. Both auto modes
|
|
375 |
are designed to safely change settings while trying to maintain a target
|
|
376 |
temperature. By default this is set to 75 degrees C but can be changed with:
|
|
377 |
||
378 |
--temp-target
|
|
379 |
e.g.
|
|
380 |
--temp-target 80
|
|
381 |
Sets all cards' target temperature to 80 degrees.
|
|
382 |
||
383 |
--temp-target 75,85
|
|
384 |
Sets card 0 target temperature to 75, and card 1 to 85 degrees.
|
|
385 |
||
386 |
AUTO FAN:
|
|
387 |
e.g.
|
|
388 |
--auto-fan (implies 85% upper limit)
|
|
389 |
--gpu-fan 25-85,65 --auto-fan
|
|
390 |
||
391 |
Fan control in auto fan works off the theory that the minimum possible fan
|
|
392 |
required to maintain an optimal temperature will use less power, make less
|
|
393 |
noise, and prolong the life of the fan. In auto-fan mode, the fan speed is
|
|
394 |
limited to 85% if the temperature is below "overheat" intentionally, as
|
|
395 |
higher fanspeeds on GPUs do not produce signficantly more cooling, yet
|
|
396 |
significanly shorten the lifespan of the fans. If temperature reaches the
|
|
397 |
overheat value, fanspeed will still be increased to 100%. The overheat value
|
|
398 |
is set to 85 degrees by default and can be changed with:
|
|
399 |
||
400 |
--temp-overheat
|
|
401 |
e.g.
|
|
402 |
--temp-overheat 75,85
|
|
403 |
Sets card 0 overheat threshold to 75 degrees and card 1 to 85.
|
|
404 |
||
405 |
AUTO GPU:
|
|
406 |
e.g.
|
|
407 |
--auto-gpu --gpu-engine 750-950
|
|
408 |
--auto-gpu --gpu-engine 750-950,945,700-930,960
|
|
409 |
||
410 |
GPU control in auto gpu tries to maintain as high a clock speed as possible
|
|
411 |
while not reaching overheat temperatures. As a lower clock speed limit,
|
|
412 |
the auto-gpu mode checks the GPU card's "normal" clock speed and will not go
|
|
413 |
below this unless you have manually set a lower speed in the range. Also,
|
|
414 |
unless a higher clock speed was specified at startup, it will not raise the
|
|
415 |
clockspeed. If the temperature climbs, fanspeed is adjusted and optimised
|
|
416 |
before GPU engine clockspeed is adjusted. If fan speed control is not available
|
|
417 |
or already optimal, then GPU clock speed is only decreased if it goes over
|
|
418 |
the target temperature by the hysteresis amount, which is set to 3 by default
|
|
419 |
and can be changed with:
|
|
420 |
--temp-hysteresis
|
|
421 |
If the temperature drops below the target temperature, and engine clock speed
|
|
422 |
is not at the highest level set at startup, cgminer will raise the clock speed.
|
|
423 |
If at any time you manually set an even higher clock speed successfully in
|
|
424 |
cgminer, it will record this value and use it as its new upper limit (and the
|
|
425 |
same for low clock speeds and lower limits). If the temperature goes over the
|
|
426 |
cutoff limit (95 degrees by default), cgminer will completely disable the GPU
|
|
427 |
from mining and it will not be re-enabled unless manually done so. The cutoff
|
|
428 |
temperature can be changed with:
|
|
429 |
||
430 |
--temp-cutoff
|
|
431 |
e.g.
|
|
432 |
--temp-cutoff 95,105
|
|
433 |
Sets card 0 cutoff temperature to 95 and card 1 to 105.
|
|
434 |
||
435 |
||
436 |
CHANGING SETTINGS:
|
|
437 |
When setting values, it is important to realise that even though the driver
|
|
438 |
may report the value was changed successfully, and the new card power profile
|
|
439 |
information contains the values you set it to, that the card itself may
|
|
440 |
refuse to use those settings. As the performance profile changes dynamically,
|
|
441 |
querying the "current" value on the card can be wrong as well. So when changing
|
|
442 |
values in cgminer, after a pause of 1 second, it will report to you the current
|
|
443 |
values where you should check that your change has taken. An example is that
|
|
444 |
6970 reference cards will accept low memory values but refuse to actually run
|
|
445 |
those lower memory values unless they're within 125 of the engine clock speed.
|
|
446 |
In that scenario, they usually set their real speed back to their default.
|
|
447 |
||
448 |
Cgminer reports the so-called "safe" range of whatever it is you are modifying
|
|
449 |
when you ask to modify it on the fly. However, you can change settings to values
|
|
450 |
outside this range. Despite this, the card can easily refuse to accept your
|
|
451 |
changes, or worse, to accept your changes and then silently ignore them. So
|
|
452 |
there is absolutely to know how far to/from where/to it can set things safely or
|
|
453 |
otherwise, and there is nothing stopping you from at least trying to set them
|
|
454 |
outside this range. Being very conscious of these possible failures is why
|
|
455 |
cgminer will report back the current values for you to examine how exactly the
|
|
456 |
card has responded. Even within the reported range of accepted values by the
|
|
457 |
card, it is very easy to crash just about any card, so it cannot use those
|
|
458 |
values to determine what range to set. You have to provide something meaningful
|
|
459 |
manually for cgminer to work with through experimentation.
|
|
460 |
||
461 |
STARTUP / SHUTDOWN:
|
|
462 |
When cgminer starts up, it tries to read off the current profile information
|
|
463 |
for clock and fan speeds and stores these values. When quitting cgminer, it
|
|
464 |
will then try to restore the original values. Changing settings outside of
|
|
465 |
cgminer while it's running may be reset to the startup cgminer values when
|
|
466 |
cgminer shuts down because of this.
|
|
467 |
||
468 |
---
|
|
469 |
||
470 |
FAQ
|
|
471 |
||
472 |
Q: cgminer segfaults when I change my shell window size.
|
|
473 |
A: Older versions of libncurses have a bug to do with refreshing a window
|
|
474 |
after a size change. Upgrading to a new version of curses will fix it.
|
|
475 |
||
476 |
Q: Can I mine on servers from different networks (eg smartcoin and bitcoin) at
|
|
477 |
the same time?
|
|
478 |
A: No, cgminer keeps a database of the block it's working on to ensure it does
|
|
479 |
not work on stale blocks, and having different blocks from two networks would
|
|
480 |
make it invalidate the work from each other.
|
|
481 |
||
482 |
Q: Can I change the intensity settings individually for each GPU?
|
|
483 |
A: Yes, pass a list separated by commas such as -I d,4,9,9
|
|
484 |
||
485 |
Q: Can I put multiple pools in the json config file?
|
|
486 |
A: Not currently, but you can use multiple config files and specify each with
|
|
487 |
successive -c. e.g.: cgminer -c cfg1.json -c cfg2.json
|
|
488 |
||
489 |
Q: The build fails with gcc is unable to build a binary.
|
|
490 |
A: Remove the "-march=native" component of your CFLAGS as your version of gcc
|
|
491 |
does not support it.
|
|
492 |
||
493 |
Q: The CPU usage is high.
|
|
494 |
A: The ATI drivers after 11.6 have a bug that makes them consume 100% of one
|
|
495 |
CPU core unnecessarily so downgrade to 11.6. Binding cgminer to one CPU core on
|
|
496 |
windows can minimise it to 100% (instead of more than one core).
|
|
497 |
||
498 |
Q: Can you implement feature X?
|
|
499 |
A: I can, but time is limited, and people who donate are more likely to get
|
|
500 |
their feature requests implemented.
|
|
501 |
||
502 |
Q: My GPU hangs and I have to reboot it to get it going again?
|
|
503 |
A: The more aggressively the mining software uses your GPU, the less overclock
|
|
504 |
you will be able to run. You are more likely to hit your limits with cgminer
|
|
505 |
and you will find you may need to overclock your GPU less aggressively. The
|
|
506 |
software cannot be responsible and make your GPU hang directly. If you simply
|
|
507 |
cannot get it to ever stop hanging, try decreasing the intensity, and if even
|
|
508 |
that fails, try changing to the poclbm kernel with -k poclbm, though you will
|
|
509 |
sacrifice performance.
|
|
510 |
||
511 |
Q: Work keeps going to my backup pool even though my primary pool hasn't
|
|
512 |
failed?
|
|
513 |
A: Cgminer checks for conditions where the primary pool is lagging and will
|
|
514 |
pass some work to the backup servers under those conditions. The reason for
|
|
515 |
doing this is to try its absolute best to keep the GPUs working on something
|
|
516 |
useful and not risk idle periods. You can disable this behaviour with the
|
|
517 |
option --failover-only.
|
|
518 |
||
519 |
Q: Is this a virus?
|
|
520 |
A: Cgminer is being packaged with other trojan scripts and some antivirus
|
|
521 |
software is falsely accusing cgminer.exe as being the actual virus, rather
|
|
522 |
than whatever it is being packaged with. If you installed cgminer yourself,
|
|
523 |
then you do not have a virus on your computer. Complain to your antivirus
|
|
524 |
software company.
|
|
525 |
||
526 |
Q: How does the donation feature work and how does it affect my shares?
|
|
527 |
A: The donation feature is disabled by default and only does anything once
|
|
528 |
enabled. It queries the author's website for login credentials and contributes
|
|
529 |
up to a proportion of work to the author's account. While the overall
|
|
530 |
accepted/rejected rates will include this work, none of these will appear in
|
|
531 |
your own accounts. On exiting, the summary will tell you how many shares were
|
|
532 |
contributed to the author.
|
|
533 |
||
534 |
Q: GUI version?
|
|
535 |
A: No.
|
|
536 |
||
537 |
---
|
|
538 |
||
539 |
This code is provided entirely free of charge by the programmer in his spare
|
|
540 |
time so donations would be greatly appreciated. Please consider using the
|
|
541 |
--donation feature or donate directly to the address below.
|
|
542 |
||
543 |
Con Kolivas <kernel@kolivas.org>
|
|
544 |
15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ
|
|
545 |