Browse Source

Update documentation.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
ca9319184f
  1. 2
      FPGA-README
  2. 13
      GPU-README
  3. 242
      NEWS
  4. 30
      README

2
FPGA-README

@ -19,7 +19,7 @@ The best solution for this is to use a tool called Zadig to set the driver: @@ -19,7 +19,7 @@ The best solution for this is to use a tool called Zadig to set the driver:
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 Zaidg, you may need to run it as administrator and if your device is
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

13
GPU-README

@ -437,7 +437,10 @@ Work Utility (WU) value will confirm you are not generating garbage. You @@ -437,7 +437,10 @@ Work Utility (WU) value will confirm you are not generating garbage. You
should be getting about .9WU per kHash. If not, then try decreasing your
intensity, do not increase the number of gpu-threads, and consider adding
system RAM to match your GPU ram. You may also be using a bad combination
of driver and/or SDK.
of driver and/or SDK. If you are getting a lot more HW errors with the
current version of cgminer but were not on an older version, chances are that
the older version simply wasn't reporting them so going back to and older
version is not a real solution.
Q: Scrypt fails to initialise the kernel every time?
A: Your parameters are too high. Don't add GPU threads, don't set intensity
@ -462,6 +465,11 @@ Q: I change my GPU engine/memory/voltage and cgminer reports back no change? @@ -462,6 +465,11 @@ Q: I change my GPU engine/memory/voltage and cgminer reports back no change?
A: Cgminer asks the GPU using the ATI Display Library to change settings, but
the driver and hardware are free to do what it wants with that query, including
ignoring it. Some GPUs are locked with one or more of those properties as well.
The most common of these is that many GPUs only allow a fixed difference
between the engine clock speed and the memory clock speed (such as the memory
being no lower than the engine - 150). Other 3rd party tools have unofficial
data on these devices on windows and can get the memory clock speed down
further but cgminer does not have access to these means.
Q: I have multiple GPUs and although many devices show up, it appears to be
working only on one GPU splitting it up.
@ -483,6 +491,9 @@ A: No. The software is unchanged regardless of which driver/SDK/ADL_SDK version @@ -483,6 +491,9 @@ A: No. The software is unchanged regardless of which driver/SDK/ADL_SDK version
you are running. However if you change SDKs you should delete any generated
.bin files for them to be recreated with the new SDK.
Q: I do not want cgminer to modify my engine/clock/fanspeed?
A: Cgminer only modifies values if you tell it to via some parameters.
Otherwise it will just monitor the values.
---

242
NEWS

