20 minutes and I have it running on my BAMT GPU linux box. So I decided to try this on one of my BAMT devices with 4 GPU's running mining Scrypt (NO I'm not mining Scrypt with these, just using the same Linux device).
I logged in on my BAMT device and did this exactly:
git clone
https://github.com/bitmaintech/cgminercd cgminer
sudo apt-get install libusb-1.0
sudo apt-get install libudev-dev
./autogen.sh
./configure --enable-bmsc
make -j 6
and then did (as in the example from the .PDF)
./cgminer --bmsc-options 115200:20 -o 50.31.149.57:3333 -u ktzhan_3 -p 123 --bmsc-freq 0781
Two things.
First of all, the "--bmsc-options 115200:20 " is MANDATORY. I was not using it and having it on the command line made all the difference in the world.
Next, what processor / OS are you running? i.e. does "uname -p" say "i386" or "x86_64"?
The same exact sequence on an intel i3 running ubuntu 12.04 x86_64 gives a compiler warning that it will crash because of a memory overflow and really does. Fixing the memcpy from trying to copy 5 bytes into a 4 byte uint32 stops the crash and lets the program run. Your compiler / OS / processor may be more forgiving of the driver trying to stuff 5 bytes into a 4 bytes entity.
FWIW, what I did to make it work on an i3 running ubuntu 12.04 was
--- a/driver-bmsc.c
+++ b/driver-bmsc.c
@@ -1276,7 +1276,7 @@ static int64_t bmsc_scanwork(struct thr_info *thr)
goto out;
}
- memcpy((char *)&nonce, nonce_bin, sizeof(nonce_bin));
+ memcpy((char *)&nonce, nonce_bin, sizeof(nonce));
nonce = htobe32(nonce);
curr_hw_errors = bmsc->hw_errors;
submit_nonce(thr, work, nonce);
which is essentially to only copy 4 of the 5 bytes returned by the driver before the byte swap. Only 4 bytes are used by the code so this is a safe change.
Changed up the driver file, and no luck. Still crashing due to that mem error, tried on 32-bit and 64-bit systems, using Xubuntu 12.04. Have any other ideas?