Собираем CudaMiner для добычи Litecoin/NovaCoin/Feathercoin

Материал из IN-TON
Перейти к: навигация, поиск

Содержание

Установка Nvidia Cuda

Для работы требуется Cuda версии 5.5 Качаем с сайта Nvidia либо ставим из репозитариев дистрибутива

Компиляция CudaMiner из исходников

  1.  
  2. git clone https://github.com/cbuchner1/CudaMiner.git
  3. cd CudaMiner
  4. configure
  5. make
  6.  

Тут нас ждет первая засада:

  1.  
  2. make[2]: *** Нет правила для сборки цели `spinlock_kernel.cu', требуемой для `spinlock_kernel.o'. Останов.
  3. make[2]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  4. make[1]: *** [all-recursive] Ошибка 1
  5. make[1]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  6. make: *** [all] Ошибка 2
  7.  

И сразу за ней вторая:

  1.  
  2. make[2]: *** Нет правила для сборки цели `legacy_kernel.cu', требуемой для `legacy_kernel.o'. Останов.
  3. make[2]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  4. make[1]: *** [all-recursive] Ошибка 1
  5. make[1]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  6. make: *** [all] Ошибка 2
  7.  

Фишка в том что разработчик убрал поддержку старых ядер spinlock_kernel и legacy_kernel, открываем Makefile и удаляем упоминания об этих ядрах. Снова делаем make получаем вот такое:

  1.  
  2. g++ -g -O2 -pthread -L/usr/local/cuda/lib64 -o cudaminer cudaminer-cpu-miner.o cudaminer-util.o cudaminer-sha2.o cudaminer-scrypt.o cudaminer-scrypt-jane.o salsa_kernel.o fermi_kernel.o kepler_kernel.o test_kernel.o titan_kernel.o -lcurl -lssl -lcrypto -lssl -lcrypto -L/usr/lib64 -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lldap -lz -ljansson -lpthread -lcudart -fopenmp
  3. /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lcudart
  4. collect2: ошибка: выполнение ld завершилось с кодом возврата 1
  5. make[2]: *** [cudaminer] Ошибка 1
  6. make[2]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  7. make[1]: *** [all-recursive] Ошибка 1
  8. make[1]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  9. make: *** [all] Ошибка 2
  10.  

Ага не нашли библиотеки Cuda, укажем где у нас установлена Cuda:

  1.  
  2. make clean
  3. configure --with-cuda=/opt/cuda
  4. make
  5.  

