Hi Joblo,
Thank you for this initiative.
I downloaded the 3.0.1 version.
It compiles (and runs) on my machines having i5 processors (Ubuntu 12.04), but it fails to compile on
my Intel Core 2 duo machine (Ubuntu 14.04), as well as on my old Athlon single core machine (Ubuntu 12.04).
Here is the build log (from ./build.sh) from the core 2 duo if interested.
https://www.dropbox.com/s/mbxje7fdntxgrkk/cpuminer_build.log?dl=0Hi bobben,
Thank you for your interest. You are the first person to report with a CPU without AES_NI support and I only have AES_NI.
as a result cpuminer-opt on older CPUs is untested.
I hope we can work together to get this working. I will download and look at your compile but I'm busy right now
preparing another release. Stay tuned.
I took a look at your build file and I think I know what the problm is. The package contains code for CPUs with
AES_NI but your cpu can't handle it. The miner can handle this at run time but compiling is the issue.
the compiler option -march=native means to build for your CPU. Since your CPU can't run AES_NI instructions
the compiler refuses to compile it. If we can get it compiled I think it will run fine because cpuminer-opt checks
the CPU architectire in order to select code to run for the correct CPU architecture.
I have an idea for a workaround. We can fool the compiler into think it is bulding for an AES_NI CPU but in fact
we'll run it on your core2. Change the configure option "-march=native" to "-march=corei7-avx" and see if it
compiles. If successful try to run it and note the startup messages regarding the CPU capabilities.
I hope this works.
Edit: Only 64 bit CPU are supported.
I changed march as you suggested. I got a bit further, but still errors.
I commented out the content of the functions in algo/sse2/groestl/grso-asm.c as it was throwing errors.
Then I created a dummy .c file which I compiled and added to the link statement with the following content as these functions were missing:
#include
void quarkhash_aes() { fprintf(stderr,"This should not happen\n"); }
void quarkhash_sse2() { fprintf(stderr,"This neither\n"); }
void qubithash_aes() { fprintf(stderr,"Nor this\n"); }
I then got the program linked, but it core dumps when I start it:
Checking CPU capatibility...
Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
AES_NI: No.
SSE2: No, start mining without optimizations...
[2016-01-22 17:41:29] Starting Stratum on stratum+tcp://hashpower.co:4733
[2016-01-22 17:41:29] 2 miner threads started, using 'qubit' algorithm.
/home/arve/miner_cpu_qubit: line 11: 3379 Illegal instruction (core dumped) cpuminer -t $thr -a qubit -o stratum+tcp://hashpower.co:4733 -u $ADDR_BTC
According to /proc/cpuinfo the core 2 duo has sse2, so I am surprised at the program conclusion..
Here is the info from gdb after I recompiled with -g
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `cpuminer -t 2 -a qubit -o stratum+tcp://hashpower.co:4733 -u 19eSQxSAL9PuTF8gfW'.
Program terminated with signal SIGILL, Illegal instruction.
#0 0x000000000064595d in jsonp_strtod (strbuffer=0x7f69bae93ca8,
out=0x7f69bae93a88) at strconv.c:69
69 value = strtod(strbuffer->value, &end);
(gdb)