diff --git a/ASIC-README b/ASIC-README index 8796a792..6341617d 100644 --- a/ASIC-README +++ b/ASIC-README @@ -44,17 +44,12 @@ 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 either copy the file +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/ -Or you can manually create a file/add to a rules.d file with following rules -(most users won't want to do this manually): -ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev" -ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0003", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev" - After this you can either manually restart udev and re-login, or more easily just reboot. diff --git a/FPGA-README b/FPGA-README index 4dfed2ab..98730b08 100644 --- a/FPGA-README +++ b/FPGA-README @@ -2,16 +2,14 @@ This README contains extended details about FPGA mining with cgminer -For ModMinerQuad (MMQ) and BitForce (BFL) ------------------------------------------ +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 Windows USB driver for the device -or - kernel detach failed :( or claim interface %d failed, err %d @@ -32,19 +30,16 @@ with cgminer (not the libusbx version) 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: -Create /etc/udev/rules.d/01-cgminer.rules -With: - ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev" - ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0003", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev" + sudo cp 01-cgminer.rules /etc/udev/rules.d/ And also: sudo usermod -G plugdev -a `whoami` -Then reboot ... - 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 @@ -53,8 +48,7 @@ problems: --usb-dump 0 -It will only help if you have a working MMQ or BFL device attached to the -computer +It will only help if you have a working FPGA device listed above ModMinerQuad (MMQ) @@ -190,8 +184,8 @@ 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) ------------- +Icarus (ICA, BLT, LLT, AMU, CMR) +-------------------------------- There are two hidden options in cgminer when Icarus support is compiled in: @@ -245,8 +239,8 @@ 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 1/10ths of a second, not the -calculated value, which is 112 for 2.6316ns +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 @@ -258,6 +252,9 @@ 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 diff --git a/README b/README index bda7fd86..84ca072e 100644 --- a/README +++ b/README @@ -111,7 +111,7 @@ CGMiner specific configuration options: --disable-adl Override detection and disable building with adl --enable-bflsc Compile support for BFL ASICs (default disabled) --enable-bitforce Compile support for BitForce FPGAs(default disabled) - --enable-icarus Compile support for Icarus Board(default disabled) + --enable-icarus Compile support for Icarus bitstream FPGAs(default disabled) --enable-modminer Compile support for ModMiner FPGAs(default disabled) --enable-ztex Compile support for Ztex Board(default disabled) --enable-avalon Compile support for Avalon (default disabled) @@ -235,13 +235,14 @@ 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 or Ztex FPGAs -The --usb option can restrict how many BFL ASIC, BitForce FPGAs or -ModMiner FPGAs it finds: +ModMiner FPGAs, Icarus bitstream FPGAs or Ztex FPGAs + +The --usb option can restrict how many BFL ASIC, BitForce FPGAs, +ModMiner FPGAs or Icarus bitstream FPGAs it finds: --usb 1:2,1:3,1:4,1:* or - --usb BAS:1,BFL:1,MMQ:0 + --usb BAS:1,BFL:1,MMQ:0,ICA:0 or --usb :10 @@ -260,15 +261,16 @@ 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 '--usb-dump 0' option +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 + --usb BAS:1,BFL:1,MMQ:0,ICA:0 allows you to specify how many devices to choose based on each device -driver cgminer has - there are currently 3 USB drivers: BAS, BFL & MMQ +driver cgminer has - there are currently 4 USB drivers: BAS, BFL, MMQ & ICA 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 @@ -283,28 +285,8 @@ 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 initialse libusb ---scan-serial|-S Serial port to probe for Icarus mining device - -This option is only for Icarus bitstream FPGAs - -By default, cgminer will scan for autodetected Icarus unless at least one --S is specified for that driver. If you specify -S and still want cgminer -to scan, you must also use "-S auto". If you want to prevent cgminer from -scanning without specifying a device, you can use "-S noauto". Note that -presently, autodetection only works on Linux, and might only detect one -device depending on the version of udev being used. - -On linux is usually of the format /dev/ttyUSBn -On windows is usually of the format \\.\COMn -(where n = the correct device number for the Icarus device) - -The official supplied binaries are compiled with support for all FPGAs. -To force the code to only attempt detection with a specific driver, -prepend the argument with the driver name followed by a colon. -For example, "icarus:/dev/ttyUSB0" or using the short name: "ica:/dev/ttyUSB0" -This option not longer matters since Icarus is the only serial-USB -device that uses it For other FPGA details see the FPGA-README @@ -657,27 +639,6 @@ 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: How do I get my Icarus/Lancelot/Cairnsmore device to auto-recognise? -A: On linux, if the /dev/ttyUSB* devices don't automatically appear, the only -thing that needs to be done is to load the driver for them: -Icarus: sudo modprobe pl2303 vendor=0x067b product=0x230 -Lancelot: sudo modprobe ftdi_sio vendor=0x0403 product=0x6001 -Cairnsmore: sudo modprobe ftdi_sio product=0x8350 vendor=0x0403 -On windows you must install the pl2303 or ftdi driver required for the device -pl2303: http://prolificusa.com/pl-2303hx-drivers/ -ftdi: http://www.ftdichip.com/Drivers/VCP.htm - -Q: On linux I can see the /dev/ttyUSB* devices for my Icarus FPGAs, but -cgminer can't mine on them -A: Make sure you have the required priviledges to access the /dev/ttyUSB* devices: - sudo ls -las /dev/ttyUSB* -will give output like: - 0 crw-rw---- 1 root dialout 188, 0 2012-09-11 13:49 /dev/ttyUSB0 -This means your account must have the group 'dialout' or root priviledges -To permanently give your account the 'dialout' group: - sudo usermod -G dialout -a `whoami` -Then logout and back in again - Q: Can I mine scrypt with FPGAs or ASICs? A: No. diff --git a/cgminer.c b/cgminer.c index 974496cf..086b0d94 100644 --- a/cgminer.c +++ b/cgminer.c @@ -1089,7 +1089,7 @@ static struct opt_table opt_config_table[] = { #ifdef USE_FPGA_SERIAL OPT_WITH_ARG("--scan-serial|-S", add_serial, NULL, NULL, - "Serial port to probe for Icarus FPGA Mining device"), + "Serial port to probe for Avalon Mining device"), #endif OPT_WITH_ARG("--scan-time|-s", set_int_0_to_9999, opt_show_intval, &opt_scantime, diff --git a/driver-ztex.c b/driver-ztex.c index 2ab4a4dd..09387267 100644 --- a/driver-ztex.c +++ b/driver-ztex.c @@ -7,7 +7,7 @@ * Copyright (C) 2009-2011 ZTEX GmbH. * http://www.ztex.de * - * This work is based upon the icarus.c worker which is + * This work is based upon the icarus.c worker which was * Copyright 2012 Luke Dashjr * Copyright 2012 Xiangfu *