Упс... Опять ошибка:

  1.  
  2. g++ -g -O2 -pthread -L/opt/cuda/lib64 -o cudaminer cudaminer-cpu-miner.o cudaminer-util.o cudaminer-sha2.o cudaminer-scrypt.o cudaminer-scrypt-jane.o salsa_kernel.o fermi_kernel.o kepler_kernel.o test_kernel.o titan_kernel.o -lcurl -lssl -lcrypto -lssl -lcrypto -L/usr/lib64 -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lldap -lz -ljansson -lpthread -lcudart -fopenmp
  3. cudaminer-scrypt.o: In function `scanhash_scrypt':
  4. /home/stranger/BitCoin/CudaMiner/scrypt.cpp:730: undefined reference to `prepare_sha256'
  5. /home/stranger/BitCoin/CudaMiner/scrypt.cpp:761: undefined reference to `pre_sha256'
  6. /home/stranger/BitCoin/CudaMiner/scrypt.cpp:771: undefined reference to `post_sha256'
  7. /home/stranger/BitCoin/CudaMiner/scrypt.cpp:834: undefined reference to `pre_sha256'
  8. /home/stranger/BitCoin/CudaMiner/scrypt.cpp:843: undefined reference to `post_sha256'
  9. salsa_kernel.o: In function `Best_Kernel_Heuristics(cudaDeviceProp*)':
  10. /home/stranger/BitCoin/CudaMiner/salsa_kernel.cu:151: undefined reference to `NV2Kernel::NV2Kernel()'
  11. /home/stranger/BitCoin/CudaMiner/salsa_kernel.cu:153: undefined reference to `NVKernel::NVKernel()'
  12. salsa_kernel.o: In function `validate_config(char*, int&, int&, KernelInterface**, cudaDeviceProp*)':
  13. /home/stranger/BitCoin/CudaMiner/salsa_kernel.cu:182: undefined reference to `NV2Kernel::NV2Kernel()'
  14. /home/stranger/BitCoin/CudaMiner/salsa_kernel.cu:184: undefined reference to `NVKernel::NVKernel()'
  15. salsa_kernel.o: In function `find_optimal_blockcount(int, KernelInterface*&, bool&, int&)':
  16. /home/stranger/BitCoin/CudaMiner/salsa_kernel.cu:391: undefined reference to `NV2Kernel::NV2Kernel()'
  17. /home/stranger/BitCoin/CudaMiner/salsa_kernel.cu:395: undefined reference to `NVKernel::NVKernel()'
  18. cudaminer-scrypt-jane.o: In function `scanhash_scrypt_jane':
  19. /home/stranger/BitCoin/CudaMiner/scrypt-jane.cpp:511: undefined reference to `pre_keccak512'
  20. /home/stranger/BitCoin/CudaMiner/scrypt-jane.cpp:540: undefined reference to `pre_keccak512'
  21. /home/stranger/BitCoin/CudaMiner/scrypt-jane.cpp:591: undefined reference to `post_keccak512'
  22. /home/stranger/BitCoin/CudaMiner/scrypt-jane.cpp:484: undefined reference to `prepare_keccak512'
  23. collect2: ошибка: выполнение ld завершилось с кодом возврата 1
  24. make[2]: *** [cudaminer] Ошибка 1
  25. make[2]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  26. make[1]: *** [all-recursive] Ошибка 1
  27. make[1]: Выход из каталога `/home/stranger/BitCoin/CudaMiner'
  28. make: *** [all] Ошибка 2
  29.  

Лечим (причем этим лечатся все предыдущие проблемы, вот так вот):

  1.  
  2. make clean
  3. autogen.sh
  4. configure --with-cuda=/opt/cuda
  5. make
  6.  

Ура собралось. Теперь можно потестировать:

  1.  
  2. ./cudaminer -a scrypt -o myserver:8332 -u myuser -p mypass -i 0 -C 2 -m 1 -l K32x4 -H 2
  3. *** CudaMiner for nVidia GPUs by Christian Buchner ***
  4. This is version 2014-02-02 (beta)
  5. based on pooler-cpuminer 2.3.2 (c) 2010 Jeff Garzik, 2012 pooler
  6. Cuda additions Copyright 2013,2014 Christian Buchner
  7. LTC donation address: LKS1WDKGED647msBQfLBHV3Ls8sveGncnm
  8. BTC donation address: 16hJF5mceSojnTD3ZTUDqdRhDyPJzoRakM
  9. YAC donation address: Y87sptDEcpLkLeAuex6qZioDbvy1qXZEj4
  10. [2014-02-03 10:44:51] 1 miner threads started, using 'scrypt' algorithm.
  11. [2014-02-03 10:44:51] Long-polling activated for http://10.236.65.10:8332/lp
  12. [2014-02-03 10:45:02] GPU #0: GeForce GT 650M with compute capability 3.0
  13. [2014-02-03 10:45:02] GPU #0: interactive: 0, tex-cache: 2D, single-alloc: 1
  14. [2014-02-03 10:45:02] GPU #0: 32 hashes / 4.0 MB per warp.
  15. [2014-02-03 10:45:02] GPU #0: using launch configuration K32x4
  16. [2014-02-03 10:45:02] GPU #0: GeForce GT 650M, 60.66 khash/s
  17. [2014-02-03 10:45:09] GPU #0: GeForce GT 650M, 69.03 khash/s
  18. [2014-02-03 10:45:09] accepted: 1/1 (100.00%), 69.03 khash/s (yay!!!)
  19.  

Очередные грабли после обновления драйверов nvidia

  1.  
  2. *** CudaMiner for nVidia GPUs by Christian Buchner ***
  3. This is version 2014-02-02 (beta)
  4. based on pooler-cpuminer 2.3.2 (c) 2010 Jeff Garzik, 2012 pooler
  5. Cuda additions Copyright 2013,2014 Christian Buchner
  6. LTC donation address: LKS1WDKGED647msBQfLBHV3Ls8sveGncnm
  7. BTC donation address: 16hJF5mceSojnTD3ZTUDqdRhDyPJzoRakM
  8. YAC donation address: Y87sptDEcpLkLeAuex6qZioDbvy1qXZEj4
  9. modprobe: FATAL: Module nvidia-uvm not found.
  10. [2014-06-27 17:15:31] Unable to query CUDA driver version! Is an nVidia driver installed?
  11.  

Качаем с сайта Nvidia драйвера установленной у нас версии, в моем случае 337.25 и распаковываем их:

  1.  
  2. ./NVIDIA-Linux-x86_64-337.25.run -x
  3. Creating directory NVIDIA-Linux-x86_64-337.25
  4. Verifying archive integrity... OK
  5. Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 337.25...............................................................................................................................................................................................................................
  6.  

Далее переходим в каталог NVIDIA-Linux-x86_64-337.25/kernel и делаем make, потом переходим в каталог NVIDIA-Linux-x86_64-337.25/kernel/uvm и тоже делаем make После чего копируем модуль nvidia.ko из первого каталога и модуль nvidia_uvm.ko из второго каталога в /lib64/modules/<kernel>/video и делаем depmod -a

Благодарности

Благодарности можно присылать по следующим адресам:

  • BTC: 1DgpUS682yYA5rYmpFgRQWi5ugNQjux9ft
  • LTC: LhF4pTqxoz8NkWiJHHBsC3tWb11CsfQdcm
  • FTC: 6q8LCxrZ6WRLii1yQTomQ9Ei3t2wDkEoSK
  • NVC: 4bFWmGcQb3i3VZ6susgiBW5U3yotJeDMWB