mirror of
https://github.com/GOSTSec/sgminer
synced 2025-03-13 06:01:03 +00:00
Update READMEs.
This commit is contained in:
parent
d0070c0424
commit
593080d972
297
ASIC-README
297
ASIC-README
@ -1,297 +0,0 @@
|
|||||||
SUPPORTED DEVICES
|
|
||||||
|
|
||||||
Currently supported devices include the Avalon (including BitBurner and
|
|
||||||
Klondike), the Butterfly Labs SC range of devices, the ASICMINER block
|
|
||||||
erupters, the BF1 (bitfury) USB (red and blue) devices, KnCminer Mercury,
|
|
||||||
Saturn and Jupiter devices, and upcoming Hashfast devices.
|
|
||||||
|
|
||||||
No COM ports on windows or TTY devices will be used by cgminer as it
|
|
||||||
communicates directly with them via USB so it is normal for them to not exist or
|
|
||||||
be disconnected when cgminer is running.
|
|
||||||
|
|
||||||
The BFL devices should come up as one of the following:
|
|
||||||
|
|
||||||
BAJ: BFL ASIC Jalapeño
|
|
||||||
BAL: BFL ASIC Little Single
|
|
||||||
BAS: BFL ASIC Single
|
|
||||||
BAM: BFL ASIC Minirig
|
|
||||||
|
|
||||||
BFL devices need the --enable-bflsc option when compiling cgminer yourself.
|
|
||||||
|
|
||||||
Avalon will come up as AVA.
|
|
||||||
|
|
||||||
Avalon devices need the --enable-avalon option when compiling cgminer.
|
|
||||||
|
|
||||||
Klondike will come up as KLN.
|
|
||||||
|
|
||||||
Klondike devices need the --enable-klondike option when compiling cgminer.
|
|
||||||
|
|
||||||
ASICMINER block erupters will come up as AMU.
|
|
||||||
|
|
||||||
ASICMINER devices need the --enable-icarus option when compiling cgminer.
|
|
||||||
Also note that the AMU is managed by the Icarus driver which is detailed
|
|
||||||
in the FPGA-README. Configuring them uses the same mechanism as outlined
|
|
||||||
below for getting started with butterfly labs ASICs.
|
|
||||||
|
|
||||||
|
|
||||||
BITFURY devices
|
|
||||||
|
|
||||||
Bitfury devices need the --enable-bitfury option when compiling cgminer.
|
|
||||||
|
|
||||||
Currently only the BPMC BF1 devices AKA redfury/bluefury are supported and
|
|
||||||
come up as BF1. There are no options available for them. Bitfury device are
|
|
||||||
also set up as per the butterfly labs ASICs below.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GETTING STARTED WITH BUTTERFLY LABS ASICS
|
|
||||||
|
|
||||||
Unlike other software, cgminer uses direct USB communication instead of the
|
|
||||||
ancient serial USB communication to be much faster, more reliable and use a
|
|
||||||
lot less CPU. For this reason, setting up for mining with cgminer on these
|
|
||||||
devices requires different drivers.
|
|
||||||
|
|
||||||
|
|
||||||
WINDOWS:
|
|
||||||
|
|
||||||
On windows, the direct USB support requires the installation of a WinUSB
|
|
||||||
driver (NOT the ftdi_sio driver), and attach it to the Butterfly labs device.
|
|
||||||
The easiest way to do this is to use the zadig utility which will install the
|
|
||||||
drivers for you and then once you plug in your device you can choose the
|
|
||||||
"list all devices" from the "option" menu and you should be able to see the
|
|
||||||
device as something like: "BitFORCE SHA256 SC". Choose the install or replace
|
|
||||||
driver option and select WinUSB. You can either google for zadig or download
|
|
||||||
it from the cgminer directory in the DOWNLOADS link above.
|
|
||||||
|
|
||||||
When you first switch a device over to WinUSB with zadig and it shows that
|
|
||||||
correctly on the left of the zadig window, but it still gives permission
|
|
||||||
errors, you may need to unplug the USB miner and then plug it back in. Some
|
|
||||||
users may need to reboot at this point.
|
|
||||||
|
|
||||||
|
|
||||||
LINUX:
|
|
||||||
|
|
||||||
On linux, the direct USB support requires no drivers at all. However due to
|
|
||||||
permissions issues, you may not be able to mine directly on the devices as a
|
|
||||||
regular user without giving the user access to the device or by mining as
|
|
||||||
root (administrator). In order to give your regular user access, you can make
|
|
||||||
him a member of the plugdev group with the following commands:
|
|
||||||
|
|
||||||
sudo usermod -G plugdev -a `whoami`
|
|
||||||
|
|
||||||
If your distribution does not have the plugdev group you can create it with:
|
|
||||||
|
|
||||||
sudo groupadd plugdev
|
|
||||||
|
|
||||||
In order for the BFL devices to instantly be owned by the plugdev group and
|
|
||||||
accessible by anyone from the plugdev group you can copy the file
|
|
||||||
"01-cgminer.rules" from the cgminer archive into the /etc/udev/rules.d
|
|
||||||
directory with the following command:
|
|
||||||
|
|
||||||
sudo cp 01-cgminer.rules /etc/udev/rules.d/
|
|
||||||
|
|
||||||
After this you can either manually restart udev and re-login, or more easily
|
|
||||||
just reboot.
|
|
||||||
|
|
||||||
|
|
||||||
ASIC SPECIFIC COMMANDS
|
|
||||||
|
|
||||||
--avalon-auto Adjust avalon overclock frequency dynamically for best hashrate
|
|
||||||
--avalon-cutoff <arg> Set avalon overheat cut off temperature (default: 60)
|
|
||||||
--avalon-fan <arg> Set fanspeed percentage for avalon, single value or range (default: 20-100)
|
|
||||||
--avalon-freq <arg> Set frequency range for avalon-auto, single value or range
|
|
||||||
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
|
||||||
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
|
||||||
--bflsc-overheat <arg> Set overheat temperature where BFLSC devices throttle, 0 to disable (default: 90)
|
|
||||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
|
||||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
|
||||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
|
||||||
--klondike-options <arg> Set klondike options clock:temptarget
|
|
||||||
|
|
||||||
|
|
||||||
AVALON AND BITBURNER DEVICES
|
|
||||||
|
|
||||||
Currently all known Avalon devices come with their own operating system and
|
|
||||||
a preinstalled version of cgminer as part of the flash firmware, based on the
|
|
||||||
most current cgminer version so no configuration should be necessary. It is
|
|
||||||
possible to plug a USB cable from a PC into the Avalon device and mine using
|
|
||||||
cgminer as per any other device. It will autodetect and hotplug using default
|
|
||||||
options. You can customise the avalon behaviour by using the avalon-options
|
|
||||||
command, and adjust its fan control-temperature relationship with avalon-temp.
|
|
||||||
By default the avalon will also cut off when its temperature reaches 60
|
|
||||||
degrees.
|
|
||||||
|
|
||||||
All current BitBurner devices (BitBurner X, BitBurner XX and BitBurner Fury)
|
|
||||||
emulate Avalon devices, whether or not they use Avalon chips.
|
|
||||||
|
|
||||||
Avalon commands:
|
|
||||||
|
|
||||||
--avalon-auto Adjust avalon overclock frequency dynamically for best hashrate
|
|
||||||
--avalon-cutoff <arg> Set avalon overheat cut off temperature (default: 60)
|
|
||||||
--avalon-fan <arg> Set fanspeed percentage for avalon, single value or range (default: 20-100)
|
|
||||||
--avalon-freq <arg> Set frequency range for avalon-auto, single value or range
|
|
||||||
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
|
||||||
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
|
||||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
|
||||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
|
||||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
|
||||||
|
|
||||||
|
|
||||||
Avalon auto will enable dynamic overclocking gradually increasing and
|
|
||||||
decreasing the frequency till the highest hashrate that keeps hardware errors
|
|
||||||
under 2% is achieved. This WILL run your avalon beyond its normal specification
|
|
||||||
so the usual warnings apply. When avalon-auto is enabled, the avalon-options
|
|
||||||
for frequency and timeout are used as the starting point only.
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--avalon-fan 50
|
|
||||||
--avalon-fan 40-80
|
|
||||||
|
|
||||||
By default the avalon fans will be adjusted to maintain a target temperature
|
|
||||||
over a range from 20 to 100% fanspeed. avalon-fan allows you to limit the
|
|
||||||
range of fanspeeds to a single value or a range of values.
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--avalon-freq 300-350
|
|
||||||
|
|
||||||
In combination with the avalon-auto command, the avalon-freq command allows you
|
|
||||||
to limit the range of frequencies which auto will adjust to.
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--avalon-temp 55
|
|
||||||
|
|
||||||
This will adjust fanspeed to keep the temperature at or slightly below 55.
|
|
||||||
If you wish the fans to run at maximum speed, setting the target temperature
|
|
||||||
very low such as 0 will achieve this. This option can be added to the "More
|
|
||||||
options" entry in the web interface if you do not have a direct way of setting
|
|
||||||
it.
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--avalon-cutoff 65
|
|
||||||
|
|
||||||
This will cut off the avalon should it get up to 65 degrees and will then
|
|
||||||
re-enable it when it gets to the target temperature as specified by avalon-temp.
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--avalon-options 115200:24:10:45:282
|
|
||||||
|
|
||||||
The values are baud : miners : asic count : timeout : frequency.
|
|
||||||
|
|
||||||
Baud:
|
|
||||||
The device is pretty much hard coded to emulate 115200 baud so you shouldn't
|
|
||||||
change this.
|
|
||||||
|
|
||||||
Miners:
|
|
||||||
Most Avalons are 3 module devices, which come to 24 miners. 4 module devices
|
|
||||||
would use 32 here.
|
|
||||||
|
|
||||||
For BitBurner X and BitBurner XX devices you should use twice the number of
|
|
||||||
boards in the stack. e.g. for a two-board stack you would use 4. For
|
|
||||||
BitBurner Fury devices you should use the total number of BitFury chips in the
|
|
||||||
stack (i.e. 16 times the number of boards). e.g. for a two-board stack you
|
|
||||||
would use 32.
|
|
||||||
|
|
||||||
Asic count:
|
|
||||||
Virtually all have 10, so don't change this. BitBurner devices use 10 here
|
|
||||||
even if the boards have some other number of ASICs.
|
|
||||||
|
|
||||||
Timeout:
|
|
||||||
This is how long the device will work on a work item before accepting new work
|
|
||||||
to replace it. It should be changed according to the frequency (last setting).
|
|
||||||
It is possible to set this a little lower if you are trying to tune for short
|
|
||||||
block mining (eg p2pool) but much lower and the device will start creating
|
|
||||||
duplicate shares.
|
|
||||||
A value of 'd' means cgminer will calculate it for you based on the frequency
|
|
||||||
|
|
||||||
Sample settings for valid different frequencies (last 2 values):
|
|
||||||
34:375 *
|
|
||||||
36:350 *
|
|
||||||
39:325 *
|
|
||||||
43:300
|
|
||||||
45:282 (default)
|
|
||||||
47:270
|
|
||||||
50:256
|
|
||||||
|
|
||||||
Frequency:
|
|
||||||
This is the clock speed of the devices. For Avalon devices, only specific
|
|
||||||
values work, 256, 270, 282 (default), 300, 325, 350 and 375. For BitBurner
|
|
||||||
devices, other values can be used.
|
|
||||||
|
|
||||||
Note that setting a value with an asterisk next to it will be using your
|
|
||||||
avalon outside its spec and you do so at your own risk.
|
|
||||||
|
|
||||||
The default frequency for BitBurner X and BitBurner XX boards is 282. The
|
|
||||||
default frequency for BitBurner Fury boards is 256. Overclocking is
|
|
||||||
possible - please consult the product documentation and/or manufacturer for
|
|
||||||
information on safe values. Values outside this range are used at your own
|
|
||||||
risk. Underclocking is also possible, at least with the X and XX boards.
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
|
||||||
|
|
||||||
This option takes the same format as --avalon-options. When specified, it
|
|
||||||
will be used for BitBurner Fury boards in preference to the values specified
|
|
||||||
in --avalon-options. (If not specified, BitBurner Fury boards will be
|
|
||||||
controlled by the values used in --avalon options.) See --avalon-options for
|
|
||||||
a detailed description of the fields.
|
|
||||||
|
|
||||||
This option is particularly useful when using a mixture of different BitBurner
|
|
||||||
devices as BitBurner Fury devices generally require significantly different
|
|
||||||
clock frequencies from Avalon-based devices. This option is only available
|
|
||||||
for boards with recent firmware that are recognized by cgminer as BBF.
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
|
||||||
|
|
||||||
Sets the core voltage for the BitBurner Fury boards. The default value is
|
|
||||||
900. Overvolting is possible - please consult the product documentation
|
|
||||||
and/or manufaturer about the safe range of values. Values outside this range
|
|
||||||
are used at your own risk.
|
|
||||||
|
|
||||||
This option is only available for boards with recent firmware that are
|
|
||||||
recognized by cgminer as BBF. For boards recognized as BTB, see
|
|
||||||
--bitburner-voltage
|
|
||||||
|
|
||||||
eg:
|
|
||||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
|
||||||
|
|
||||||
Sets the core voltage for the Avalon-based BitBurner X and BitBurner XX
|
|
||||||
boards. The default value is 1200. Overvolting and undervolting is
|
|
||||||
possible - please consult the product documentation and/or the manufacturer
|
|
||||||
for information about the safe range. Values outside this range are used at
|
|
||||||
your own risk.
|
|
||||||
|
|
||||||
Older BitBurner Fury firmware emulates a BitBurner XX board and is identified
|
|
||||||
by cgminer as BTB. On these devices, --bitburner-voltage is used to control
|
|
||||||
the voltage of the BitBurner Fury board. The actual core voltage will be
|
|
||||||
300mV less than the requested voltage, so to run a BitBurner Fury board at
|
|
||||||
950mV use --bitburner-voltage 1250. The default value of 1200 therefore
|
|
||||||
corresponds to the default core voltage of 900mV.
|
|
||||||
|
|
||||||
|
|
||||||
If you use the full curses based interface with Avalons you will get this
|
|
||||||
information:
|
|
||||||
AVA 0: 22/ 46C 2400R
|
|
||||||
|
|
||||||
The values are:
|
|
||||||
ambient temp / highest device temp lowest detected ASIC cooling fan RPM.
|
|
||||||
|
|
||||||
Use the API for more detailed information than this.
|
|
||||||
|
|
||||||
|
|
||||||
BFLSC Devices
|
|
||||||
|
|
||||||
--bflsc-overheat <arg> Set overheat temperature where BFLSC devices throttle, 0 to disable (default: 90)
|
|
||||||
|
|
||||||
This will allow you to change or disable the default temperature where cgminer
|
|
||||||
throttles BFLSC devices by allowing them to temporarily go idle.
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
This code is provided entirely free of charge by the programmer in his spare
|
|
||||||
time so donations would be greatly appreciated. Please consider donating to the
|
|
||||||
address below.
|
|
||||||
|
|
||||||
Con Kolivas <kernel@kolivas.org>
|
|
||||||
15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ
|
|
178
FAQ
Normal file
178
FAQ
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
FAQ
|
||||||
|
|
||||||
|
Q: Can I mine on servers from different networks (eg smartcoin and bitcoin) at
|
||||||
|
the same time?
|
||||||
|
A: No, cgminer keeps a database of the block it's working on to ensure it does
|
||||||
|
not work on stale blocks, and having different blocks from two networks would
|
||||||
|
make it invalidate the work from each other.
|
||||||
|
|
||||||
|
Q: Can I configure cgminer to mine with different login credentials or pools
|
||||||
|
for each separate device?
|
||||||
|
A: No.
|
||||||
|
|
||||||
|
Q: Can I put multiple pools in the config file?
|
||||||
|
A: Yes, check the example.conf file. Alternatively, set up everything either on
|
||||||
|
the command line or via the menu after startup and choose settings->write
|
||||||
|
config file and the file will be loaded one each startup.
|
||||||
|
|
||||||
|
Q: The build fails with gcc is unable to build a binary.
|
||||||
|
A: Remove the "-march=native" component of your CFLAGS as your version of gcc
|
||||||
|
does not support it.
|
||||||
|
|
||||||
|
Q: Can you implement feature X?
|
||||||
|
A: I can, but time is limited, and people who donate are more likely to get
|
||||||
|
their feature requests implemented.
|
||||||
|
|
||||||
|
Q: Work keeps going to my backup pool even though my primary pool hasn't
|
||||||
|
failed?
|
||||||
|
A: Cgminer checks for conditions where the primary pool is lagging and will
|
||||||
|
pass some work to the backup servers under those conditions. The reason for
|
||||||
|
doing this is to try its absolute best to keep the GPUs working on something
|
||||||
|
useful and not risk idle periods. You can disable this behaviour with the
|
||||||
|
option --failover-only.
|
||||||
|
|
||||||
|
Q: Is this a virus?
|
||||||
|
A: Cgminer is being packaged with other trojan scripts and some antivirus
|
||||||
|
software is falsely accusing cgminer.exe as being the actual virus, rather
|
||||||
|
than whatever it is being packaged with. If you installed cgminer yourself,
|
||||||
|
then you do not have a virus on your computer. Complain to your antivirus
|
||||||
|
software company. They seem to be flagging even source code now from cgminer
|
||||||
|
as viruses, even though text source files can't do anything by themself.
|
||||||
|
|
||||||
|
Q: Can you modify the display to include more of one thing in the output and
|
||||||
|
less of another, or can you change the quiet mode or can you add yet another
|
||||||
|
output mode?
|
||||||
|
A: Everyone will always have their own view of what's important to monitor.
|
||||||
|
The defaults are very sane and I have very little interest in changing this
|
||||||
|
any further.
|
||||||
|
|
||||||
|
Q: What are the best parameters to pass for X pool/hardware/device.
|
||||||
|
A: Virtually always, the DEFAULT parameters give the best results. Most user
|
||||||
|
defined settings lead to worse performance. The ONLY thing most users should
|
||||||
|
need to set is the Intensity for GPUs.
|
||||||
|
|
||||||
|
Q: What happened to CPU mining?
|
||||||
|
A: Being increasingly irrelevant for most users, and a maintenance issue, it is
|
||||||
|
no longer under active development and will not be supported. No binary builds
|
||||||
|
supporting CPU mining will be released. Virtually all remaining users of CPU
|
||||||
|
mining are as back ends for illegal botnets. The main reason cgminer is being
|
||||||
|
inappopriately tagged as a virus by antivirus software is due to the trojans
|
||||||
|
packaging a CPU mining capable version of it. There is no longer ANY CPU mining
|
||||||
|
code in cgminer. If you are mining bitcoin with CPU today, you are spending
|
||||||
|
1000x more in electricity costs than you are earning in bitcoin.
|
||||||
|
|
||||||
|
Q: GUI version?
|
||||||
|
A: No. The RPC interface makes it possible for someone else to write one
|
||||||
|
though.
|
||||||
|
|
||||||
|
Q: I'm having an issue. What debugging information should I provide?
|
||||||
|
A: Start cgminer with your regular commands and add -D -T --verbose and provide
|
||||||
|
the full startup output and a summary of your hardware, operating system, ATI
|
||||||
|
driver version and ATI stream version.
|
||||||
|
|
||||||
|
Q: Why don't you provide win64 builds?
|
||||||
|
A: Win32 builds work everywhere and there is precisely zero advantage to a
|
||||||
|
64 bit build on windows.
|
||||||
|
|
||||||
|
Q: Is it faster to mine on windows or linux?
|
||||||
|
A: It makes no difference. It comes down to choice of operating system for
|
||||||
|
their various features. Linux offers much better long term stability and
|
||||||
|
remote monitoring and security, while windows offers you overclocking tools
|
||||||
|
that can achieve much more than cgminer can do on linux.
|
||||||
|
|
||||||
|
Q: Can I mine with cgminer on a MAC?
|
||||||
|
A: cgminer will compile on OSX, but the performance of GPU mining is
|
||||||
|
compromised due to the opencl implementation on OSX, there is no temperature
|
||||||
|
or fanspeed monitoring, and the cooling design of most MACs, despite having
|
||||||
|
powerful GPUs, will usually not cope with constant usage leading to a high
|
||||||
|
risk of thermal damage. It is highly recommended not to mine on a MAC unless
|
||||||
|
it is to a USB device.
|
||||||
|
|
||||||
|
Q: I'm trying to mine litecoin but cgminer shows MH values instead of kH and
|
||||||
|
submits no shares?
|
||||||
|
A: Add the --scrypt parameter.
|
||||||
|
|
||||||
|
Q: I switch users on windows and my mining stops working?
|
||||||
|
A: That's correct, it does. It's a permissions issue that there is no known
|
||||||
|
fix for due to monitoring of GPU fanspeeds and temperatures. If you disable
|
||||||
|
the monitoring with --no-adl it should switch okay.
|
||||||
|
|
||||||
|
Q: My network gets slower and slower and then dies for a minute?
|
||||||
|
A; Try the --net-delay option.
|
||||||
|
|
||||||
|
Q: How do I tune for p2pool?
|
||||||
|
A: p2pool has very rapid expiration of work and new blocks, it is suggested you
|
||||||
|
decrease intensity by 1 from your optimal value, and decrease GPU threads to 1
|
||||||
|
with -g 1. It is also recommended to use --failover-only since the work is
|
||||||
|
effectively like a different block chain. If mining with a minirig, it is worth
|
||||||
|
adding the --bfl-range option.
|
||||||
|
|
||||||
|
Q: Are OpenCL kernels from other mining software useable in cgminer?
|
||||||
|
A: No, the APIs are slightly different between the different software and they
|
||||||
|
will not work.
|
||||||
|
|
||||||
|
Q: I run PHP on windows to access the API with the example miner.php. Why does
|
||||||
|
it fail when php is installed properly but I only get errors about Sockets not
|
||||||
|
working in the logs?
|
||||||
|
A: http://us.php.net/manual/en/sockets.installation.php
|
||||||
|
|
||||||
|
Q: What is a PGA?
|
||||||
|
A: At the moment, cgminer supports 3 FPGAs: BitForce, Icarus and ModMiner.
|
||||||
|
They are Field-Programmable Gate Arrays that have been programmed to do Bitcoin
|
||||||
|
mining. Since the acronym needs to be only 3 characters, the "Field-" part has
|
||||||
|
been skipped.
|
||||||
|
|
||||||
|
Q: What is an ASIC?
|
||||||
|
A: Cgminer currently supports 2 ASICs: Avalon and BitForce SC devices. They
|
||||||
|
are Application Specify Integrated Circuit devices and provide the highest
|
||||||
|
performance per unit power due to being dedicated to only one purpose.
|
||||||
|
|
||||||
|
Q: Can I mine scrypt with FPGAs or ASICs?
|
||||||
|
A: No.
|
||||||
|
|
||||||
|
Q: What is stratum and how do I use it?
|
||||||
|
A: Stratum is a protocol designed for pooled mining in such a way as to
|
||||||
|
minimise the amount of network communications, yet scale to hardware of any
|
||||||
|
speed. With versions of cgminer 2.8.0+, if a pool has stratum support, cgminer
|
||||||
|
will automatically detect it and switch to the support as advertised if it can.
|
||||||
|
If you input the stratum port directly into your configuration, or use the
|
||||||
|
special prefix "stratum+tcp://" instead of "http://", cgminer will ONLY try to
|
||||||
|
use stratum protocol mining. The advantages of stratum to the miner are no
|
||||||
|
delays in getting more work for the miner, less rejects across block changes,
|
||||||
|
and far less network communications for the same amount of mining hashrate. If
|
||||||
|
you do NOT wish cgminer to automatically switch to stratum protocol even if it
|
||||||
|
is detected, add the --fix-protocol option.
|
||||||
|
|
||||||
|
Q: Why don't the statistics add up: Accepted, Rejected, Stale, Hardware Errors,
|
||||||
|
Diff1 Work, etc. when mining greater than 1 difficulty shares?
|
||||||
|
A: As an example, if you look at 'Difficulty Accepted' in the RPC API, the number
|
||||||
|
of difficulty shares accepted does not usually exactly equal the amount of work
|
||||||
|
done to find them. If you are mining at 8 difficulty, then you would expect on
|
||||||
|
average to find one 8 difficulty share, per 8 single difficulty shares found.
|
||||||
|
However, the number is actually random and converges over time, it is an average,
|
||||||
|
not an exact value, thus you may find more or less than the expected average.
|
||||||
|
|
||||||
|
Q: Why do the scrypt diffs not match with the current difficulty target?
|
||||||
|
A: The current scrypt block difficulty is expressed in terms of how many
|
||||||
|
multiples of the BTC difficulty it currently is (eg 28) whereas the shares of
|
||||||
|
"difficulty 1" are actually 65536 times smaller than the BTC ones. The diff
|
||||||
|
expressed by cgminer is as multiples of difficulty 1 shares.
|
||||||
|
|
||||||
|
Q: Can I make a donation in litecoin?
|
||||||
|
A: Yes, see SCRYPT-README for the address, but the author prefers bitcoin if
|
||||||
|
possible.
|
||||||
|
|
||||||
|
Q: My keyboard input momentarily pauses or repeats keys every so often on
|
||||||
|
windows while mining?
|
||||||
|
A: The USB implementation on windows can be very flaky on some hardware and
|
||||||
|
every time cgminer looks for new hardware to hotplug it it can cause these
|
||||||
|
sorts of problems. You can disable hotplug with:
|
||||||
|
--hotplug 0
|
||||||
|
|
||||||
|
Q: What should my Work Utility (WU) be?
|
||||||
|
A: Work utility is the product of hashrate * luck and only stabilises over a
|
||||||
|
very long period of time. Assuming all your work is valid work, bitcoin mining
|
||||||
|
should produce a work utility of approximately 1 per 71.6MH. This means at
|
||||||
|
5GH you should have a WU of 5000 / 71.6 or ~ 69. You cannot make your machine
|
||||||
|
do "better WU" than this - it is luck related. However you can make it much
|
||||||
|
worse if your machine produces a lot of hardware errors producing invalid work.
|
271
FPGA-README
271
FPGA-README
@ -1,271 +0,0 @@
|
|||||||
|
|
||||||
This README contains extended details about FPGA mining with cgminer
|
|
||||||
|
|
||||||
|
|
||||||
For ModMinerQuad (MMQ) BitForce (BFL) and Icarus (ICA, BLT, LLT, AMU, CMR)
|
|
||||||
--------------------------------------------------------------------------
|
|
||||||
|
|
||||||
When mining on windows, the driver being used will determine if mining will work.
|
|
||||||
|
|
||||||
If the driver doesn't allow mining, you will get a "USB init," error message
|
|
||||||
i.e. one of:
|
|
||||||
open device failed, err %d, you need to install a WinUSB driver for the device
|
|
||||||
or
|
|
||||||
claim interface %d failed, err %d
|
|
||||||
|
|
||||||
The best solution for this is to use a tool called Zadig to set the driver:
|
|
||||||
http://sourceforge.net/projects/libwdi/files/zadig/
|
|
||||||
|
|
||||||
This allows you set the driver for the device to be WinUSB which is usually
|
|
||||||
required to make it work if you're having problems
|
|
||||||
|
|
||||||
With Zadig, you may need to run it as administrator and if your device is
|
|
||||||
plugged in but you cannot see it, use the Menu: Options -> List All Devices
|
|
||||||
|
|
||||||
You must also make sure you are using the latest libusb-1.0.dll supplied
|
|
||||||
with cgminer (not the libusbx version)
|
|
||||||
|
|
||||||
When you first switch a device over to WinUSB with Zadig and it shows that
|
|
||||||
correctly on the left of the Zadig window, but it still gives permission
|
|
||||||
errors, you may need to unplug the USB miner and then plug it back in
|
|
||||||
|
|
||||||
-
|
|
||||||
|
|
||||||
When mining on linux, but not using 'sudo' and not logged into 'root' you
|
|
||||||
may get a USB priviledge error (-3), so you may also need to do the following:
|
|
||||||
|
|
||||||
sudo cp 01-cgminer.rules /etc/udev/rules.d/
|
|
||||||
|
|
||||||
And also:
|
|
||||||
sudo usermod -G plugdev -a `whoami`
|
|
||||||
|
|
||||||
If your linux distro doesn't have the 'plugdev' group, you can create it like:
|
|
||||||
sudo groupadd plugdev
|
|
||||||
|
|
||||||
Then reboot ...
|
|
||||||
|
|
||||||
-
|
|
||||||
|
|
||||||
There is a hidden option in cgminer to dump out a lot of information
|
|
||||||
about USB that will help the developers to assist you if you are having
|
|
||||||
problems:
|
|
||||||
|
|
||||||
--usb-dump 0
|
|
||||||
|
|
||||||
It will only help if you have a working FPGA device listed above
|
|
||||||
|
|
||||||
|
|
||||||
ModMinerQuad (MMQ)
|
|
||||||
------------------
|
|
||||||
|
|
||||||
The mining bitstream does not survive a power cycle, so cgminer will upload
|
|
||||||
it, if it needs to, before it starts mining (approx 7min 40sec)
|
|
||||||
|
|
||||||
The red LED also flashes while it is uploading the bitstream
|
|
||||||
|
|
||||||
-
|
|
||||||
|
|
||||||
If the MMQ doesn't respond to cgminer at all, or the red LED isn't flashing
|
|
||||||
then you will need to reset the MMQ
|
|
||||||
|
|
||||||
The red LED should always be flashing when it is mining or ready to mine
|
|
||||||
|
|
||||||
To reset the MMQ, you are best to press the left "RESET" button on the
|
|
||||||
backplane, then unplug and replug the USB cable
|
|
||||||
|
|
||||||
If your MMQ doesn't have a button on the "RESET" pad, you need to join
|
|
||||||
the two left pads of the "RESET" pad with conductive wire to reset it.
|
|
||||||
Cutting a small (metal) paper-clip in half works well for this
|
|
||||||
|
|
||||||
Then unplug the USB cable, wait for 5 seconds, then plug it back in
|
|
||||||
|
|
||||||
After you press reset, the red LED near the USB port should blink continuously
|
|
||||||
|
|
||||||
If it still wont work, power off, wait for 5 seconds, then power on the MMQ
|
|
||||||
This of course means it will upload the bitstream again when you start cgminer
|
|
||||||
|
|
||||||
-
|
|
||||||
|
|
||||||
Device 0 is on the power end of the board
|
|
||||||
|
|
||||||
-
|
|
||||||
|
|
||||||
You must make sure you have an approriate firmware in your MMQ
|
|
||||||
Read here for official details of changing the firmware:
|
|
||||||
http://wiki.btcfpga.com/index.php?title=Firmware
|
|
||||||
|
|
||||||
The basics of changing the firmware are:
|
|
||||||
You need two short pieces of conductive wire if your MMQ doesn't have
|
|
||||||
buttons on the "RESET" and "ISP" pads on the backplane board
|
|
||||||
Cutting a small (metal) paper-clip in half works well for this
|
|
||||||
|
|
||||||
Join the 2 left pads of the "RESET" pad with wire and the led will dim
|
|
||||||
Without disconnecting the "RESET", join the 2 left pads of the "ISP" pad
|
|
||||||
with a wire and it will stay dim
|
|
||||||
Release "RESET" then release "ISP" and is should still be dim
|
|
||||||
Unplug the USB and when you plug it back in it will show up as a mass
|
|
||||||
storage device
|
|
||||||
Linux: (as one single line):
|
|
||||||
mcopy -i /dev/disk/by-id/usb-NXP_LPC134X_IFLASH_ISP000000000-0:0
|
|
||||||
modminer091012.bin ::/firmware.bin
|
|
||||||
Windows: delete the MSD device file firmware.bin and copy in the new one
|
|
||||||
rename the new file and put it under the same name 'firmware.bin'
|
|
||||||
Disconnect the USB correctly (so writes are flushed first)
|
|
||||||
Join and then disconnect "RESET" and then plug the USB back in and it's done
|
|
||||||
|
|
||||||
Best to update to one of the latest 2 listed below if you don't already
|
|
||||||
have one of them in your MMQ
|
|
||||||
|
|
||||||
The current latest different firmware are:
|
|
||||||
|
|
||||||
Latest for support of normal or TLM bitstream:
|
|
||||||
http://btcfpga.com/files/firmware/modminer092612-TLM.bin
|
|
||||||
|
|
||||||
Latest with only normal bitstream support (Temps/HW Fix):
|
|
||||||
http://btcfpga.com/files/firmware/modminer091012.bin
|
|
||||||
|
|
||||||
The code is currently tested on the modminer091012.bin firmware.
|
|
||||||
This comment will be updated when others have been tested
|
|
||||||
|
|
||||||
-
|
|
||||||
|
|
||||||
On many linux distributions there is an app called modem-manager that
|
|
||||||
may cause problems when it is enabled, due to opening the MMQ device
|
|
||||||
and writing to it
|
|
||||||
|
|
||||||
The problem will typically present itself by the flashing led on the
|
|
||||||
backplane going out (no longer flashing) and it takes a power cycle to
|
|
||||||
re-enable the MMQ firmware - which then can lead to the problem happening
|
|
||||||
again
|
|
||||||
|
|
||||||
You can either disable/uninstall modem-manager if you don't need it or:
|
|
||||||
a (hack) solution to this is to blacklist the MMQ USB device in
|
|
||||||
/lib/udev/rules.d/77-mm-usb-device-blacklist.rules
|
|
||||||
|
|
||||||
Adding 2 lines like this (just above APC) should help
|
|
||||||
# MMQ
|
|
||||||
ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0003", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
||||||
|
|
||||||
The change will be lost and need to be re-done, next time you update the
|
|
||||||
modem-manager software
|
|
||||||
|
|
||||||
TODO: check that all MMQ's have the same product ID
|
|
||||||
|
|
||||||
|
|
||||||
BitForce (BFL)
|
|
||||||
--------------
|
|
||||||
|
|
||||||
--bfl-range Use nonce range on bitforce devices if supported
|
|
||||||
|
|
||||||
This option is only for bitforce devices. Earlier devices such as the single
|
|
||||||
did not have any way of doing small amounts of work which meant that a lot of
|
|
||||||
work could be lost across block changes. Some of the "minirigs" have support
|
|
||||||
for doing this, so less work is lost across a longpoll. However, it comes at
|
|
||||||
a cost of 1% in overall hashrate so this feature is disabled by default. It
|
|
||||||
is only recommended you enable this if you are mining with a minirig on
|
|
||||||
p2pool.
|
|
||||||
|
|
||||||
C source is included for a bitforce firmware flash utility on Linux only:
|
|
||||||
bitforce-firmware-flash.c
|
|
||||||
Using this, you can change the bitstream firmware on bitforce singles.
|
|
||||||
It is untested with other devices. Use at your own risk!
|
|
||||||
|
|
||||||
To compile:
|
|
||||||
make bitforce-firmware-flash
|
|
||||||
To flash your BFL, specify the BFL port and the flash file e.g.:
|
|
||||||
sudo ./bitforce-firmware-flash /dev/ttyUSB0 alphaminer_832.bfl
|
|
||||||
It takes a bit under 3 minutes to flash a BFL and shows a progress % counter
|
|
||||||
Once it completes, you may also need to wait about 15 seconds,
|
|
||||||
then power the BFL off and on again
|
|
||||||
|
|
||||||
If you get an error at the end of the BFL flash process stating:
|
|
||||||
"Error reading response from ZBX"
|
|
||||||
it may have worked successfully anyway.
|
|
||||||
Test mining on it to be sure if it worked or not.
|
|
||||||
|
|
||||||
You need to give cgminer about 10 minutes mining with the BFL to be sure of
|
|
||||||
the MH/s value reported with the changed firmware - and the MH/s reported
|
|
||||||
will be less than the firmware speed since you lose work on every block change.
|
|
||||||
|
|
||||||
|
|
||||||
Icarus (ICA, BLT, LLT, AMU, CMR)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
There are two hidden options in cgminer when Icarus support is compiled in:
|
|
||||||
|
|
||||||
--icarus-options <arg> Set specific FPGA board configurations - one set of values for all or comma separated
|
|
||||||
baud:work_division:fpga_count
|
|
||||||
|
|
||||||
baud The Serial/USB baud rate - 115200 or 57600 only - default 115200
|
|
||||||
work_division The fraction of work divided up for each FPGA chip - 1, 2, 4 or 8
|
|
||||||
e.g. 2 means each FPGA does half the nonce range - default 2
|
|
||||||
fpga_count The actual number of FPGA working - this would normally be the same
|
|
||||||
as work_division - range is from 1 up to 'work_division'
|
|
||||||
It defaults to the value of work_division - or 2 if you don't specify
|
|
||||||
work_division
|
|
||||||
|
|
||||||
If you define fewer comma seperated values than Icarus devices, the last values will be used
|
|
||||||
for all extra devices
|
|
||||||
|
|
||||||
An example would be: --icarus-options 57600:2:1
|
|
||||||
This would mean: use 57600 baud, the FPGA board divides the work in half however
|
|
||||||
only 1 FPGA actually runs on the board (e.g. like an early CM1 Icarus copy bitstream)
|
|
||||||
|
|
||||||
--icarus-timing <arg> Set how the Icarus timing is calculated - one setting/value for all or comma separated
|
|
||||||
default[=N] Use the default Icarus hash time (2.6316ns)
|
|
||||||
short=[N] Calculate the hash time and stop adjusting it at ~315 difficulty 1 shares (~1hr)
|
|
||||||
long=[N] Re-calculate the hash time continuously
|
|
||||||
value[=N] Specify the hash time in nanoseconds (e.g. 2.6316) and abort time (e.g. 2.6316=80)
|
|
||||||
|
|
||||||
If you define fewer comma seperated values than Icarus devices, the last values will be used
|
|
||||||
for all extra devices
|
|
||||||
|
|
||||||
Icarus timing is required for devices that do not exactly match a default Icarus Rev3 in
|
|
||||||
processing speed
|
|
||||||
If you have an Icarus Rev3 you should not normally need to use --icarus-timing since the
|
|
||||||
default values will maximise the MH/s and display it correctly
|
|
||||||
|
|
||||||
Icarus timing is used to determine the number of hashes that have been checked when it aborts
|
|
||||||
a nonce range (including on a LongPoll)
|
|
||||||
It is also used to determine the elapsed time when it should abort a nonce range to avoid
|
|
||||||
letting the Icarus go idle, but also to safely maximise that time
|
|
||||||
|
|
||||||
'short' or 'long' mode should only be used on a computer that has enough CPU available to run
|
|
||||||
cgminer without any CPU delays (an active desktop or swapping computer would not be stable enough)
|
|
||||||
Any CPU delays while calculating the hash time will affect the result
|
|
||||||
'short' mode only requires the computer to be stable until it has completed ~315 difficulty 1 shares
|
|
||||||
'long' mode requires it to always be stable to ensure accuracy, however, over time it continually
|
|
||||||
corrects itself
|
|
||||||
The optional additional =N for 'short' or 'long' specifies the limit to set the timeout to in N * 100ms
|
|
||||||
thus if the timing code calculation is higher while running, it will instead use N * 100ms
|
|
||||||
This can be set to the appropriate value to ensure the device never goes idle even if the
|
|
||||||
calculation is negatively affected by system performance
|
|
||||||
|
|
||||||
When in 'short' or 'long' mode, it will report the hash time value each time it is re-calculated
|
|
||||||
In 'short' or 'long' mode, the scan abort time starts at 5 seconds and uses the default 2.6316ns
|
|
||||||
scan hash time, for the first 5 nonce's or one minute (whichever is longer)
|
|
||||||
|
|
||||||
In 'default' or 'value' mode the 'constants' are calculated once at the start, based on the default
|
|
||||||
value or the value specified
|
|
||||||
The optional additional =N specifies to set the default abort at N * 100ms, not the calculated
|
|
||||||
value, which is ~112 for 2.6316ns
|
|
||||||
|
|
||||||
To determine the hash time value for a non Icarus Rev3 device or an Icarus Rev3 with a different
|
|
||||||
bitstream to the default one, use 'long' mode and give it at least a few hundred shares, or use
|
|
||||||
'short' mode and take note of the final hash time value (Hs) calculated
|
|
||||||
You can also use the RPC API 'stats' command to see the current hash time (Hs) at any time
|
|
||||||
|
|
||||||
The Icarus code currently only works with an FPGA device that supports the same commands as
|
|
||||||
Icarus Rev3 requires and also is less than ~840MH/s and greater than 2MH/s
|
|
||||||
If an FPGA device does hash faster than ~840MH/s it should work correctly if you supply the
|
|
||||||
correct hash time nanoseconds value
|
|
||||||
|
|
||||||
The Icarus code will automatically detect Icarus, Lancelot, AsicminerUSB and Cairnsmore1
|
|
||||||
FPGA devices and set default settings to match those devices if you don't specify them
|
|
||||||
|
|
||||||
The timing code itself will affect the Icarus performance since it increases the delay after
|
|
||||||
work is completed or aborted until it starts again
|
|
||||||
The increase is, however, extremely small and the actual increase is reported with the
|
|
||||||
RPC API 'stats' command (a very slow CPU will make it more noticeable)
|
|
||||||
Using the 'short' mode will remove this delay after 'short' mode completes
|
|
||||||
The delay doesn't affect the calculation of the correct hash time
|
|
835
README
835
README
@ -1,835 +0,0 @@
|
|||||||
This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
|
|
||||||
monitoring, (over)clocking and fanspeed support for bitcoin and derivative
|
|
||||||
coins. Do not use on multiple block chains at the same time!
|
|
||||||
|
|
||||||
This code is provided entirely free of charge by the programmer in his spare
|
|
||||||
time so donations would be greatly appreciated. Please consider donating to the
|
|
||||||
address below.
|
|
||||||
|
|
||||||
Con Kolivas <kernel@kolivas.org>
|
|
||||||
15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ
|
|
||||||
|
|
||||||
DOWNLOADS:
|
|
||||||
|
|
||||||
http://ck.kolivas.org/apps/cgminer
|
|
||||||
|
|
||||||
GIT TREE:
|
|
||||||
|
|
||||||
https://github.com/ckolivas/cgminer
|
|
||||||
|
|
||||||
Support thread:
|
|
||||||
|
|
||||||
http://bitcointalk.org/index.php?topic=28402.0
|
|
||||||
|
|
||||||
IRC Channel:
|
|
||||||
|
|
||||||
irc://irc.freenode.net/cgminer
|
|
||||||
|
|
||||||
License: GPLv3. See COPYING for details.
|
|
||||||
|
|
||||||
SEE ALSO API-README, ASIC-README, FGPA-README, GPU-README AND SCRYPT-README FOR
|
|
||||||
MORE INFORMATION ON EACH.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
EXECUTIVE SUMMARY ON USAGE:
|
|
||||||
|
|
||||||
After saving configuration from the menu, you do not need to give cgminer any
|
|
||||||
arguments and it will load your configuration.
|
|
||||||
|
|
||||||
Any configuration file may also contain a single
|
|
||||||
"include" : "filename"
|
|
||||||
to recursively include another configuration file.
|
|
||||||
Writing the configuration will save all settings from all files in the output.
|
|
||||||
|
|
||||||
|
|
||||||
Single pool:
|
|
||||||
|
|
||||||
cgminer -o http://pool:port -u username -p password
|
|
||||||
|
|
||||||
Multiple pools:
|
|
||||||
|
|
||||||
cgminer -o http://pool1:port -u pool1username -p pool1password -o http://pool2:port -u pool2usernmae -p pool2password
|
|
||||||
|
|
||||||
Single pool with a standard http proxy, regular desktop:
|
|
||||||
|
|
||||||
cgminer -o "http:proxy:port|http://pool:port" -u username -p password
|
|
||||||
|
|
||||||
Single pool with a socks5 proxy, regular desktop:
|
|
||||||
|
|
||||||
cgminer -o "socks5:proxy:port|http://pool:port" -u username -p password
|
|
||||||
|
|
||||||
Single pool with stratum protocol support:
|
|
||||||
|
|
||||||
cgminer -o stratum+tcp://pool:port -u username -p password
|
|
||||||
|
|
||||||
The list of proxy types are:
|
|
||||||
http: standard http 1.1 proxy
|
|
||||||
http0: http 1.0 proxy
|
|
||||||
socks4: socks4 proxy
|
|
||||||
socks5: socks5 proxy
|
|
||||||
socks4a: socks4a proxy
|
|
||||||
socks5h: socks5 proxy using a hostname
|
|
||||||
|
|
||||||
If you compile cgminer with a version of CURL before 7.19.4 then some of the above will
|
|
||||||
not be available. All are available since CURL version 7.19.4
|
|
||||||
|
|
||||||
If you specify the --socks-proxy option to cgminer, it will only be applied to all pools
|
|
||||||
that don't specify their own proxy setting like above
|
|
||||||
|
|
||||||
---
|
|
||||||
BUILDING CGMINER FOR YOURSELF
|
|
||||||
|
|
||||||
DEPENDENCIES:
|
|
||||||
Mandatory:
|
|
||||||
curl dev library http://curl.haxx.se/libcurl/
|
|
||||||
(libcurl4-openssl-dev)
|
|
||||||
|
|
||||||
pkg-config http://www.freedesktop.org/wiki/Software/pkg-config
|
|
||||||
libtool http://www.gnu.org/software/libtool/
|
|
||||||
Optional:
|
|
||||||
curses dev library
|
|
||||||
(libncurses5-dev or libpdcurses on WIN32 for text user interface)
|
|
||||||
|
|
||||||
AMD APP SDK http://developer.amd.com/sdks/AMDAPPSDK
|
|
||||||
(This sdk is mandatory for GPU mining)
|
|
||||||
|
|
||||||
AMD ADL SDK http://developer.amd.com/sdks/ADLSDK
|
|
||||||
(This sdk is mandatory for ATI GPU monitoring & clocking)
|
|
||||||
|
|
||||||
libudev dev library (libudev-dev)
|
|
||||||
(This is only required for ASIC+FPGA support and is linux only)
|
|
||||||
|
|
||||||
If building from git:
|
|
||||||
autoconf
|
|
||||||
automake
|
|
||||||
|
|
||||||
|
|
||||||
CGMiner specific configuration options:
|
|
||||||
--enable-opencl Enable support for GPU mining with opencl
|
|
||||||
--disable-adl Override detection and disable building with adl
|
|
||||||
--enable-scrypt Compile support for scrypt litecoin mining (default
|
|
||||||
disabled)
|
|
||||||
--enable-avalon Compile support for Avalon (default disabled)
|
|
||||||
--enable-bflsc Compile support for BFL ASICs (default disabled)
|
|
||||||
--enable-bitforce Compile support for BitForce FPGAs (default
|
|
||||||
disabled)
|
|
||||||
--enable-bitfury Compile support for BitFury ASICs (default disabled)
|
|
||||||
--enable-hashfast Compile support for Hashfast (default disabled)
|
|
||||||
--enable-icarus Compile support for Icarus (default disabled)
|
|
||||||
--enable-knc Compile support for KnC miners (default disabled)
|
|
||||||
--enable-klondike Compile support for Klondike (default disabled)
|
|
||||||
--enable-modminer Compile support for ModMiner FPGAs(default disabled)
|
|
||||||
--without-curses Compile support for curses TUI (default enabled)
|
|
||||||
--with-system-libusb Compile against dynamic system libusb (default use
|
|
||||||
included static libusb)
|
|
||||||
|
|
||||||
Basic *nix build instructions:
|
|
||||||
To actually build:
|
|
||||||
|
|
||||||
./autogen.sh # only needed if building from git repo
|
|
||||||
CFLAGS="-O2 -Wall -march=native" ./configure <options>
|
|
||||||
|
|
||||||
No installation is necessary. You may run cgminer from the build
|
|
||||||
directory directly, but you may do make install if you wish to install
|
|
||||||
cgminer to a system location or location you specified.
|
|
||||||
|
|
||||||
Native WIN32 build instructions: see windows-build.txt
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Usage instructions: Run "cgminer --help" to see options:
|
|
||||||
|
|
||||||
Usage: . [-atDdGCgIKklmpPQqrRsTouvwOchnV]
|
|
||||||
Options for both config file and command line:
|
|
||||||
--api-allow Allow API access (if enabled) only to the given list of [W:]IP[/Prefix] address[/subnets]
|
|
||||||
This overrides --api-network and you must specify 127.0.0.1 if it is required
|
|
||||||
W: in front of the IP address gives that address privileged access to all api commands
|
|
||||||
--api-description Description placed in the API status header (default: cgminer version)
|
|
||||||
--api-groups API one letter groups G:cmd:cmd[,P:cmd:*...]
|
|
||||||
See API-README for usage
|
|
||||||
--api-listen Listen for API requests (default: disabled)
|
|
||||||
By default any command that does not just display data returns access denied
|
|
||||||
See --api-allow to overcome this
|
|
||||||
--api-network Allow API (if enabled) to listen on/for any address (default: only 127.0.0.1)
|
|
||||||
--api-mcast Enable API Multicast listener, (default: disabled)
|
|
||||||
The listener will only run if the API is also enabled
|
|
||||||
--api-mcast-addr <arg> API Multicast listen address, (default: 224.0.0.75)
|
|
||||||
--api-mcast-code <arg> Code expected in the API Multicast message, don't use '-' (default: "FTW")
|
|
||||||
--api-mcast-port <arg> API Multicast listen port, (default: 4028)
|
|
||||||
--api-port Port number of miner API (default: 4028)
|
|
||||||
--auto-fan Automatically adjust all GPU fan speeds to maintain a target temperature
|
|
||||||
--auto-gpu Automatically adjust all GPU engine clock speeds to maintain a target temperature
|
|
||||||
--balance Change multipool strategy from failover to even share balance
|
|
||||||
--benchmark Run cgminer in benchmark mode - produces no shares
|
|
||||||
--compact Use compact display without per device statistics
|
|
||||||
--debug|-D Enable debug output
|
|
||||||
--device|-d <arg> Select device to use, one value, range and/or comma separated (e.g. 0-2,4) default: all
|
|
||||||
--disable-rejecting Automatically disable pools that continually reject shares
|
|
||||||
--expiry|-E <arg> Upper bound on how many seconds after getting work we consider a share from it stale (default: 120)
|
|
||||||
--failover-only Don't leak work to backup pools when primary pool is lagging
|
|
||||||
--fix-protocol Do not redirect to a different getwork protocol (eg. stratum)
|
|
||||||
--hotplug <arg> Set hotplug check time to <arg> seconds (0=never default: 5) - only with libusb
|
|
||||||
--kernel-path|-K <arg> Specify a path to where bitstream and kernel files are (default: "/usr/local/bin")
|
|
||||||
--load-balance Change multipool strategy from failover to quota based balance
|
|
||||||
--log|-l <arg> Interval in seconds between log output (default: 5)
|
|
||||||
--lowmem Minimise caching of shares for low memory applications
|
|
||||||
--monitor|-m <arg> Use custom pipe cmd for output messages
|
|
||||||
--net-delay Impose small delays in networking to not overload slow routers
|
|
||||||
--no-submit-stale Don't submit shares if they are detected as stale
|
|
||||||
--pass|-p <arg> Password for bitcoin JSON-RPC server
|
|
||||||
--per-device-stats Force verbose mode and output per-device statistics
|
|
||||||
--protocol-dump|-P Verbose dump of protocol-level activities
|
|
||||||
--queue|-Q <arg> Minimum number of work items to have queued (0 - 10) (default: 1)
|
|
||||||
--quiet|-q Disable logging output, display status and errors
|
|
||||||
--real-quiet Disable all output
|
|
||||||
--remove-disabled Remove disabled devices entirely, as if they didn't exist
|
|
||||||
--rotate <arg> Change multipool strategy from failover to regularly rotate at N minutes (default: 0)
|
|
||||||
--round-robin Change multipool strategy from failover to round robin on failure
|
|
||||||
--scan-time|-s <arg> Upper bound on time spent scanning current work, in seconds (default: 60)
|
|
||||||
--sched-start <arg> Set a time of day in HH:MM to start mining (a once off without a stop time)
|
|
||||||
--sched-stop <arg> Set a time of day in HH:MM to stop mining (will quit without a start time)
|
|
||||||
--scrypt Use the scrypt algorithm for mining (litecoin only)
|
|
||||||
--sharelog <arg> Append share log to file
|
|
||||||
--shares <arg> Quit after mining N shares (default: unlimited)
|
|
||||||
--socks-proxy <arg> Set socks4 proxy (host:port) for all pools without a proxy specified
|
|
||||||
--syslog Use system log for output messages (default: standard error)
|
|
||||||
--temp-cutoff <arg> Temperature where a device will be automatically disabled, one value or comma separated list (default: 95)
|
|
||||||
--text-only|-T Disable ncurses formatted screen output
|
|
||||||
--url|-o <arg> URL for bitcoin JSON-RPC server
|
|
||||||
--user|-u <arg> Username for bitcoin JSON-RPC server
|
|
||||||
--verbose Log verbose output to stderr as well as status output
|
|
||||||
--userpass|-O <arg> Username:Password pair for bitcoin JSON-RPC server
|
|
||||||
Options for command line only:
|
|
||||||
--config|-c <arg> Load a JSON-format configuration file
|
|
||||||
See example.conf for an example configuration.
|
|
||||||
--help|-h Print this message
|
|
||||||
--version|-V Display version and exit
|
|
||||||
|
|
||||||
|
|
||||||
USB device (ASIC and FPGA) options:
|
|
||||||
|
|
||||||
--icarus-options <arg> Set specific FPGA board configurations - one set of values for all or comma separated
|
|
||||||
--icarus-timing <arg> Set how the Icarus timing is calculated - one setting/value for all or comma separated
|
|
||||||
--usb <arg> USB device selection (See below)
|
|
||||||
--usb-dump (See FPGA-README)
|
|
||||||
|
|
||||||
See FGPA-README or ASIC-README for more information regarding these.
|
|
||||||
|
|
||||||
|
|
||||||
ASIC only options:
|
|
||||||
|
|
||||||
--avalon-auto Adjust avalon overclock frequency dynamically for best hashrate
|
|
||||||
--avalon-fan <arg> Set fanspeed percentage for avalon, single value or range (default: 20-100)
|
|
||||||
--avalon-freq <arg> Set frequency range for avalon-auto, single value or range
|
|
||||||
--avalon-cutoff <arg> Set avalon overheat cut off temperature (default: 60)
|
|
||||||
--avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq
|
|
||||||
--avalon-temp <arg> Set avalon target temperature (default: 50)
|
|
||||||
--bflsc-overheat <arg> Set overheat temperature where BFLSC devices throttle, 0 to disable (default: 90)
|
|
||||||
--bitburner-fury-options <arg> Override avalon-options for BitBurner Fury boards baud:miners:asic:timeout:freq
|
|
||||||
--bitburner-fury-voltage <arg> Set BitBurner Fury core voltage, in millivolts
|
|
||||||
--bitburner-voltage <arg> Set BitBurner (Avalon) core voltage, in millivolts
|
|
||||||
--klondike-options <arg> Set klondike options clock:temptarget
|
|
||||||
|
|
||||||
See ASIC-README for more information regarding these.
|
|
||||||
|
|
||||||
|
|
||||||
FPGA only options:
|
|
||||||
|
|
||||||
--bfl-range Use nonce range on bitforce devices if supported
|
|
||||||
|
|
||||||
See FGPA-README for more information regarding this.
|
|
||||||
|
|
||||||
|
|
||||||
GPU only options:
|
|
||||||
|
|
||||||
--auto-fan Automatically adjust all GPU fan speeds to maintain a target temperature
|
|
||||||
--auto-gpu Automatically adjust all GPU engine clock speeds to maintain a target temperature
|
|
||||||
--disable-gpu|-G Disable GPU mining even if suitable devices exist
|
|
||||||
--gpu-threads|-g <arg> Number of threads per GPU (1 - 10) (default: 2)
|
|
||||||
--gpu-dyninterval <arg> Set the refresh interval in ms for GPUs using dynamic intensity (default: 7)
|
|
||||||
--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)
|
|
||||||
--gpu-fan <arg> GPU fan percentage range - one value, range and/or comma separated list (e.g. 25-85,85,65)
|
|
||||||
--gpu-map <arg> Map OpenCL to ADL device order manually, paired CSV (e.g. 1:0,2:1 maps OpenCL 1 to ADL 0, 2 to 1)
|
|
||||||
--gpu-memclock <arg> Set the GPU memory (over)clock in Mhz - one value for all or separate by commas for per card.
|
|
||||||
--gpu-memdiff <arg> Set a fixed difference in clock speed between the GPU and memory in auto-gpu mode
|
|
||||||
--gpu-powertune <arg> Set the GPU powertune percentage - one value for all or separate by commas for per card.
|
|
||||||
--gpu-reorder Attempt to reorder GPU devices according to PCI Bus ID
|
|
||||||
--gpu-vddc <arg> Set the GPU voltage in Volts - one value for all or separate by commas for per card.
|
|
||||||
--intensity|-I <arg> Intensity of GPU scanning (d or -10 -> 10, default: d to maintain desktop interactivity)
|
|
||||||
--kernel|-k <arg> Override kernel to use (diablo, poclbm, phatk or diakgcn) - one value or comma separated
|
|
||||||
--ndevs|-n Enumerate number of detected GPUs and exit
|
|
||||||
--no-restart Do not attempt to restart GPUs that hang
|
|
||||||
--temp-hysteresis <arg> Set how much the temperature can fluctuate outside limits when automanaging speeds (default: 3)
|
|
||||||
--temp-overheat <arg> Overheat temperature when automatically managing fan and GPU speeds (default: 85)
|
|
||||||
--temp-target <arg> Target temperature when automatically managing fan and GPU speeds (default: 75)
|
|
||||||
--vectors|-v <arg> Override detected optimal vector (1, 2 or 4) - one value or comma separated list
|
|
||||||
--worksize|-w <arg> Override detected optimal worksize - one value or comma separated list
|
|
||||||
|
|
||||||
See GPU-README for more information regarding GPU mining.
|
|
||||||
|
|
||||||
|
|
||||||
SCRYPT only options:
|
|
||||||
|
|
||||||
--lookup-gap <arg> Set GPU lookup gap for scrypt mining, comma separated
|
|
||||||
--shaders <arg> GPU shaders per card for tuning scrypt, comma separated
|
|
||||||
--thread-concurrency <arg> Set GPU thread concurrency for scrypt mining, comma separated
|
|
||||||
|
|
||||||
See SCRYPT-README for more information regarding litecoin mining.
|
|
||||||
|
|
||||||
|
|
||||||
Cgminer should automatically find all of your Avalon ASIC, BFL ASIC, BitForce
|
|
||||||
FPGAs, Icarus bitstream FPGAs, Klondike ASIC, ASICMINER usb block erupters,
|
|
||||||
KnC ASICs, Hashfast ASICs and ModMiner FPGAs.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
SETTING UP USB DEVICES
|
|
||||||
|
|
||||||
WINDOWS:
|
|
||||||
|
|
||||||
On windows, the direct USB support requires the installation of a WinUSB
|
|
||||||
driver (NOT the ftdi_sio driver), and attach it to your devices.
|
|
||||||
The easiest way to do this is to use the zadig utility which will install the
|
|
||||||
drivers for you and then once you plug in your device you can choose the
|
|
||||||
"list all devices" from the "option" menu and you should be able to see the
|
|
||||||
device as something like: "BitFORCE SHA256 SC". Choose the install or replace
|
|
||||||
driver option and select WinUSB. You can either google for zadig or download
|
|
||||||
it from the cgminer directoy in the DOWNLOADS link above.
|
|
||||||
|
|
||||||
LINUX:
|
|
||||||
|
|
||||||
On linux, the direct USB support requires no drivers at all. However due to
|
|
||||||
permissions issues, you may not be able to mine directly on the devices as a
|
|
||||||
regular user without giving the user access to the device or by mining as
|
|
||||||
root (administrator). In order to give your regular user access, you can make
|
|
||||||
him a member of the plugdev group with the following commands:
|
|
||||||
|
|
||||||
sudo usermod -G plugdev -a `whoami`
|
|
||||||
|
|
||||||
If your distribution does not have the plugdev group you can create it with:
|
|
||||||
|
|
||||||
sudo groupadd plugdev
|
|
||||||
|
|
||||||
In order for the BFL devices to instantly be owned by the plugdev group and
|
|
||||||
accessible by anyone from the plugdev group you can copy the file
|
|
||||||
"01-cgminer.rules" from the cgminer archive into the /etc/udev/rules.d
|
|
||||||
directory with the following command:
|
|
||||||
|
|
||||||
sudo cp 01-cgminer.rules /etc/udev/rules.d/
|
|
||||||
|
|
||||||
After this you can either manually restart udev and re-login, or more easily
|
|
||||||
just reboot.
|
|
||||||
|
|
||||||
Advanced USB options:
|
|
||||||
|
|
||||||
The --usb option can restrict how many Avalon, BFL ASIC, BitForce FPGAs,
|
|
||||||
Klondike ASIC, ModMiner FPGAs or Icarus bitstream FPGAs it finds:
|
|
||||||
|
|
||||||
--usb 1:2,1:3,1:4,1:*
|
|
||||||
or
|
|
||||||
--usb BAS:1,BFL:1,MMQ:0,ICA:0,KLN:0
|
|
||||||
or
|
|
||||||
--usb :10
|
|
||||||
|
|
||||||
You can only use one of the above 3
|
|
||||||
|
|
||||||
The first version
|
|
||||||
--usb 1:2,1:3,1:4,1:*
|
|
||||||
allows you to select which devices to mine on with a list of USB
|
|
||||||
bus_number:device_address
|
|
||||||
All other USB devices will be ignored
|
|
||||||
Hotplug will also only look at the devices matching the list specified and
|
|
||||||
find nothing new if they are all in use
|
|
||||||
You can specify just the USB bus_number to find all devices like 1:*
|
|
||||||
which means any devices on USB bus_number 1
|
|
||||||
This is useful if you unplug a device then plug it back in the same port,
|
|
||||||
it usually reappears with the same bus_number but a different device_address
|
|
||||||
|
|
||||||
You can see the list of all USB devices on linux with 'sudo lsusb'
|
|
||||||
Cgminer will list the recognised USB devices with the '-n' option or the
|
|
||||||
'--usb-dump 0' option
|
|
||||||
The '--usb-dump N' option with a value of N greater than 0 will dump a lot
|
|
||||||
of details about each recognised USB device
|
|
||||||
If you wish to see all USB devices, include the --usb-list-all option
|
|
||||||
|
|
||||||
The second version
|
|
||||||
--usb BAS:1,BFL:1,MMQ:0,ICA:0,KLN:0
|
|
||||||
allows you to specify how many devices to choose based on each device
|
|
||||||
driver cgminer has - there are currently 5 USB drivers: BAS, BFL, MMQ.
|
|
||||||
ICA & KLN
|
|
||||||
N.B. you can only specify which device driver to limit, not the type of
|
|
||||||
each device, e.g. with BAS:n you can limit how many BFL ASIC devices will
|
|
||||||
be checked, but you cannot limit the number of each type of BFL ASIC
|
|
||||||
Also note that the MMQ count is the number of MMQ backplanes you have
|
|
||||||
not the number of MMQ FPGAs
|
|
||||||
|
|
||||||
The third version
|
|
||||||
--usb :10
|
|
||||||
means only use a maximum of 10 devices of any supported USB devices
|
|
||||||
Once cgminer has 10 devices it will not configure any more and hotplug will
|
|
||||||
not scan for any more
|
|
||||||
If one of the 10 devices stops working, hotplug - if enabled, as is default
|
|
||||||
- will scan normally again until it has 10 devices
|
|
||||||
|
|
||||||
--usb :0 will disable all USB I/O other than to initialise libusb
|
|
||||||
|
|
||||||
NOTE: The --device option will limit which devices are in use based on their
|
|
||||||
numbering order of the total devices, so if you hotplug USB devices regularly,
|
|
||||||
it will not reliably be the same devices.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
WHILE RUNNING:
|
|
||||||
|
|
||||||
The following options are available while running with a single keypress:
|
|
||||||
|
|
||||||
[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
|
|
||||||
|
|
||||||
P gives you:
|
|
||||||
|
|
||||||
Current pool management strategy: Failover
|
|
||||||
[F]ailover only disabled
|
|
||||||
[A]dd pool [R]emove pool [D]isable pool [E]nable pool
|
|
||||||
[C]hange management strategy [S]witch pool [I]nformation
|
|
||||||
|
|
||||||
|
|
||||||
S gives you:
|
|
||||||
|
|
||||||
[Q]ueue: 1
|
|
||||||
[S]cantime: 60
|
|
||||||
[E]xpiry: 120
|
|
||||||
[W]rite config file
|
|
||||||
[C]gminer restart
|
|
||||||
|
|
||||||
|
|
||||||
D gives you:
|
|
||||||
|
|
||||||
[N]ormal [C]lear [S]ilent mode (disable all output)
|
|
||||||
[D]ebug:off
|
|
||||||
[P]er-device:off
|
|
||||||
[Q]uiet:off
|
|
||||||
[V]erbose:off
|
|
||||||
[R]PC debug:off
|
|
||||||
[W]orkTime details:off
|
|
||||||
co[M]pact: off
|
|
||||||
[L]og interval:5
|
|
||||||
|
|
||||||
|
|
||||||
Q quits the application.
|
|
||||||
|
|
||||||
|
|
||||||
G gives you something like:
|
|
||||||
|
|
||||||
GPU 0: [124.2 / 191.3 Mh/s] [A:77 R:33 HW:0 U:1.73/m WU 1.73/m]
|
|
||||||
Temp: 67.0 C
|
|
||||||
Fan Speed: 35% (2500 RPM)
|
|
||||||
Engine Clock: 960 MHz
|
|
||||||
Memory Clock: 480 Mhz
|
|
||||||
Vddc: 1.200 V
|
|
||||||
Activity: 93%
|
|
||||||
Powertune: 0%
|
|
||||||
Last initialised: [2011-09-06 12:03:56]
|
|
||||||
Thread 0: 62.4 Mh/s Enabled ALIVE
|
|
||||||
Thread 1: 60.2 Mh/s Enabled ALIVE
|
|
||||||
|
|
||||||
[E]nable [D]isable [R]estart GPU [C]hange settings
|
|
||||||
Or press any other key to continue
|
|
||||||
|
|
||||||
|
|
||||||
The running log shows output like this:
|
|
||||||
|
|
||||||
[2012-10-12 18:02:20] Accepted f0c05469 Diff 1/1 GPU 0 pool 1
|
|
||||||
[2012-10-12 18:02:22] Accepted 218ac982 Diff 7/1 GPU 1 pool 1
|
|
||||||
[2012-10-12 18:02:23] Accepted d8300795 Diff 1/1 GPU 3 pool 1
|
|
||||||
[2012-10-12 18:02:24] Accepted 122c1ff1 Diff 14/1 GPU 1 pool 1
|
|
||||||
|
|
||||||
The 8 byte hex value are the 2nd 8 bytes of the share being submitted to the
|
|
||||||
pool. The 2 diff values are the actual difficulty target that share reached
|
|
||||||
followed by the difficulty target the pool is currently asking for.
|
|
||||||
|
|
||||||
---
|
|
||||||
Also many issues and FAQs are covered in the forum thread
|
|
||||||
dedicated to this program,
|
|
||||||
http://forum.bitcoin.org/index.php?topic=28402.0
|
|
||||||
|
|
||||||
The output line shows the following:
|
|
||||||
(5s):1713.6 (avg):1707.8 Mh/s | A:729 R:8 HW:0 WU:22.53/m
|
|
||||||
|
|
||||||
Each column is as follows:
|
|
||||||
5s: A 5 second exponentially decaying average hash rate
|
|
||||||
avg: An all time average hash rate
|
|
||||||
A: The total difficulty of Accepted shares
|
|
||||||
R: The total difficulty of Rejected shares
|
|
||||||
HW: The number of HardWare errors
|
|
||||||
WU: The Work Utility defined as the number of diff1 shares work / minute
|
|
||||||
(accepted or rejected).
|
|
||||||
|
|
||||||
GPU 1: 73.5C 2551RPM | 427.3/443.0Mh/s | A:8 R:0 HW:0 WU:4.39/m
|
|
||||||
|
|
||||||
Each column is as follows:
|
|
||||||
Temperature (if supported)
|
|
||||||
Fanspeed (if supported)
|
|
||||||
A 5 second exponentially decaying average hash rate
|
|
||||||
An all time average hash rate
|
|
||||||
The total difficulty of accepted shares
|
|
||||||
The total difficulty of rejected shares
|
|
||||||
The number of hardware erorrs
|
|
||||||
The work utility defined as the number of diff1 shares work / minute
|
|
||||||
|
|
||||||
The cgminer status line shows:
|
|
||||||
ST: 1 SS: 0 NB: 1 LW: 8 GF: 1 RF: 1
|
|
||||||
|
|
||||||
ST is STaged work items (ready to use).
|
|
||||||
SS is Stale Shares discarded (detected and not submitted so don't count as rejects)
|
|
||||||
NB is New Blocks detected on the network
|
|
||||||
LW is Locally generated Work items
|
|
||||||
GF is Getwork Fail Occasions (server slow to provide work)
|
|
||||||
RF is Remote Fail occasions (server slow to accept work)
|
|
||||||
|
|
||||||
The block display shows:
|
|
||||||
Block: 0074c5e482e34a506d2a051a... Started: [17:17:22] Best share: 2.71K
|
|
||||||
|
|
||||||
This shows a short stretch of the current block, when the new block started,
|
|
||||||
and the all time best difficulty share you've found since starting cgminer
|
|
||||||
this time.
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
MULTIPOOL
|
|
||||||
|
|
||||||
FAILOVER STRATEGIES WITH MULTIPOOL:
|
|
||||||
A number of different strategies for dealing with multipool setups are
|
|
||||||
available. Each has their advantages and disadvantages so multiple strategies
|
|
||||||
are available by user choice, as per the following list:
|
|
||||||
|
|
||||||
FAILOVER:
|
|
||||||
The default strategy is failover. This means that if you input a number of
|
|
||||||
pools, it will try to use them as a priority list, moving away from the 1st
|
|
||||||
to the 2nd, 2nd to 3rd and so on. If any of the earlier pools recover, it will
|
|
||||||
move back to the higher priority ones.
|
|
||||||
|
|
||||||
ROUND ROBIN:
|
|
||||||
This strategy only moves from one pool to the next when the current one falls
|
|
||||||
idle and makes no attempt to move otherwise.
|
|
||||||
|
|
||||||
ROTATE:
|
|
||||||
This strategy moves at user-defined intervals from one active pool to the next,
|
|
||||||
skipping pools that are idle.
|
|
||||||
|
|
||||||
LOAD BALANCE:
|
|
||||||
This strategy sends work to all the pools on a quota basis. By default, all
|
|
||||||
pools are allocated equal quotas unless specified with --quota. This
|
|
||||||
apportioning of work is based on work handed out, not shares returned so is
|
|
||||||
independent of difficulty targets or rejected shares. While a pool is disabled
|
|
||||||
or dead, its quota is dropped until it is re-enabled. Quotas are forward
|
|
||||||
looking, so if the quota is changed on the fly, it only affects future work.
|
|
||||||
If all pools are set to zero quota or all pools with quota are dead, it will
|
|
||||||
fall back to a failover mode. See quota below for more information.
|
|
||||||
|
|
||||||
The failover-only flag has special meaning in combination with load-balance
|
|
||||||
mode and it will distribute quota back to priority pool 0 from any pools that
|
|
||||||
are unable to provide work for any reason so as to maintain quota ratios
|
|
||||||
between the rest of the pools.
|
|
||||||
|
|
||||||
BALANCE:
|
|
||||||
This strategy monitors the amount of difficulty 1 shares solved for each pool
|
|
||||||
and uses it to try to end up doing the same amount of work for all pools.
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
QUOTAS
|
|
||||||
|
|
||||||
The load-balance multipool strategy works off a quota based scheduler. The
|
|
||||||
quotas handed out by default are equal, but the user is allowed to specify any
|
|
||||||
arbitrary ratio of quotas. For example, if all the quota values add up to 100,
|
|
||||||
each quota value will be a percentage, but if 2 pools are specified and pool0
|
|
||||||
is given a quota of 1 and pool1 is given a quota of 9, pool0 will get 10% of
|
|
||||||
the work and pool1 will get 90%. Quotas can be changed on the fly by the API,
|
|
||||||
and do not act retrospectively. Setting a quota to zero will effectively
|
|
||||||
disable that pool unless all other pools are disabled or dead. In that
|
|
||||||
scenario, load-balance falls back to regular failover priority-based strategy.
|
|
||||||
While a pool is dead, it loses its quota and no attempt is made to catch up
|
|
||||||
when it comes back to life.
|
|
||||||
|
|
||||||
To specify quotas on the command line, pools should be specified with a
|
|
||||||
semicolon separated --quota(or -U) entry instead of --url. Pools specified with
|
|
||||||
--url are given a nominal quota value of 1 and entries can be mixed.
|
|
||||||
|
|
||||||
For example:
|
|
||||||
--url poola:porta -u usernamea -p passa --quota "2;poolb:portb" -u usernameb -p passb
|
|
||||||
Will give poola 1/3 of the work and poolb 2/3 of the work.
|
|
||||||
|
|
||||||
Writing configuration files with quotas is likewise supported. To use the above
|
|
||||||
quotas in a configuration file they would be specified thus:
|
|
||||||
|
|
||||||
"pools" : [
|
|
||||||
{
|
|
||||||
"url" : "poola:porta",
|
|
||||||
"user" : "usernamea",
|
|
||||||
"pass" : "passa"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"quota" : "2;poolb:portb",
|
|
||||||
"user" : "usernameb",
|
|
||||||
"pass" : "passb"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
LOGGING
|
|
||||||
|
|
||||||
cgminer will log to stderr if it detects stderr is being redirected to a file.
|
|
||||||
To enable logging simply add 2>logfile.txt to your command line and logfile.txt
|
|
||||||
will contain the logged output at the log level you specify (normal, verbose,
|
|
||||||
debug etc.)
|
|
||||||
|
|
||||||
In other words if you would normally use:
|
|
||||||
./cgminer -o xxx -u yyy -p zzz
|
|
||||||
if you use
|
|
||||||
./cgminer -o xxx -u yyy -p zzz 2>logfile.txt
|
|
||||||
it will log to a file called logfile.txt and otherwise work the same.
|
|
||||||
|
|
||||||
There is also the -m option on linux which will spawn a command of your choice
|
|
||||||
and pipe the output directly to that command.
|
|
||||||
|
|
||||||
The WorkTime details 'debug' option adds details on the end of each line
|
|
||||||
displayed for Accepted or Rejected work done. An example would be:
|
|
||||||
|
|
||||||
<-00000059.ed4834a3 M:X D:1.0 G:17:02:38:0.405 C:1.855 (2.995) W:3.440 (0.000) S:0.461 R:17:02:47
|
|
||||||
|
|
||||||
The first 2 hex codes are the previous block hash, the rest are reported in
|
|
||||||
seconds unless stated otherwise:
|
|
||||||
The previous hash is followed by the getwork mode used M:X where X is one of
|
|
||||||
P:Pool, T:Test Pool, L:LP or B:Benchmark,
|
|
||||||
then D:d.ddd is the difficulty required to get a share from the work,
|
|
||||||
then G:hh:mm:ss:n.nnn, which is when the getwork or LP was sent to the pool and
|
|
||||||
the n.nnn is how long it took to reply,
|
|
||||||
followed by 'O' on it's own if it is an original getwork, or 'C:n.nnn' if it was
|
|
||||||
a clone with n.nnn stating how long after the work was recieved that it was cloned,
|
|
||||||
(m.mmm) is how long from when the original work was received until work started,
|
|
||||||
W:n.nnn is how long the work took to process until it was ready to submit,
|
|
||||||
(m.mmm) is how long from ready to submit to actually doing the submit, this is
|
|
||||||
usually 0.000 unless there was a problem with submitting the work,
|
|
||||||
S:n.nnn is how long it took to submit the completed work and await the reply,
|
|
||||||
R:hh:mm:ss is the actual time the work submit reply was received
|
|
||||||
|
|
||||||
If you start cgminer with the --sharelog option, you can get detailed
|
|
||||||
information for each share found. The argument to the option may be "-" for
|
|
||||||
standard output (not advisable with the ncurses UI), any valid positive number
|
|
||||||
for that file descriptor, or a filename.
|
|
||||||
|
|
||||||
To log share data to a file named "share.log", you can use either:
|
|
||||||
./cgminer --sharelog 50 -o xxx -u yyy -p zzz 50>share.log
|
|
||||||
./cgminer --sharelog share.log -o xxx -u yyy -p zzz
|
|
||||||
|
|
||||||
For every share found, data will be logged in a CSV (Comma Separated Value)
|
|
||||||
format:
|
|
||||||
timestamp,disposition,target,pool,dev,thr,sharehash,sharedata
|
|
||||||
For example (this is wrapped, but it's all on one line for real):
|
|
||||||
1335313090,reject,
|
|
||||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000,
|
|
||||||
http://localhost:8337,GPU0,0,
|
|
||||||
6f983c918f3299b58febf95ec4d0c7094ed634bc13754553ec34fc3800000000,
|
|
||||||
00000001a0980aff4ce4a96d53f4b89a2d5f0e765c978640fe24372a000001c5
|
|
||||||
000000004a4366808f81d44f26df3d69d7dc4b3473385930462d9ab707b50498
|
|
||||||
f681634a4f1f63d01a0cd43fb338000000000080000000000000000000000000
|
|
||||||
0000000000000000000000000000000000000000000000000000000080020000
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
RPC API
|
|
||||||
|
|
||||||
For RPC API details see the API-README file
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
FAQ
|
|
||||||
|
|
||||||
Q: Can I mine on servers from different networks (eg smartcoin and bitcoin) at
|
|
||||||
the same time?
|
|
||||||
A: No, cgminer keeps a database of the block it's working on to ensure it does
|
|
||||||
not work on stale blocks, and having different blocks from two networks would
|
|
||||||
make it invalidate the work from each other.
|
|
||||||
|
|
||||||
Q: Can I configure cgminer to mine with different login credentials or pools
|
|
||||||
for each separate device?
|
|
||||||
A: No.
|
|
||||||
|
|
||||||
Q: Can I put multiple pools in the config file?
|
|
||||||
A: Yes, check the example.conf file. Alternatively, set up everything either on
|
|
||||||
the command line or via the menu after startup and choose settings->write
|
|
||||||
config file and the file will be loaded one each startup.
|
|
||||||
|
|
||||||
Q: The build fails with gcc is unable to build a binary.
|
|
||||||
A: Remove the "-march=native" component of your CFLAGS as your version of gcc
|
|
||||||
does not support it.
|
|
||||||
|
|
||||||
Q: Can you implement feature X?
|
|
||||||
A: I can, but time is limited, and people who donate are more likely to get
|
|
||||||
their feature requests implemented.
|
|
||||||
|
|
||||||
Q: Work keeps going to my backup pool even though my primary pool hasn't
|
|
||||||
failed?
|
|
||||||
A: Cgminer checks for conditions where the primary pool is lagging and will
|
|
||||||
pass some work to the backup servers under those conditions. The reason for
|
|
||||||
doing this is to try its absolute best to keep the GPUs working on something
|
|
||||||
useful and not risk idle periods. You can disable this behaviour with the
|
|
||||||
option --failover-only.
|
|
||||||
|
|
||||||
Q: Is this a virus?
|
|
||||||
A: Cgminer is being packaged with other trojan scripts and some antivirus
|
|
||||||
software is falsely accusing cgminer.exe as being the actual virus, rather
|
|
||||||
than whatever it is being packaged with. If you installed cgminer yourself,
|
|
||||||
then you do not have a virus on your computer. Complain to your antivirus
|
|
||||||
software company. They seem to be flagging even source code now from cgminer
|
|
||||||
as viruses, even though text source files can't do anything by themself.
|
|
||||||
|
|
||||||
Q: Can you modify the display to include more of one thing in the output and
|
|
||||||
less of another, or can you change the quiet mode or can you add yet another
|
|
||||||
output mode?
|
|
||||||
A: Everyone will always have their own view of what's important to monitor.
|
|
||||||
The defaults are very sane and I have very little interest in changing this
|
|
||||||
any further.
|
|
||||||
|
|
||||||
Q: What are the best parameters to pass for X pool/hardware/device.
|
|
||||||
A: Virtually always, the DEFAULT parameters give the best results. Most user
|
|
||||||
defined settings lead to worse performance. The ONLY thing most users should
|
|
||||||
need to set is the Intensity for GPUs.
|
|
||||||
|
|
||||||
Q: What happened to CPU mining?
|
|
||||||
A: Being increasingly irrelevant for most users, and a maintenance issue, it is
|
|
||||||
no longer under active development and will not be supported. No binary builds
|
|
||||||
supporting CPU mining will be released. Virtually all remaining users of CPU
|
|
||||||
mining are as back ends for illegal botnets. The main reason cgminer is being
|
|
||||||
inappopriately tagged as a virus by antivirus software is due to the trojans
|
|
||||||
packaging a CPU mining capable version of it. There is no longer ANY CPU mining
|
|
||||||
code in cgminer. If you are mining bitcoin with CPU today, you are spending
|
|
||||||
1000x more in electricity costs than you are earning in bitcoin.
|
|
||||||
|
|
||||||
Q: GUI version?
|
|
||||||
A: No. The RPC interface makes it possible for someone else to write one
|
|
||||||
though.
|
|
||||||
|
|
||||||
Q: I'm having an issue. What debugging information should I provide?
|
|
||||||
A: Start cgminer with your regular commands and add -D -T --verbose and provide
|
|
||||||
the full startup output and a summary of your hardware, operating system, ATI
|
|
||||||
driver version and ATI stream version.
|
|
||||||
|
|
||||||
Q: Why don't you provide win64 builds?
|
|
||||||
A: Win32 builds work everywhere and there is precisely zero advantage to a
|
|
||||||
64 bit build on windows.
|
|
||||||
|
|
||||||
Q: Is it faster to mine on windows or linux?
|
|
||||||
A: It makes no difference. It comes down to choice of operating system for
|
|
||||||
their various features. Linux offers much better long term stability and
|
|
||||||
remote monitoring and security, while windows offers you overclocking tools
|
|
||||||
that can achieve much more than cgminer can do on linux.
|
|
||||||
|
|
||||||
Q: Can I mine with cgminer on a MAC?
|
|
||||||
A: cgminer will compile on OSX, but the performance of GPU mining is
|
|
||||||
compromised due to the opencl implementation on OSX, there is no temperature
|
|
||||||
or fanspeed monitoring, and the cooling design of most MACs, despite having
|
|
||||||
powerful GPUs, will usually not cope with constant usage leading to a high
|
|
||||||
risk of thermal damage. It is highly recommended not to mine on a MAC unless
|
|
||||||
it is to a USB device.
|
|
||||||
|
|
||||||
Q: I'm trying to mine litecoin but cgminer shows MH values instead of kH and
|
|
||||||
submits no shares?
|
|
||||||
A: Add the --scrypt parameter.
|
|
||||||
|
|
||||||
Q: I switch users on windows and my mining stops working?
|
|
||||||
A: That's correct, it does. It's a permissions issue that there is no known
|
|
||||||
fix for due to monitoring of GPU fanspeeds and temperatures. If you disable
|
|
||||||
the monitoring with --no-adl it should switch okay.
|
|
||||||
|
|
||||||
Q: My network gets slower and slower and then dies for a minute?
|
|
||||||
A; Try the --net-delay option.
|
|
||||||
|
|
||||||
Q: How do I tune for p2pool?
|
|
||||||
A: p2pool has very rapid expiration of work and new blocks, it is suggested you
|
|
||||||
decrease intensity by 1 from your optimal value, and decrease GPU threads to 1
|
|
||||||
with -g 1. It is also recommended to use --failover-only since the work is
|
|
||||||
effectively like a different block chain. If mining with a minirig, it is worth
|
|
||||||
adding the --bfl-range option.
|
|
||||||
|
|
||||||
Q: Are OpenCL kernels from other mining software useable in cgminer?
|
|
||||||
A: No, the APIs are slightly different between the different software and they
|
|
||||||
will not work.
|
|
||||||
|
|
||||||
Q: I run PHP on windows to access the API with the example miner.php. Why does
|
|
||||||
it fail when php is installed properly but I only get errors about Sockets not
|
|
||||||
working in the logs?
|
|
||||||
A: http://us.php.net/manual/en/sockets.installation.php
|
|
||||||
|
|
||||||
Q: What is a PGA?
|
|
||||||
A: At the moment, cgminer supports 3 FPGAs: BitForce, Icarus and ModMiner.
|
|
||||||
They are Field-Programmable Gate Arrays that have been programmed to do Bitcoin
|
|
||||||
mining. Since the acronym needs to be only 3 characters, the "Field-" part has
|
|
||||||
been skipped.
|
|
||||||
|
|
||||||
Q: What is an ASIC?
|
|
||||||
A: Cgminer currently supports 2 ASICs: Avalon and BitForce SC devices. They
|
|
||||||
are Application Specify Integrated Circuit devices and provide the highest
|
|
||||||
performance per unit power due to being dedicated to only one purpose.
|
|
||||||
|
|
||||||
Q: Can I mine scrypt with FPGAs or ASICs?
|
|
||||||
A: No.
|
|
||||||
|
|
||||||
Q: What is stratum and how do I use it?
|
|
||||||
A: Stratum is a protocol designed for pooled mining in such a way as to
|
|
||||||
minimise the amount of network communications, yet scale to hardware of any
|
|
||||||
speed. With versions of cgminer 2.8.0+, if a pool has stratum support, cgminer
|
|
||||||
will automatically detect it and switch to the support as advertised if it can.
|
|
||||||
If you input the stratum port directly into your configuration, or use the
|
|
||||||
special prefix "stratum+tcp://" instead of "http://", cgminer will ONLY try to
|
|
||||||
use stratum protocol mining. The advantages of stratum to the miner are no
|
|
||||||
delays in getting more work for the miner, less rejects across block changes,
|
|
||||||
and far less network communications for the same amount of mining hashrate. If
|
|
||||||
you do NOT wish cgminer to automatically switch to stratum protocol even if it
|
|
||||||
is detected, add the --fix-protocol option.
|
|
||||||
|
|
||||||
Q: Why don't the statistics add up: Accepted, Rejected, Stale, Hardware Errors,
|
|
||||||
Diff1 Work, etc. when mining greater than 1 difficulty shares?
|
|
||||||
A: As an example, if you look at 'Difficulty Accepted' in the RPC API, the number
|
|
||||||
of difficulty shares accepted does not usually exactly equal the amount of work
|
|
||||||
done to find them. If you are mining at 8 difficulty, then you would expect on
|
|
||||||
average to find one 8 difficulty share, per 8 single difficulty shares found.
|
|
||||||
However, the number is actually random and converges over time, it is an average,
|
|
||||||
not an exact value, thus you may find more or less than the expected average.
|
|
||||||
|
|
||||||
Q: Why do the scrypt diffs not match with the current difficulty target?
|
|
||||||
A: The current scrypt block difficulty is expressed in terms of how many
|
|
||||||
multiples of the BTC difficulty it currently is (eg 28) whereas the shares of
|
|
||||||
"difficulty 1" are actually 65536 times smaller than the BTC ones. The diff
|
|
||||||
expressed by cgminer is as multiples of difficulty 1 shares.
|
|
||||||
|
|
||||||
Q: Can I make a donation in litecoin?
|
|
||||||
A: Yes, see SCRYPT-README for the address, but the author prefers bitcoin if
|
|
||||||
possible.
|
|
||||||
|
|
||||||
Q: My keyboard input momentarily pauses or repeats keys every so often on
|
|
||||||
windows while mining?
|
|
||||||
A: The USB implementation on windows can be very flaky on some hardware and
|
|
||||||
every time cgminer looks for new hardware to hotplug it it can cause these
|
|
||||||
sorts of problems. You can disable hotplug with:
|
|
||||||
--hotplug 0
|
|
||||||
|
|
||||||
Q: What should my Work Utility (WU) be?
|
|
||||||
A: Work utility is the product of hashrate * luck and only stabilises over a
|
|
||||||
very long period of time. Assuming all your work is valid work, bitcoin mining
|
|
||||||
should produce a work utility of approximately 1 per 71.6MH. This means at
|
|
||||||
5GH you should have a WU of 5000 / 71.6 or ~ 69. You cannot make your machine
|
|
||||||
do "better WU" than this - it is luck related. However you can make it much
|
|
||||||
worse if your machine produces a lot of hardware errors producing invalid work.
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
This code is provided entirely free of charge by the programmer in his spare
|
|
||||||
time so donations would be greatly appreciated. Please consider donating to the
|
|
||||||
address below.
|
|
||||||
|
|
||||||
Con Kolivas <kernel@kolivas.org>
|
|
||||||
15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ
|
|
389
README.md
Normal file
389
README.md
Normal file
@ -0,0 +1,389 @@
|
|||||||
|
cgminer
|
||||||
|
=======
|
||||||
|
|
||||||
|
WARNING: THIS CODE IS CURRENTLY UNUSABLE!
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
This is a multi-threaded multi-pool GPU miner with ATI GPU monitoring,
|
||||||
|
(over)clocking and fanspeed support for scrypt-based coins. It is based on
|
||||||
|
cgminer by Con Kolivas (ckolivas), which is in turn based on cpuminer by
|
||||||
|
Jeff Garzik.
|
||||||
|
|
||||||
|
The code is currently being refactored to remove SHA256d-based
|
||||||
|
cryptocurrency mining support. Upon completion of this task, the software
|
||||||
|
will be renamed to scryptminer.
|
||||||
|
|
||||||
|
GIT TREE: https://github.com/veox/cgminer
|
||||||
|
|
||||||
|
License: GPLv3. See COPYING for details.
|
||||||
|
|
||||||
|
SEE ALSO API-README, GPU-README AND SCRYPT-README FOR MORE INFORMATION ON EACH.
|
||||||
|
|
||||||
|
|
||||||
|
Building
|
||||||
|
--------
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
Mandatory:
|
||||||
|
curl dev library http://curl.haxx.se/libcurl/
|
||||||
|
(libcurl4-openssl-dev)
|
||||||
|
|
||||||
|
pkg-config http://www.freedesktop.org/wiki/Software/pkg-config
|
||||||
|
libtool http://www.gnu.org/software/libtool/
|
||||||
|
Optional:
|
||||||
|
curses dev library
|
||||||
|
(libncurses5-dev or libpdcurses on WIN32 for text user interface)
|
||||||
|
|
||||||
|
AMD APP SDK http://developer.amd.com/sdks/AMDAPPSDK
|
||||||
|
(This sdk is mandatory for GPU mining)
|
||||||
|
|
||||||
|
AMD ADL SDK http://developer.amd.com/sdks/ADLSDK
|
||||||
|
(This sdk is mandatory for ATI GPU monitoring & clocking)
|
||||||
|
|
||||||
|
If building from git:
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
|
||||||
|
|
||||||
|
CGMiner specific configuration options:
|
||||||
|
--disable-opencl Disable support for GPU mining with opencl
|
||||||
|
--disable-adl Override detection and disable building with adl
|
||||||
|
--enable-scrypt Compile support for scrypt litecoin mining (default
|
||||||
|
disabled)
|
||||||
|
--without-curses Compile support for curses TUI (default enabled)
|
||||||
|
|
||||||
|
Basic *nix build instructions:
|
||||||
|
To actually build:
|
||||||
|
|
||||||
|
./autogen.sh # only needed if building from git repo
|
||||||
|
CFLAGS="-O2 -Wall -march=native" ./configure <options>
|
||||||
|
|
||||||
|
No installation is necessary. You may run cgminer from the build
|
||||||
|
directory directly, but you may do make install if you wish to install
|
||||||
|
cgminer to a system location or location you specified.
|
||||||
|
|
||||||
|
Native WIN32 build instructions: see windows-build.txt
|
||||||
|
|
||||||
|
|
||||||
|
Basic Usage
|
||||||
|
-----------
|
||||||
|
|
||||||
|
After saving configuration from the menu, you do not need to give cgminer
|
||||||
|
any arguments and it will load your configuration.
|
||||||
|
|
||||||
|
Any configuration file may also contain a single
|
||||||
|
|
||||||
|
"include" : "filename"
|
||||||
|
|
||||||
|
to recursively include another configuration file.
|
||||||
|
|
||||||
|
Writing the configuration will save all settings from all files in the
|
||||||
|
output.
|
||||||
|
|
||||||
|
Single pool:
|
||||||
|
|
||||||
|
cgminer -o http://pool:port -u username -p password
|
||||||
|
|
||||||
|
Multiple pools:
|
||||||
|
|
||||||
|
cgminer -o http://pool1:port -u pool1username -p pool1password -o http://pool2:port -u pool2usernmae -p pool2password
|
||||||
|
|
||||||
|
Single pool with a standard http proxy, regular desktop:
|
||||||
|
|
||||||
|
cgminer -o "http:proxy:port|http://pool:port" -u username -p password
|
||||||
|
|
||||||
|
Single pool with a socks5 proxy, regular desktop:
|
||||||
|
|
||||||
|
cgminer -o "socks5:proxy:port|http://pool:port" -u username -p password
|
||||||
|
|
||||||
|
Single pool with stratum protocol support:
|
||||||
|
|
||||||
|
cgminer -o stratum+tcp://pool:port -u username -p password
|
||||||
|
|
||||||
|
The list of proxy types are:
|
||||||
|
http: standard http 1.1 proxy
|
||||||
|
http0: http 1.0 proxy
|
||||||
|
socks4: socks4 proxy
|
||||||
|
socks5: socks5 proxy
|
||||||
|
socks4a: socks4a proxy
|
||||||
|
socks5h: socks5 proxy using a hostname
|
||||||
|
|
||||||
|
If you compile cgminer with a version of CURL before 7.19.4 then some of
|
||||||
|
the above will not be available. All are available since CURL version
|
||||||
|
7.19.4.
|
||||||
|
|
||||||
|
If you specify the --socks-proxy option to cgminer, it will only be
|
||||||
|
applied to all pools that don't specify their own proxy setting like
|
||||||
|
above.
|
||||||
|
|
||||||
|
For more advanced usage , run `cgminer --help`.
|
||||||
|
|
||||||
|
See GPU-README for more information regarding GPU mining and
|
||||||
|
SCRYPT-README for more information regarding litecoin mining.
|
||||||
|
|
||||||
|
|
||||||
|
Runtime usage
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The following options are available while running with a single keypress:
|
||||||
|
|
||||||
|
[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
|
||||||
|
|
||||||
|
P gives you:
|
||||||
|
|
||||||
|
Current pool management strategy: Failover
|
||||||
|
[F]ailover only disabled
|
||||||
|
[A]dd pool [R]emove pool [D]isable pool [E]nable pool
|
||||||
|
[C]hange management strategy [S]witch pool [I]nformation
|
||||||
|
|
||||||
|
|
||||||
|
S gives you:
|
||||||
|
|
||||||
|
[Q]ueue: 1
|
||||||
|
[S]cantime: 60
|
||||||
|
[E]xpiry: 120
|
||||||
|
[W]rite config file
|
||||||
|
[C]gminer restart
|
||||||
|
|
||||||
|
|
||||||
|
D gives you:
|
||||||
|
|
||||||
|
[N]ormal [C]lear [S]ilent mode (disable all output)
|
||||||
|
[D]ebug:off
|
||||||
|
[P]er-device:off
|
||||||
|
[Q]uiet:off
|
||||||
|
[V]erbose:off
|
||||||
|
[R]PC debug:off
|
||||||
|
[W]orkTime details:off
|
||||||
|
co[M]pact: off
|
||||||
|
[L]og interval:5
|
||||||
|
|
||||||
|
|
||||||
|
Q quits the application.
|
||||||
|
|
||||||
|
|
||||||
|
G gives you something like:
|
||||||
|
|
||||||
|
GPU 0: [124.2 / 191.3 Mh/s] [A:77 R:33 HW:0 U:1.73/m WU 1.73/m]
|
||||||
|
Temp: 67.0 C
|
||||||
|
Fan Speed: 35% (2500 RPM)
|
||||||
|
Engine Clock: 960 MHz
|
||||||
|
Memory Clock: 480 Mhz
|
||||||
|
Vddc: 1.200 V
|
||||||
|
Activity: 93%
|
||||||
|
Powertune: 0%
|
||||||
|
Last initialised: [2011-09-06 12:03:56]
|
||||||
|
Thread 0: 62.4 Mh/s Enabled ALIVE
|
||||||
|
Thread 1: 60.2 Mh/s Enabled ALIVE
|
||||||
|
|
||||||
|
[E]nable [D]isable [R]estart GPU [C]hange settings
|
||||||
|
Or press any other key to continue
|
||||||
|
|
||||||
|
|
||||||
|
The running log shows output like this:
|
||||||
|
|
||||||
|
[2012-10-12 18:02:20] Accepted f0c05469 Diff 1/1 GPU 0 pool 1
|
||||||
|
[2012-10-12 18:02:22] Accepted 218ac982 Diff 7/1 GPU 1 pool 1
|
||||||
|
[2012-10-12 18:02:23] Accepted d8300795 Diff 1/1 GPU 3 pool 1
|
||||||
|
[2012-10-12 18:02:24] Accepted 122c1ff1 Diff 14/1 GPU 1 pool 1
|
||||||
|
|
||||||
|
The 8 byte hex value are the 2nd 8 bytes of the share being submitted to the
|
||||||
|
pool. The 2 diff values are the actual difficulty target that share reached
|
||||||
|
followed by the difficulty target the pool is currently asking for.
|
||||||
|
|
||||||
|
---
|
||||||
|
Also many issues and FAQs are covered in the forum thread
|
||||||
|
dedicated to this program,
|
||||||
|
http://forum.bitcoin.org/index.php?topic=28402.0
|
||||||
|
|
||||||
|
The output line shows the following:
|
||||||
|
(5s):1713.6 (avg):1707.8 Mh/s | A:729 R:8 HW:0 WU:22.53/m
|
||||||
|
|
||||||
|
Each column is as follows:
|
||||||
|
5s: A 5 second exponentially decaying average hash rate
|
||||||
|
avg: An all time average hash rate
|
||||||
|
A: The total difficulty of Accepted shares
|
||||||
|
R: The total difficulty of Rejected shares
|
||||||
|
HW: The number of HardWare errors
|
||||||
|
WU: The Work Utility defined as the number of diff1 shares work / minute
|
||||||
|
(accepted or rejected).
|
||||||
|
|
||||||
|
GPU 1: 73.5C 2551RPM | 427.3/443.0Mh/s | A:8 R:0 HW:0 WU:4.39/m
|
||||||
|
|
||||||
|
Each column is as follows:
|
||||||
|
Temperature (if supported)
|
||||||
|
Fanspeed (if supported)
|
||||||
|
A 5 second exponentially decaying average hash rate
|
||||||
|
An all time average hash rate
|
||||||
|
The total difficulty of accepted shares
|
||||||
|
The total difficulty of rejected shares
|
||||||
|
The number of hardware erorrs
|
||||||
|
The work utility defined as the number of diff1 shares work / minute
|
||||||
|
|
||||||
|
The cgminer status line shows:
|
||||||
|
ST: 1 SS: 0 NB: 1 LW: 8 GF: 1 RF: 1
|
||||||
|
|
||||||
|
ST is STaged work items (ready to use).
|
||||||
|
SS is Stale Shares discarded (detected and not submitted so don't count as rejects)
|
||||||
|
NB is New Blocks detected on the network
|
||||||
|
LW is Locally generated Work items
|
||||||
|
GF is Getwork Fail Occasions (server slow to provide work)
|
||||||
|
RF is Remote Fail occasions (server slow to accept work)
|
||||||
|
|
||||||
|
The block display shows:
|
||||||
|
Block: 0074c5e482e34a506d2a051a... Started: [17:17:22] Best share: 2.71K
|
||||||
|
|
||||||
|
This shows a short stretch of the current block, when the new block started,
|
||||||
|
and the all time best difficulty share you've found since starting cgminer
|
||||||
|
this time.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
MULTIPOOL
|
||||||
|
|
||||||
|
FAILOVER STRATEGIES WITH MULTIPOOL:
|
||||||
|
A number of different strategies for dealing with multipool setups are
|
||||||
|
available. Each has their advantages and disadvantages so multiple strategies
|
||||||
|
are available by user choice, as per the following list:
|
||||||
|
|
||||||
|
FAILOVER:
|
||||||
|
The default strategy is failover. This means that if you input a number of
|
||||||
|
pools, it will try to use them as a priority list, moving away from the 1st
|
||||||
|
to the 2nd, 2nd to 3rd and so on. If any of the earlier pools recover, it will
|
||||||
|
move back to the higher priority ones.
|
||||||
|
|
||||||
|
ROUND ROBIN:
|
||||||
|
This strategy only moves from one pool to the next when the current one falls
|
||||||
|
idle and makes no attempt to move otherwise.
|
||||||
|
|
||||||
|
ROTATE:
|
||||||
|
This strategy moves at user-defined intervals from one active pool to the next,
|
||||||
|
skipping pools that are idle.
|
||||||
|
|
||||||
|
LOAD BALANCE:
|
||||||
|
This strategy sends work to all the pools on a quota basis. By default, all
|
||||||
|
pools are allocated equal quotas unless specified with --quota. This
|
||||||
|
apportioning of work is based on work handed out, not shares returned so is
|
||||||
|
independent of difficulty targets or rejected shares. While a pool is disabled
|
||||||
|
or dead, its quota is dropped until it is re-enabled. Quotas are forward
|
||||||
|
looking, so if the quota is changed on the fly, it only affects future work.
|
||||||
|
If all pools are set to zero quota or all pools with quota are dead, it will
|
||||||
|
fall back to a failover mode. See quota below for more information.
|
||||||
|
|
||||||
|
The failover-only flag has special meaning in combination with load-balance
|
||||||
|
mode and it will distribute quota back to priority pool 0 from any pools that
|
||||||
|
are unable to provide work for any reason so as to maintain quota ratios
|
||||||
|
between the rest of the pools.
|
||||||
|
|
||||||
|
BALANCE:
|
||||||
|
This strategy monitors the amount of difficulty 1 shares solved for each pool
|
||||||
|
and uses it to try to end up doing the same amount of work for all pools.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
QUOTAS
|
||||||
|
|
||||||
|
The load-balance multipool strategy works off a quota based scheduler. The
|
||||||
|
quotas handed out by default are equal, but the user is allowed to specify any
|
||||||
|
arbitrary ratio of quotas. For example, if all the quota values add up to 100,
|
||||||
|
each quota value will be a percentage, but if 2 pools are specified and pool0
|
||||||
|
is given a quota of 1 and pool1 is given a quota of 9, pool0 will get 10% of
|
||||||
|
the work and pool1 will get 90%. Quotas can be changed on the fly by the API,
|
||||||
|
and do not act retrospectively. Setting a quota to zero will effectively
|
||||||
|
disable that pool unless all other pools are disabled or dead. In that
|
||||||
|
scenario, load-balance falls back to regular failover priority-based strategy.
|
||||||
|
While a pool is dead, it loses its quota and no attempt is made to catch up
|
||||||
|
when it comes back to life.
|
||||||
|
|
||||||
|
To specify quotas on the command line, pools should be specified with a
|
||||||
|
semicolon separated --quota(or -U) entry instead of --url. Pools specified with
|
||||||
|
--url are given a nominal quota value of 1 and entries can be mixed.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
--url poola:porta -u usernamea -p passa --quota "2;poolb:portb" -u usernameb -p passb
|
||||||
|
Will give poola 1/3 of the work and poolb 2/3 of the work.
|
||||||
|
|
||||||
|
Writing configuration files with quotas is likewise supported. To use the above
|
||||||
|
quotas in a configuration file they would be specified thus:
|
||||||
|
|
||||||
|
"pools" : [
|
||||||
|
{
|
||||||
|
"url" : "poola:porta",
|
||||||
|
"user" : "usernamea",
|
||||||
|
"pass" : "passa"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quota" : "2;poolb:portb",
|
||||||
|
"user" : "usernameb",
|
||||||
|
"pass" : "passb"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
LOGGING
|
||||||
|
|
||||||
|
cgminer will log to stderr if it detects stderr is being redirected to a file.
|
||||||
|
To enable logging simply add 2>logfile.txt to your command line and logfile.txt
|
||||||
|
will contain the logged output at the log level you specify (normal, verbose,
|
||||||
|
debug etc.)
|
||||||
|
|
||||||
|
In other words if you would normally use:
|
||||||
|
./cgminer -o xxx -u yyy -p zzz
|
||||||
|
if you use
|
||||||
|
./cgminer -o xxx -u yyy -p zzz 2>logfile.txt
|
||||||
|
it will log to a file called logfile.txt and otherwise work the same.
|
||||||
|
|
||||||
|
There is also the -m option on linux which will spawn a command of your choice
|
||||||
|
and pipe the output directly to that command.
|
||||||
|
|
||||||
|
The WorkTime details 'debug' option adds details on the end of each line
|
||||||
|
displayed for Accepted or Rejected work done. An example would be:
|
||||||
|
|
||||||
|
<-00000059.ed4834a3 M:X D:1.0 G:17:02:38:0.405 C:1.855 (2.995) W:3.440 (0.000) S:0.461 R:17:02:47
|
||||||
|
|
||||||
|
The first 2 hex codes are the previous block hash, the rest are reported in
|
||||||
|
seconds unless stated otherwise:
|
||||||
|
The previous hash is followed by the getwork mode used M:X where X is one of
|
||||||
|
P:Pool, T:Test Pool, L:LP or B:Benchmark,
|
||||||
|
then D:d.ddd is the difficulty required to get a share from the work,
|
||||||
|
then G:hh:mm:ss:n.nnn, which is when the getwork or LP was sent to the pool and
|
||||||
|
the n.nnn is how long it took to reply,
|
||||||
|
followed by 'O' on it's own if it is an original getwork, or 'C:n.nnn' if it was
|
||||||
|
a clone with n.nnn stating how long after the work was recieved that it was cloned,
|
||||||
|
(m.mmm) is how long from when the original work was received until work started,
|
||||||
|
W:n.nnn is how long the work took to process until it was ready to submit,
|
||||||
|
(m.mmm) is how long from ready to submit to actually doing the submit, this is
|
||||||
|
usually 0.000 unless there was a problem with submitting the work,
|
||||||
|
S:n.nnn is how long it took to submit the completed work and await the reply,
|
||||||
|
R:hh:mm:ss is the actual time the work submit reply was received
|
||||||
|
|
||||||
|
If you start cgminer with the --sharelog option, you can get detailed
|
||||||
|
information for each share found. The argument to the option may be "-" for
|
||||||
|
standard output (not advisable with the ncurses UI), any valid positive number
|
||||||
|
for that file descriptor, or a filename.
|
||||||
|
|
||||||
|
To log share data to a file named "share.log", you can use either:
|
||||||
|
./cgminer --sharelog 50 -o xxx -u yyy -p zzz 50>share.log
|
||||||
|
./cgminer --sharelog share.log -o xxx -u yyy -p zzz
|
||||||
|
|
||||||
|
For every share found, data will be logged in a CSV (Comma Separated Value)
|
||||||
|
format:
|
||||||
|
timestamp,disposition,target,pool,dev,thr,sharehash,sharedata
|
||||||
|
For example (this is wrapped, but it's all on one line for real):
|
||||||
|
1335313090,reject,
|
||||||
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000,
|
||||||
|
http://localhost:8337,GPU0,0,
|
||||||
|
6f983c918f3299b58febf95ec4d0c7094ed634bc13754553ec34fc3800000000,
|
||||||
|
00000001a0980aff4ce4a96d53f4b89a2d5f0e765c978640fe24372a000001c5
|
||||||
|
000000004a4366808f81d44f26df3d69d7dc4b3473385930462d9ab707b50498
|
||||||
|
f681634a4f1f63d01a0cd43fb338000000000080000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000080020000
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
RPC API
|
||||||
|
|
||||||
|
For RPC API details see the API-README file
|
Loading…
x
Reference in New Issue
Block a user