@ -1,3 +1,245 @@ @@ -1,3 +1,245 @@
Version 3.2.0
- Add FAQ about windows USB keyboards and hotplug interactions.
- Fix mingw build warnings in icarus driver.
- Make usb_ftdi_cts use the _usb_transfer_read function.
- Update ASIC-README with avalon info regarding default behaviour.
- Break out of idling loop in avalon_idle if the buffer is full.
- Provide some defaults for avalon if none are specified and do not try to claim
the device if it fails to reset with them and no options are specified.
- usbutils automatically track IO errors
- usbutils allow a short wait for resources to be released
- correct semaphore timeout comment
- Set the fanspeed to the nominal chosen for GPUs.
- Inverted sem_init logic.
- Document avalon options in ASIC-README
- Do avalon driver detection last as it will try to claim any similar device and
they are not reliably detected.
- Clamp initial GPU fanspeed to within user specified range.
- Use a counting semaphore to signal the usb resource thread that it has work to
do.
- Avalon fan factor is already multiplied into the info values.
- Get rid of zeros which corrupt display.
- Logic fail on minimum fanspeed reporting.
- Provide a workaround for fan0 sensor not being used on avalon and pad fan RPM
with zeros.
- Add ambient temp and lowest fan RPM information to avalon statline.
- Display max temperature and fanspeed data for avalon.
- Set devices to disabled after they exit the hashing loops to prevent the
watchdog thread from trying to act on them.
- Add avalon driver to hotplug.
- Shut down the avalon mining thread if the device disappears.
- Check for no usb device in usb_ftdi_cts
- Check for valid usbdev in _usb_read in case the device has been unplugged.
- Scanhash functions perform driver shutdown so don't repeat it.
- Change the opencl shutdown sequence.
- Send the shutdown message to threads and do the thread shutdown functions
before more forcefully sending pthread_cancel to threads.
- Use the cgpu_info shutdown to determine when to stop the avalon read and write
threads.
- Use semaphores to signal a reset to pause the read thread while the write
thread does the actual reset, making all writes come from the same place.
- Remove now unneeded fgpautils.h include from avalon.
- usb_transfer_read should also not play with the endianness.
- Use the USB wrappers for avalon, telling usbutils that we want the raw data.
- Use separate ep for avalon tasks vs avalon reset and do not loop in write
indefinitely.
- Remove unneeded function and checks in avalon write code.
- CMR handle baud options
- work_restart is reset within the queued hash work loop.
- Fix avalon shutdown sequence.
- Execute driver shutdown sequence during kill_work.
- Use nusleep in avalon_get_results in place of nmsleep.
- Provide an nusleep equivalent function to nmsleep.
- usb/ica add more (incomplete) CMR settings
- Give a buffer of perceived results in avalon during idle periods to allow for
results once it becomes active again.
- libusb_control_transfer are meant to be endian specific, but host endianness
so no conversion is needed.
- Reuse old MTX Handle
- usbutils check all memory allocation
- usb separate thread for resource locking and modified windows locking code
- Icarus report data direction with comms errors
- Set the read and write threads for avalon to not cancel within libusb
functions and wait for the threads to pthread_join on shutdown.
- Offset needs to be incremented after avalon reads.
- Make the avalon_read function parse the ftdi responses appopriately.
- Use the avalon read timeout to completion if no data has been read.
- wait_avalon_ready should only be used before writes.
- Ask for the correct amount to read in avalon get results.
- Spawn the avalon read thread first with info->reset set to discard any data
till work is adequately queued.
- Use direct usb read commands to avoid ftdi data being automatically cut off in
avalon reads.
- Do a simple usb_read_once for the avalon result from a reset command.
- Make sure avalon is ready to receive more usb commands before sending them.
- Implement avalon_ready and avalon_wait_ready functions for when usb is ready
to receive commands.
- avalon_read should not loop but just return whatever it has succeeded in
reading.
- Set avalon_info to device data void struct.
- Specify avalon in avalon_reset.
- First pass rewriting serialdev into direct usb dev for avalon driver.
- Define a cts equivalent for direct usb and use it for avalon driver full.
- Compile usbutils into avalon driver.
- Check results come in at least at 2/3 the rate they should be on avalon and if
not, reset it.
- Give a warning but don't reset if the avalon buffer is full early.
- Discard any reads obtained from the avalon get results thread during a reset.
- Differentiate initial reset in avalon from subsequent ones.
- Perform a mandatory reset if the avalon buffer signals it's full before it has
queued its normal quota of work.
- Wait till buffer is cleared after sending idle tasks to avalon before
returning from avalon_idle.
- Lock qlock mutex during reset from read thread in avalon to prevent more work
being sent till the reset is over.
- Reset avalon if we continue to be unable to send all the work items.
- Add avalon reset response to debugging output.
- Do a wait_avalon_ready before sending a reset code.
- Iterate over spare bytes in the avalon result returned from a reset request
trying to find the beginning of the reset.
- Idle avalon after reset.
- Check for nothing but consecutive bad results on avalon and reset the FPGA if
it happens.
- Make submit_nonce return a bool for whether it's a valid share or not.
- Unset the work restart flag sooner in avalon_flush_work to avoid re-entering
the flush work function and just reset the queued counter instead of rotating
the array to avoid runs of no valid work.
- Implement an avalon_flush_work function for work restarts.
- Shut down avalon read and write threads and idle the miners on closing it.
- Tighter control over work submissions in avalon allows us to use a smaller
array.
- Rotate avalon array to reset the queued count before releasing the lock so
work will always be available on next pass.
- Move avalon read thread start till after conditional wait, store idle status
in avalon_info and use it to determine whether an error is appropriate or not.
- Wait till the avalon_send_tasks thread has filled the avalon with idle work
before starting the avalon_get_results thread.
- Use AVA_GETS_OK macro in avalon_read.
- Do all writes on avalon with a select() timeout to prevent indefinite blocking
and loop if less than desired is written.
- Check explicitly that ava_buffer_full equals the macro.
- Send initial reset as an avalon task to remove avalon_write function.
- avalon_clear_readbuf is no longer required.
- Check for 2 stray bytes on avalon reset.
- Create a separate thread for handling all work and idle submission to the
avalon which messages the scanhash function it has completed to update
statistics.
- usbutils ensure it compiles without stats
- usbutils include transfer mode in usbstats
- Give the avalon get results thread name the device number as well.
- Make sure we're not adjusting temps on every successful work retrieval on
avalon.
- Count missing work items from behind a successful work read in avalon as well.
- Change message for work not found in avalon parser.
- usbutils handle bulk_transfer partial writes
- Simplify debugging and only discard from avalon read buffer if at least one
full result has been discarded.
- Only display discarded bytes in avalon if they're not used as nonces.
- Only loop once through avalon_parse_results, but do so after timeouts as well.
- Only debug and move ram if spare bytes exist in avalon buffer.
- Remove off by one error.
- Inverted logic.
- Add more debugging to avalon reads.
- Convert unsigned size_ts to ints for parsing avalon messages.
- Cope with not finding nonces in avalon parsing gracefully by not overflowing
buffers.
- Adjust avalon temp values on one lot of valid nonces from the parser.
- Created a threaded message parser for avalon reads.
- Avalon_wait_write is not effective during resets so do it after going idle.
- Send only a single byte reset.
- Repeat going idle after avalon reset, and wait for write ready before sending
each reset request instead of some arbitrary sleep time.
- Timeouts on avalon_read and avalon_write should be 100ms.
- Don't close avalon after detecting it until we're cleaning up, instead using
reset for comms failures.
- Check for avalon_wait_write before sending reset command.
- Sleep in avalon_write_ready.
- Make avalon_wait_write a bool function and check its return value.
- Show how many idle tasks are sent to avalon if it aborts on buffer full.
- Reset avalon->device_fd after it is closed.
- Create an avalon_wait_write function that is used before sending avalon idle
command.
- Avoid repeating avalon_idle in do_avalon_close and extra sleep.
- Pass fd to avalon_idle.
- Do avalon_reset after info structure is set up.
- Rework avalon reset sequence to include idling of chips and waiting for them
to go idle followed by 2nd reset and then checking result.
- Do a non-blocking read of anything in the avalon buffer after opening the
device.
- Assign the avalon info data to the device_data in cgpu_info.
- thread shutdown is different on windows
- usbutils make all windows timeouts 999ms
- usb add another Cairnsmore1 USB chip
- icarus do the full detect test twice if required
- CMR usb config guess
- usb add transfer_read and commented out in icarus
- usbutils allow unrounded control transfers
- icarus ICA initialisation
- icarus report err on read failure
- icarus correct device_id and use device_data for icarus_info
- miner.h remove unused device_file and add device_data
- miner.h icarus no long uses fd
- icarus AMU config transfers
- Create a logwin_update function which mandatorily updates the logwin and use
it when input is expected to prevent display refresh delays.
- usbutils force an unknown IDENT for zero
- icarus set default options/timing based on device
- Must unlock curses as well in logwin_update.
- Create a logwin_update function which mandatorily updates the logwin and use
it when input is expected to prevent display refresh delays.
- icarus report usb write error information
- Add name to icarus copyright notice.
- Check for *pth dereference on pthread_join
- usbutils name latency correctly
- Check for restart before buffering more reads in Icarus.
- Icarus should timeout if it's greater than the timeout duration even if it's
receiving data.
- We should check for amount buffered in icarus get_nonce against amount already
received.
- Make mining threads report out during work submission.
- submit_work_async is no longer used directly by driver code.
- Fix first read timeout on icarus get nonce.
- Retry icarus_initialise if the first read attempt fails.
- Properly pthread_join miner threads on shutdown.
- Properly pthread_join miner threads on shutdown.
- Use a persistent single separate thread for stratum share submission that uses
workqueues since all stratum sends are serialised.
- All stratum calls to recv_line are serialised from the one place so there is
no need to use locking around recv().
- Only allow the mining thread to be cancelled when it is not within driver
code, making for cleaner shutdown and allowing us to pthread_join the miner
threads on kill_work().
- Only allow the mining thread to be cancelled when it is not within driver
code, making for cleaner shutdown and allowing us to pthread_join the miner
threads on kill_work().
- Set pool->probed to true after an attempt to resolve the url via stratum code.
- icarus test nodev everywhere
- usbutils/icarus separate FTDI transfer values and more debug
- add icarus to hotplug
- usbutils add rest of icarus
- simple serial-USB python test script
- icarus->USB v0.1 incomplete - missing initialise()
- README spelling
- Update documentation for icarus switch to USB
- Add USB rules for supported USB devices
- switch icarus configuration to usb
- usbutils new command for icarus
- usb add a numeric sub-indentity for each name
- usbutils - make FTDI handling automatic
- fix duplicate name
- usbutils set Black Arrow Lancelot's as BAL and match the lot->llt name
- usbutils identify Icarus devices
- libusb_control_transfer 16 bit words are endian specific.
- usb_applog separate amt display
- Show pool difficulty more verbosely if it changes via stratum.
- Attribute whatever stats we can get on untracked stratum shares based on
current pool diff.
- Provide a --lowmem option which does not cache shares on failed submission to
prevent low memory hardware (eg Avalon) from crashing.
- Update util.c
Version 3.1.1 - May 11th, 2013
- Use a discrete device target for scrypt that dynamically changes to ensure we

