Майнинг,  Статьи

Майнинг Vertcoin в Linux, компиляция VerthashMiner в xubuntu 16.04

В статье «Майнинг криптовалюты Vertcoin на алгоритме verthash в Windows» описаны особенности добывания монет VTC в операционной системе Windows.

В данной статье идет речь о майнинге на алгоритме verthash в дистрибутивах на основе Ubuntu.

Необходимость написания отдельной статьи вызвана тем, что программа verthashminer не запускается в старых релизах Ubuntu, что затрудняет использование достаточно мощных видеокарт типа AMD Radeon R9 290/390 , которые полностью раскрывают свой потенциал в операционной системе (x)ubuntu 16.04 (подробнее в статье «Как добиться от видеокарт Radeon R9 290/390 хешрейта 29-30 Mh/s на Ethash»).

Майнинг Vertcoin в современных дистрибутивах Linux

В операционных системах на основе дистрибутива ubuntu (LTS релизы 18.04 и 20.04) программа VerthashMiner успешно работает с видеокартами Nvidia и AMD c 2 GB VRAM и более.

Для успешного запуска майнинга нужно ~1.2GB памяти для данных файла verthash.dat  + (36 байт * Work_Batch_Size).

Пример скрипта для запуска майнинга на алгоритме verthash в программе VerthashMiner на пуле zergpool:

sudo ./VerthashMiner -o stratum+tcp://verthash.mine.zergpool.com:4534 -u кошелек -p c=BTC,worker,refcode=81de238596774683dd427a9d57bae6af --путь к файлу/verthash.dat --all-cl-devices

Майнер запускается даже на видеокарте low-end сегмента Nvidia GT 710 с 2 GB GDDR5-памяти. На ней VerthashMiner 0.6.2 в xubuntu 16.04 выдает 13.6 kh/s:

На видеокартах Nvidia GTX 1063 VerthashMiner 0.6.2 выжимает около 260-300 kh/s:

Nvidia GTX 1050Ti выдает на Verthash около 210-220 kh/s.

Видеокарты AMD Radeon RX584 на Verthash в xubuntu 18.04 выдают около 420-500 kh/s:

Видеокарты AMD со старой архитектурой полностью раскрываются в (x)ubuntu 16.04 с драйверами 17.40. К сожалению, VerthashMiner «из коробки» в этой системе не работает.

Разработчики verthashminer заявляют поддержку любых видеокарт с 2GB VRAM+, поддерживающих вычисления на OpenCL 1.2+ и CUDA, а именно:

  • AMD с архитектурой GCN 1.0 (ядра Oland, Cape Verde, Pitcairn, Tahiti и выше), модели AMD Radeon HD 8570, R5 240 и позже на драйверах AMDGPU-Pro и ROCm;
  • NVIDIA с Compute Capability 3.0+ (ядра, начиная с Kepler), модели GeForce GTX 640M и выше.

В связи с этим проблема с запуском майнера в старых системах заключается в некорректной компиляции исходного кода для старых систем.

Запуск программы VerthashMiner в операционной системе ubuntu 16.04

В (x)ubuntu 16.04 при запуске программы VerthashMiner появляется ошибка об отсутствии пакета glibc версии 2.28:

./VerthashMiner: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by ./VerthashMiner)

Причиной ошибки является компиляция программы для более поздней версии операционной системы, в которой поддерживается glibc (пакет “libc6” Debian) версии 2.28.

Для решения проблемы есть 4 способа:

  1. Установить новую операционную систему, имеющую поддержку glibc версии 2.28 из коробки (например, дистрибутив (x)ubuntu 20.04). При этом будут утеряны вычислительные возможности старых видеокарт AMD, так как на современных драйверах их производительность очень низка.
  2. Перекомпилировать майнер с пакетом glibc той версии, которая установлена в системе. Этот вариант не нарушает целостности системы и позволяет использовать майнер, максимально оптимизированный под нее.
  3. Установить поддержку glibc 2.28 в системе. В ubuntu 16.04 это не так просто сделать, не нарушая целостности системы. Так как майнеру нужен только файл libc.so.6 из пакета GLIBC_2.25, то вроде бы можно вручную заменить его старую версию в папке /lib/x86_64-linux-gnu, но это может серьезно нарушить работоспособность системы, сломав зависмости;
  4. Подождать и использовать более новую версию программы/другой майнер с исправленными ошибками.

