У меня есть необходимость скомпилировать майнер с моими правками.
Скомпилировал на ubuntu 16.04+cuda-8 и положил на hive.
Любой скомпилированный форк ccminer при попытке старта майнинга Illegal instruction.
Список карт по ключу -n нормально выводит.
./ccminer-my-alexis -n
*** ccminer alexis-1.0 for nVidia GPUs from alexis78@github ***
*** Built with the nVidia CUDA Toolkit 8.0 (Not recommended prefer 7.5)
*** Based on tpruvot@github ccminer
*** Originally based on Christian Buchner and Christian H. project
*** Include some of the work of djm34, sp, tsiv and klausT.
GPU #0: SM 6.1 ASUS GTX 1080 Ti
GPU #1: SM 6.1 Gigabyte GTX 1080 Ti
GPU #2: SM 6.1 ASUS GTX 1080 Ti
В данном случае использовался оригинальный алексис без людбого рода правок.
gdb ./ccminer-my-alexis
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright © 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show copying”
and “show warranty” for details.
This GDB was configured as “x86_64-linux-gnu”.
Type “show configuration” for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type “help”.
Type “apropos word” to search for commands related to “word”…
Reading symbols from ./ccminer-my-alexis…done.
(gdb) run -a c11 --benchmark
Starting program: /hive/ccminer/ccminer-my-alexis -a c11 --benchmark
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib/x86_64-linux-gnu/libthread_db.so.1”.
*** ccminer alexis-1.0 for nVidia GPUs from alexis78@github ***
*** Built with the nVidia CUDA Toolkit 8.0 (Not recommended prefer 7.5)
*** Based on tpruvot@github ccminer
*** Originally based on Christian Buchner and Christian H. project
*** Include some of the work of djm34, sp, tsiv and klausT.
[New Thread 0x7fffea983700 (LWP 9993)]
Thread 1 “ccminer-my-alex” received signal SIGILL, Illegal instruction.
0x0000000000412e6d in pool_set_creds ()
(gdb) where
#0 0x0000000000412e6d in pool_set_creds ()
#1 0x0000000000404fd7 in main ()
Или так:
strace ./ccminer-my-alexis -a c11 --benchmark
execve("./ccminer-my-alexis", ["./ccminer-my-alexis", “-a”, “c11”, “–benchmark”], [/* 21 vars */]) = 0
brk(NULL) = 0x4f11000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=59782, …}) = 0
mmap(NULL, 59782, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc147aa4000
close(3) = 0
…
mmap(0x10100000000, 4294967296, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x10100000000
open("/proc/self/maps", O_RDONLY) = 15
fstat(15, {st_mode=S_IFREG|0444, st_size=0, …}) = 0
read(15, “00400000-04875000 r-xp 00000000 “…, 1024) = 1024
close(15) = 0
mmap(0x10200000000, 4294967296, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x10200000000
stat(”/proc/11354/ns/pid”, {st_mode=S_IFREG|0444, st_size=0, …}) = 0
stat("/proc/11354/ns/pid", {st_mode=S_IFREG|0444, st_size=0, …}) = 0
socket(PF_LOCAL, SOCK_SEQPACKET|SOCK_CLOEXEC, 0) = 15
unlink("") = -1 ENOENT (No such file or directory)
bind(15, {sa_family=AF_LOCAL, sun_path=@“cuda-uvmfd-4026531836-11354”}, 31) = 0
listen(15, 128) = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fc139c3a000
mprotect(0x7fc139c3a000, 4096, PROT_NONE) = 0
clone(child_stack=0x7fc13a439fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fc13a43a9d0, tls=0x7fc13a43a700, child_tidptr=0x7fc13a43a9d0) = 11359
futex(0x7fc1471f4d28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0x4f83000) = 0x4f83000
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1ec30) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x4a, 0xb0), 0x7ffd22e1ecc0) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1ec00) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1eae0) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1eae0) = 0
…
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1e870) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1e870) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1e870) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1e900) = 0
ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffd22e1e900) = 0
— SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x412e6d} —
+++ killed by SIGILL +++
Illegal instruction
Пробовал также поставить ядро 4.10.17 на 16.04 и перекомпилять.
Во что-то простое ибазовое я не догоняю.
помогите, пожалуйста.
Спасибо!