New MAJOR version - 4.0.0, 21st February 2014
This major version update is marking the conclusion of the move to pure ASIC based mining. It has numerous new drivers and features, but despite that, the major inner workings are only trivially changed so it should be a safe upgrade. The most notable new features are a larger status window, addition of a USB management menu, the cointerra driver, bitmine A1 driver (supported by zefir) and the Avalon2U driver (still in development). While the fpga code is still present in cgminer, the binaries will no longer include them, and modminer users will have to add the bitstream themselves to the bitstreams/ directory to minimise the size of the releases for everyone else. Human readable changelog:
- Cointerra driver
- Bitmine A1 driver
- Avalon2U driver
- Wider status window now looks like this:
cgminer version 4.0.0 - Started: [2014-02-21 12:58:03]
(5s):3.037T (avg):2.569Th/s | A:809704 R:1600 HW:624 WU:35890.5/m
ST: 1 SS: 0 NB: 6 LW: 875947 GF: 0 RF: 0
Connected to au.ozco.in diff 1.6K with stratum as user ckolivas.0
Block: 1522ef37... Diff:3.13G Started: [13:14:10] Best share: 1.08M
[U]SB device management [P]ool management [S]ettings [D]isplay options [Q]uit
000: NF1 0: | 2.426G/2.397Gh/s | A: 4801 R: 0 HW: 0 WU: 33.9/m
001: NF1 1: | 1.846G/1.960Gh/s | A: 1 R: 0 HW: 0 WU: 27.4/m
002: BXF 0: 44.2C | 5.123G/5.119Gh/s | A: 1602 R: 0 HW: 0 WU: 71.7/m
004: HFS 1: 625MHz 86C 18% 0.79V | 1.330T/1.322Th/s | A:433700 R:1600 HW:110 WU:18492.2/m
005: ANU 0: | 2.224G/2.231Gh/s | A: 0 R: 0 HW:371 WU: 15.2/m
007: BF1 0: | 2.353G/2.337Gh/s | A: 4800 R: 0 HW: 63 WU: 33.1/m
008: HFS 3: 609MHz 85C 19% 0.79V | 1.571T/1.273Th/s | A:264000 R: 0 HW: 52 WU:17803.3/m
The original curses display was never designed with many devices with vast amount of information displayable, and that is still the case now, but the ASIC era has made it that we do need more than previously, but I am trying to keep the display as concise as possible with the most meaningful information.
- USB menu looks like this:
9 USB devices, 7 enabled, 0 disabled, 2 zombie
[S]ummary of device information
[U]nplug to allow hotplug restart
[R]eset device USB
[L]ist all known devices
[B]lacklist current device from current instance of cgminer
[W]hitelist previously blacklisted device
[H]otplug interval (0 to disable)
These should be self explanatory, except perhaps the black and whitelist features. Normally cgminer will mine on any devices it can detect and has permission to use unless you explicitly restrict it with the --usb command line argument, and it will NOT mine on any devices another cgminer instance is currently using. The blacklist feature allows you to disable a device on the fly that it has tried to mine on, allowing another instance of cgminer to use it. Whitelisting undoes this change.
- ANU devices aka AntminerU1 usb sticks will now take any arbitrary frequency with --anu-freq and cgminer will try to find the nearest frequency it can set it to, instead of being restricted to 25MHz increments.
- Hashfast device failures will be detected sooner
- Hashfast fan speeds by default will go down to 5%
- The menu now shows hashfast clock speed as detected by the device (which may be different to the requested speed) and fanspeed%
- Hashfast board temperature is now taken into consideration when looking for the hottest component and displaying temperature and adjusting fanspeed
- Hashfast clock speeds per die in the API should more accurately represent what speed they really are.
- Hashfast restarts should be a little more reliable
- Klondike, avalon, bab, drillbit will display more info on screen
- Pools that silently drop stratum shares submitted will not induce a memory leak in cgminer
- If no connection is present at startup, cgminer will be able to connect to a dead pool later when it comes alive
- ./autogen.sh from git will not error if given no arguments but will instead not try to configure the build
- A warning will come up if someone selects system libusb, advising against it (given how few versions of libusb actually work well).
- Fix a couple of potential hangs
- Temperature for devices that support it will now show up in the api devs command
- Icarus and bitfury devices that stop producing shares will now be sent a reset after a minute of no activity, and if they do not respond within another minute will be dropped, allowing cgminer to attempt to re-hotplug them. This has been proven effective at bringing back U1 miners that stop hashing.
- Fix unresponsive bitfury devices from ending up OFF that would not disappear and/or restart
- Bab driver updates disabling cores that stop working and reduce the cpu usage substantially
- miner.php updates
- Allow benchmarking from a --benchfile
- Other minor bugfixes and trivial cosmetic differencesFull changelog:
- Check for error from setfloatval
- Halfdelay cannot be larger than 255.
- Allow any arbitrary frequency to be specified for ANU devices and try to find
the nearest frequency when initialising it, reporting if the frequency is not
exactly as requested.
- Only show system libusb warning when appropriate during configure.
- Merge branch 'avalon2' of https://github.com/xiangfu/cgminer
- Hfa cooling remains satisfactory down to a minimum fanspeed of 5%
- Give a nodev error if we have already set nodev in hfa clear readbuf to avoid
further usb comms attempts.
- Fix missing include
- Move bitmine options to alphabetic positioning.
- bab - missed a few 'DEAD's in last commit
- bab - use 'bad' instead of 'dead' as per the screen B:
- bab - roll work if possible to reduce CPU
- Update the per die hash clock data on a running reset on hfa devices.
- Set the per die clock on hfa to the known starting base clock instead of our
requested clock rate.
- Hfa device failure can be detected within 15 seconds so we should try
restarting it sooner to avoid tripping the device's own watchdog.
- Check return result of hfa clear readbuf to minimise error messages on device
- Put MHz into cta statline description.
- Send a work restart with every shutdown message to hfa devices to clear any
work that might be stale on the next restart.
- Store the hfa hash_clock rate and display it in the statline.
- Store the maximum board temperature for hfa devices and take that into
consideration when calculating the highest temperature as well as the dies.
- A1: CoinCraft-Desk driver variant
- Initial import of Bitmine.ch A1 SPI driver
- klondike ensure stats type matches
- avalon, bab, drillbit, klondike use more screen space rather than truncating
- Add hashfast fanspeed% to statline display.
- Move driver statline padding to cgminer.c, expanding width of maximum
displayable statistics and window width to add more info.
- Prune old stratum shares that we've seen no response for over 2 minutes to
avoid memory leaks for pools that don't respond about some shares.
- Add warning if system libusb is being added.
- Only run ./configure with autogen.sh if extra parameters are passed to it.
- Updated cointerra features.
- Add le16toh defines for platforms that may be missing it.
- Remove modminer bitstreams from distribution and replace with a README saying
what file needs to be added if modminer build is still desired.
- Use the simplelog function from usb_list()
- Add a simplelog function that does not log date and time.
- Use a unique usb_list function displaying only pertinent information when
listing usb devices from the menu.
- Abstract out the _in_use function to take different linked lists.
- Break out of linked list loop in remove_in_use in case we've gone over the
- Check for hfa invalid hash clockrate after other error messages.
- Detect non-responsive icarus devices and attempt a usb reset before killing
them after 2 minutes of no hashes.
- Detect non-responsive bitfury devices and try a usb reset on them before
killing their instances off after 2 minutes of no activity.
- Allow hotplug interval to be changed from the USB menu.
- Prevent recursive loop in __is_in_use linked list walking.
- Add the ability to whitelist previously blacklisted usb devices from the menu.
- Use a bool in struct cgpu to know when a usb device has been blacklisted,
avoiding blacklisting it more than once.
- bab - ensure disabled chips are counted in the screen dead chip counter
- bab - only disable the chip once ...
- bab - short work list skip disabled chips
- api.c avoid incorrect gcc warning
- cgminer -h crash fix
- Add blacklisting as an option to the USB menu.
- Add a mechanism to blacklist a usb device from its cgpu.
- Add an option to the USB menu to list all known devices.
- Add an option to send a USB reset via the USB menu.
- Add a usb_reset by cgpu function to usbutils.
- Add warning for attempting to unplug a usb device that is already removed.
- Add USB Unplug option to USB management device management menu.
- Add enable and disable USB device functions to the menu.
- Add a USB menu item, initially with just statistics per device, adding
device number to the device status window display.
- Reuse the cgpu temp entry for avalon and bitfury devices, changing avalon to a
- Store the cointerra maximum temperature in the cgpu struct as an exponentially
changing value based on the maximum temperature.
- Reuse the cgpu->temp entry for max temperature in hfa driver.
- bab - disable chips that return only bad results
- Add driver for cointerra devices.
- Add Avalon2 (2U size machine) support
- miner.php - define a default rigport (that can be changed) and don't require a
port number in the rigs array
- miner.php allow links for rig buttons in tables and allow using the 4th IP
octet if no rig name - default disabled for both
- format fix and bad variable usage fix for --benchfile
- Allow running cgminer in benchmark mode with a work file --benchfile
- ANU frequency is in MHz, not hex.
- Remove bitfury devices from the usb list on shutdown in case they have stopped
responding but have not had a fatal usb error.