Пакет glibc является критичным компонентом операционной системы, его некорректная работа может привести к порче системы, поэтому бездумные манипуляции с glibc производить не стоит.

Наиболее оптимальным и безопасным вариантом решения проблемы является самостоятельная компиляция майнера с пакетом libc6 той версии, которая поддерживается системой.

Для справки:

Номер установленного в системе пакета glibc (libc6) можно посмотреть, выполнив в консоли терминала команду:

ldd --version

Для обновления пакета libc6 нужно выполнить команды:

sudo apt update

sudo apt install libc6

В xubuntu 16.04 по состоянию на середину февраля 2021 года поддерживается пакет libc6 версии 2.23, чего недостаточно для запуска скомпилированного разработчиками VerthashMiner.

Далее приводится пошаговая последовательность действий по компиляции программы VerthashMiner в xubuntu 16.04.

Компиляция майнера VerthashMiner в xubuntu 16.04

Для компиляции VerthashMiner в xubuntu 16.04 (с уже установленными драйверами для видеокарт) со включенным графическим окружением нужно:

  • Сохранить архив Source Code (tar.gz) в удобное место:

  • Разархивировать полученный файл:
  • Открыть папку с исходными кодами и запустить в ней терминал:

  • Установить необходимые библиотеки командой:
sudo apt install ocl-icd-opencl-dev libcurl4-openssl-dev cmake libjansson-dev libssl-dev
  • В окне терминала ввести команду
cmake -G"Unix Makefiles" -DCMAKE_SOURCE_DIR="/home/github/VerthashMiner" -DCMAKE_BUILD_TYPE="Release" -DOpenCL_INCLUDE_DIR="/usr/include/CL"
(в кавычках должен быть указан правильный путь к файлам с исходным кодом майнера, например, вместо /home/github/VerthashMiner может быть путь /home/user/Загрузки/VerthashMiner-0.7.2)

и нажать ввод.

  • Завершить компиляцию командой make.

При появлении ошибки типа CMake 3.18 or higher is required. You are running version 3.5.1

нужно инсталлировать в системе самую новую версию cmake, скачав ее исходный код на сайте cmake.

Новейший релиз программного обеспечения cmake для xubuntu :

Установка выполняется из каталога, куда разархивированы файлы пакета cmake командами:

./configure

make

sudo make install

Выполнение команды make занимает довольно продолжительное время, более 10 минут:

После выполнения команды sudo make install появятся строки об успешном завершении инсталляции последней версии CMake:

После этого можно продолжить компиляцию майнера командой

cmake -G"Unix Makefiles" -DCMAKE_SOURCE_DIR="/home/github/VerthashMiner" -DCMAKE_BUILD_TYPE="Release" -DOpenCL_INCLUDE_DIR="/usr/include/CL"

После этого завершают сборку исполняемого файла verthashminer командой

make

При успешном завершении операции появится сообщение

[100%] Linking CXX executable VerthashMiner

[100%] Built target VerthashMiner

Файл майнера будет находиться в той же директории, где сохранены исходники. Теперь его можно использовать для майнинга.

Интересно отметить, что при компиляции майнера в системе без видеокарт nvidia (отсутствует поддержка CUDA) размер полученного бинарного файла verthashminer составляет всего несколько сотен килобайт (в десятки раз меньше скачиваемого на Github), что дает выигрыш в скорости и надежности майнинга:

Ветераны майнинга — видеокарты AMD Radeon R9 290 в самостоятельно скомпилированном verthashminer в xubuntu 16.04 выдают по 430-450 kh/s (при настройке BIOS для экономичного майнинга на ethash) :