30
README

@ -27,8 +27,8 @@ irc://irc.freenode.net/cgminer @@ -27,8 +27,8 @@ irc://irc.freenode.net/cgminer
License: GPLv3. See COPYING for details.
SEE ALSO ASIC-README, FGPA-README, GPU-README AND SCRYPT-README FOR MORE
INFORMATION ON EACH.
SEE ALSO API-README, ASIC-README, FGPA-README, GPU-README AND SCRYPT-README FOR
MORE INFORMATION ON EACH.
---
@ -117,7 +117,6 @@ CGMiner specific configuration options: @@ -117,7 +117,6 @@ CGMiner specific configuration options:
--enable-avalon Compile support for Avalon (default disabled)
--enable-scrypt Compile support for scrypt litecoin mining (default disabled)
--without-curses Compile support for curses TUI (default enabled)
--without-libudev Autodetect FPGAs using libudev (default enabled)
Basic *nix build instructions:
To actually build:
@ -234,10 +233,17 @@ See SCRYPT-README for more information regarding litecoin mining. @@ -234,10 +233,17 @@ See SCRYPT-README for more information regarding litecoin mining.
ASIC and FPGA mining boards (BFL ASIC, BitForce, Icarus, ModMiner, Ztex)
only options:
Cgminer will automatically find all of your BFL ASIC, BitForce FPGAs,
ModMiner FPGAs, Icarus bitstream FPGAs or Ztex FPGAs
--avalon-options (See ASIC-README)
--bfl-range Use nonce range on bitforce devices if supported
--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)
The --usb option can restrict how many BFL ASIC, BitForce FPGAs,
Cgminer will automatically find all of your Avalon ASIC, BFL ASIC, BitForce
FPGAs, Icarus bitstream FPGAs, ModMiner FPGAs, or Ztex FPGAs
The --usb option can restrict how many Avalon, BFL ASIC, BitForce FPGAs,
ModMiner FPGAs or Icarus bitstream FPGAs it finds:
--usb 1:2,1:3,1:4,1:*
@ -288,7 +294,8 @@ If one of the 10 devices stops working, hotplug - if enabled, as is default @@ -288,7 +294,8 @@ If one of the 10 devices stops working, hotplug - if enabled, as is default
--usb :0 will disable all USB I/O other than to initialise libusb
For other FPGA details see the FPGA-README
For more ASIC details see the ASIC-README
For more FPGA details see the FPGA-README
---
@ -518,6 +525,10 @@ A: No, cgminer keeps a database of the block it's working on to ensure it does @@ -518,6 +525,10 @@ 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
@ -679,6 +690,11 @@ every time cgminer looks for new hardware to hotplug it it can cause these @@ -679,6 +690,11 @@ 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: Can I use a proxy?
A: Proxies only work with the getwork and GBT protocols using the --proxy
command. If you wish to use a proxy with stratum, people have supported
success with various 3rd party tools like proxifier.
---
This code is provided entirely free of charge by the programmer in his spare

Loading…
Cancel
Save