7 комментариев

  • Antoshik86

    Error when bootstrapping CMake:
    Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.
    Please specify one using environment variable CXX.
    The C++ flags are “”.
    They can be changed using the environment variable CXXFLAGS.
    See cmake_bootstrap.log for compilers attempted.
    ———————————————
    Log of errors: /home/ai/Загрузки/cmake-3.21.1/Bootstrap.cmk/cmake_bootstrap.log

  • Antoshik86

    [100%] Linking CXX executable VerthashMiner
    /usr/bin/ld: CMakeFiles/VerthashMiner.dir/src/vhDevice/ADLUtils.cpp.o: неопределённая ссылка на символ «dlclose@@GLIBC_2.2.5»
    //lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    CMakeFiles/VerthashMiner.dir/build.make:229: ошибка выполнения рецепта для цели «VerthashMiner»
    make[2]: *** [VerthashMiner] Ошибка 1
    CMakeFiles/Makefile2:82: ошибка выполнения рецепта для цели «CMakeFiles/VerthashMiner.dir/all»
    make[1]: *** [CMakeFiles/VerthashMiner.dir/all] Ошибка 2
    Makefile:135: ошибка выполнения рецепта для цели «all»
    make: *** [all] Ошибка 2

  • Antoshik86

    ai@ai86:~/Загрузки/VerthashMiner-0.6.2$ sudo ./VerthashMiner -o stratum+tcp://verthash.mine.zergpool.com:4534 -u vtc1qcgvywxqu5wxwmrvvuqv2vf0as49zx93049820g -p c=BTC,worker –verthash-data /home/ai/verthash.dat –all-cl-devices –verbose[2021-08-21 15:35:58] INFO Found 1 OpenCL devices.
    [2021-08-21 15:35:59] INFO Verthash data file has been loaded succesfully!
    [2021-08-21 15:36:03] INFO Verthash data file has been verified succesfully!
    [2021-08-21 15:36:03] INFO Miner has been successfully configured! (Errors: 0, Warnings: 0)
    [2021-08-21 15:36:03] INFO Configured 1(CL) workers
    [2021-08-21 15:36:03] INFO 1 miner threads started, using Verthash algorithm.
    [2021-08-21 15:36:03] INFO Starting Stratum on stratum+tcp://verthash.mine.zergpool.com:4534
    [2021-08-21 15:36:03] DEBUG Verthash OCL thread started
    [2021-08-21 15:36:03] ERROR cl_device(0):Failed to create an OpenCL command queue.
    [2021-08-21 15:36:03] INFO cl_device(0):Exiting worker thread id(0)…
    [2021-08-21 15:36:03] INFO All worker threads have been exited.
    [2021-08-21 15:36:03] DEBUG Exit workIO thread
    [2021-08-21 15:36:03] INFO WorkIO thread has been finished.
    [2021-08-21 15:36:03] INFO Waiting for worker threads to exit…
    [2021-08-21 15:36:03] INFO Waiting for stratum thread to exit…
    CURLE_ABORTED_BY_CALLBACK
    [2021-08-21 15:36:03] ERROR …retry after 30 seconds
    [2021-08-21 15:36:03] DEBUG Stratum thread exit
    [2021-08-21 15:36:03] INFO Freeing allocated memory…
    [2021-08-21 15:36:03] INFO Application has been exited gracefully.
    ai@ai86:~/Загрузки/VerthashMiner-0.6.2$ sudo ./VerthashMiner –device-list
    [2021-08-21 15:36:43] INFO Found 1 OpenCL devices.

    Device list(raw):
    ==================
    OpenCL devices:
    Index: 0. Name: Oland
    Platform index: 0
    Platform name: Advanced Micro Devices, Inc.
    pcieBusId: 12

    ai@ai86:~/Загрузки/VerthashMiner-0.6.2$

  • Antoshik86

    ai@ai86:~/Загрузки/VerthashMiner-0.6.2$ lspci -k|egrep ‘VGA|in use’
    Kernel driver in use: pcieport
    00:02.0 VGA compatible controller: Intel Corporation Device 3e9b (rev 02)
    Kernel driver in use: i915
    Kernel driver in use: xhci_hcd
    Kernel driver in use: ahci
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: snd_hda_intel
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: pcieport
    Kernel driver in use: xhci_hcd
    Kernel driver in use: alx
    0c:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Oland GL [FirePro W2100]
    Kernel driver in use: amdgpu
    Kernel driver in use: snd_hda_intel

  • cryptoprofi

    У Вас проблема, аналогичная описанной в статье Решение проблем с доступом к памяти старых видеокарт при майнинге в Linux. Если добавление переменных export GPU_FORCE_64BIT_PTR=1 … в скрипт запуска не помогает, то, видимо, проблема в конфигурации “железа”. На тестовых компьютерах одна и та же система с теми же картами работает, например, на сервере Proliant ML110G5, а на материнской плате Asrock Z87 Killer – аналогичная проблема.

  • Tester500

    Ну и почему не выложить здесь скомпилированный файл? Обязательно нужно повторить всю описанную в статье портянку? У меня драйвер установлен без “dev” опции, установка еще полдня займет, а может все и сломает (уже такое было)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *