Skip to content
This repository has been archived by the owner on Apr 24, 2022. It is now read-only.

build ethminer for ubuntu #2084

Open
zhumingyu opened this issue Dec 3, 2020 · 18 comments
Open

build ethminer for ubuntu #2084

zhumingyu opened this issue Dec 3, 2020 · 18 comments

Comments

@zhumingyu
Copy link

when i used cmake .. -DHUNTER_ENABLED=OFF,i got this error
-- [cable ] Cable 0.2.14 initialized
-- [cable ] Build type: Release
-- Boost version: 1.65.1
-- Found the following Boost libraries:
-- system
-- filesystem
-- thread
-- chrono
-- date_time
-- atomic
CMake Error at CMakeLists.txt:71 (find_package):
Could not find a package configuration file provided by "ethash" with any
of the following names:

ethashConfig.cmake
ethash-config.cmake

Add the installation prefix of "ethash" to CMAKE_PREFIX_PATH or set
"ethash_DIR" to a directory containing one of the above files. If "ethash"
provides a separate development package or SDK, be sure it has been
installed.

@blackmennewstyle
Copy link

Hi,

Go inside the doc folder and you will find a file called build with most of the procedure, However, you will probably run into an error when you will want to launch the miner...

@zhumingyu
Copy link
Author

@blackmennewstyle thx

@chamboin
Copy link

chamboin commented Mar 8, 2021

Same with this, have you solve this problem?

@blackmennewstyle
Copy link

blackmennewstyle commented Mar 8, 2021

Same with this, have you solve this problem?

Hi, what issue are you referring to?

He/She had an issue with building the miner, i provided to him/her the correct procedure described in the build file located in the doc repertory.

However myself, once i built the miner correctly, i did not manage to make it work, i faced an issue. I ended using PhoenixMiner and later on Team Red Miner for my AMD cards.

@chamboin
Copy link

chamboin commented Mar 9, 2021

Same with this, have you solve this problem?

Hi, what issue are you referring to?

He/She had an issue with building the miner, i provided to him/her the correct procedure described in the build file located in the doc repertory.

However myself, once i built the miner correctly, i did not manage to make it work, i faced an issue. I ended using PhoenixMiner and later on Team Red Miner for my AMD cards.

I'm dealing with the building issue, the docs doesn't help. I conquer multiple dependency issues when building including the issue @zhumingyu faced.

@drakorg
Copy link

drakorg commented May 1, 2021

Hi, did you manage to make it work? I'm facing the same problem at the moment. Thank you.

@scmorsi
Copy link

scmorsi commented May 10, 2021

I am also facing this issue. Has anyone made this work?

@jthall
Copy link

jthall commented May 13, 2021

I'm working on Debian Bullseye, not Ubuntu but hopefully this will get you going.

To solve the immediate problem, you should build and install ethash from https://github.com/chfast/ethash.git

After that, you may have problems with CLI11
https://github.com/CLIUtils/CLI11
Don't forget to git submodule update --init --recursive for CLI11
Also the current sources expect version 1.0.8, so before building, do git checkout v1.0.8

You may have problems compiling things that reference <json/json.h> and a simple fix which is not the correct one is to ln -s /usr/include/jsoncpp/json /usr/include/json

After building and installing v1.0.8 of CLI11, you may have problems with statically linking libjsoncpp_lib_static. The libjsoncpp-dev for Debian does not include a static library, so you can fix it:

First, make a new directory for it
mkdir libjsoncpp
cd libjsoncpp
apt-get source libjsoncpp

It is important to ensure you are in the correct directory for apt-get source, because unlike other apt or apt-get commands, this one places files in whatever directory you are in.

Edit the debian/rules file in the unpacked dir and change -DBUILD_STATIC_LIBS from OFF to ON (don't accidentally delete the trailing \ or you may find problems building)

Next edit libjsoncpp-dev.install and add usr/lib//.a on a line by itself just like the other entries.

now go back up a directory and dpkg-buildpackage -uc -us

For some reason if you try this step twice, you get loads of errors, so you might want to make a copy of the dir before proceeding or you may need to perform the apt-get steps again.

Next, install the new libjsoncpp-dev package that was created in the parent directory with dpkg -i and return to the ethminer tree.

edit libpoolprotocols/CMakeList.txt and change jsoncpp_lib_static to jsoncpp_static

Now you should at least be able to build it. I have not tried to run it yet, but I got a clean build.

@arsalan914
Copy link

DHUNTER_ENABLED

why are you trying with hunter disbaled?
the purpose of hunter is to resolve all dependencies. once run cmake with hunter enabled the boost library fails to download. this is because the boostlibrary download link has changed. hunter uses an older link which does not work. to resolve this after running cmake and once you get the error related to boost download failed, go to the ~/.hunter/ folder and then you need to manually replace the url "https://dl.bintray.com/boostorg/" with "https://boostorg.jfrog.io/artifactory/main" . This link explains the boost url change:https://lists.boost.org/Archives/boost//2021/04/251468.php
i was able to successfully build once i replaced the urls.

with hunter disabled, you have to manually resolve all dependencies which is a pain.

@chamboin
Copy link

Hi, @arsalan914 may you explain how to replace the url? cause I don't find any file conatin such url in ~/.hunter/ folder

@arsalan914
Copy link

@chamboin
This is the error i get when i run cmake command


~/git/ethminer/build$ /home/arsalansaleem/Downloads/cmake-3.20.2-linux-x86_64/bin/cmake ..  -DETHASHCUDA=OFF -DETHASHCL=ON
-- [cable ] Cable 0.2.14 initialized
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- [cable ] Build type: Release
-- [hunter] Calculating Toolchain-SHA1
-- [hunter] Calculating Config-SHA1
-- [hunter] HUNTER_ROOT: /home/arsalansaleem/.hunter
-- [hunter] [ Hunter-ID: 4b894e1 | Toolchain-ID: 51efd6e | Config-ID: cb395ce ]
-- [hunter] BOOST_ROOT: /home/arsalansaleem/.hunter/_Base/4b894e1/51efd6e/cb395ce/Install (ver.: 1.66.0)
-- [hunter] Building Boost
loading initial cache file /home/arsalansaleem/.hunter/_Base/4b894e1/51efd6e/cb395ce/cache.cmake
loading initial cache file /home/arsalansaleem/.hunter/_Base/4b894e1/51efd6e/cb395ce/Build/Boost/args.cmake
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/arsalansaleem/.hunter/_Base/4b894e1/51efd6e/cb395ce/Build/Boost/Build
[ 12%] Creating directories for 'Boost'
[ 25%] Performing download step (download, verify and extract) for 'Boost'
-- verifying file...
       file='/home/arsalansaleem/.hunter/_Base/Download/Boost/1.66.0/075d0b4/boost_1_66_0.7z'
-- SHA1 hash of
    /home/arsalansaleem/.hunter/_Base/Download/Boost/1.66.0/075d0b4/boost_1_66_0.7z
  does not match expected value
    expected: '075d0b43980614054b1f1bafd189f863bba6600e'
      actual: 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
-- File already exists but hash mismatch. Removing...
-- Downloading...
   dst='/home/arsalansaleem/.hunter/_Base/Download/Boost/1.66.0/075d0b4/boost_1_66_0.7z'
   timeout='none'
   inactivity timeout='none'
-- Using src='https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.7z'
-- [download 0% complete]
CMake Error at Build/Boost-prefix/src/Boost-stamp/download-Boost.cmake:170 (message):
  Each download failed!

    error: downloading 'https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.7z' failed
          status_code: 22
          status_string: "HTTP response code said error"
          log:
          --- LOG BEGIN ---
            Trying 18.196.33.98:443...

  Connected to dl.bintray.com (18.196.33.98) port 443 (#0)

  ALPN, offering h2

  ALPN, offering http/1.1

  successfully set certificate verify locations:

   CAfile: /etc/ssl/certs/ca-certificates.crt
   CApath: /etc/ssl/certs

  [5 bytes data]

  TLSv1.3 (OUT), TLS handshake, Client hello (1):

  [512 bytes data]

  [5 bytes data]

  TLSv1.3 (IN), TLS handshake, Server hello (2):

  [102 bytes data]

  NPN, negotiated HTTP1.1

  [5 bytes data]

  TLSv1.2 (IN), TLS handshake, Certificate (11):

  [2765 bytes data]

  [5 bytes data]

  TLSv1.2 (IN), TLS handshake, Server key exchange (12):

  [333 bytes data]

  [5 bytes data]

  TLSv1.2 (IN), TLS handshake, Server finished (14):

  [4 bytes data]

  [5 bytes data]

  TLSv1.2 (OUT), TLS handshake, Client key exchange (16):

  [70 bytes data]

  [5 bytes data]

  TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):

  [1 bytes data]

  [5 bytes data]

  TLSv1.2 (OUT), TLS handshake, Next protocol (67):

  [36 bytes data]

  [5 bytes data]

  TLSv1.2 (OUT), TLS handshake, Finished (20):

  [16 bytes data]

  [5 bytes data]

  [5 bytes data]

  TLSv1.2 (IN), TLS handshake, Finished (20):

  [16 bytes data]

  SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256

  ALPN, server did not agree to a protocol

  Server certificate:

   subject: CN=*.bintray.com
   start date: Sep 26 00:00:00 2019 GMT
   expire date: Nov  9 12:00:00 2021 GMT
   subjectAltName: host "dl.bintray.com" matched cert's "*.bintray.com"
   issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=GeoTrust RSA CA 2018
   SSL certificate verify ok.

  [5 bytes data]

  GET /boostorg/release/1.66.0/source/boost_1_66_0.7z HTTP/1.1

  Host: dl.bintray.com

  User-Agent: curl/7.75.0

  Accept: */*

  

  [5 bytes data]

  Mark bundle as not supporting multiuse

  HTTP/1.1 403 Forbidden

  Server: nginx

  Date: Wed, 26 May 2021 06:30:42 GMT

  Content-Type: text/plain

  Content-Length: 10

  Connection: keep-alive

  ETag: "5c408590-a"

  The requested URL returned error: 403

  Closing connection 0

  

          --- LOG END ---
          
    


make[2]: *** [CMakeFiles/Boost.dir/build.make:99: Boost-prefix/src/Boost-stamp/Boost-download] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/Boost.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

[hunter ** FATAL ERROR **] Build step failed (dir: /home/arsalansaleem/.hunter/_Base/4b894e1/51efd6e/cb395ce/Build/Boost
[hunter ** FATAL ERROR **] [Directory:/home/arsalansaleem/.hunter/_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/projects/Boost]

------------------------------ ERROR -----------------------------
    https://docs.hunter.sh/en/latest/reference/errors/error.external.build.failed.html
------------------------------------------------------------------

CMake Error at /home/arsalansaleem/.hunter/_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/modules/hunter_error_page.cmake:12 (message):
Call Stack (most recent call first):
  /home/arsalansaleem/.hunter/_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/modules/hunter_fatal_error.cmake:20 (hunter_error_page)
  /home/arsalansaleem/.hunter/_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/modules/hunter_download.cmake:614 (hunter_fatal_error)
  /home/arsalansaleem/.hunter/_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/projects/Boost/hunter.cmake:381 (hunter_download)
  /home/arsalansaleem/.hunter/_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/modules/hunter_add_package.cmake:62 (include)
  CMakeLists.txt:64 (hunter_add_package)


-- Configuring incomplete, errors occurred!
See also "/home/arsalansaleem/git/ethminer/build/CMakeFiles/CMakeOutput.log".

Following is the output where i search for the "bintray" url in the ~/.hunter folder

~/.hunter$ grep -arsi "bintray"
_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/projects/Boost/hunter.cmake:set(_hunter_boost_base_url "https://dl.bintray.com/boostorg/release")
_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/docs/user-guides/hunter-user/artifactory-cache-server.rst:  > docker run -it -p 8081:8081 docker.bintray.io/jfrog/artifactory-oss bash
_Base/4b894e1/51efd6e/cb395ce/Build/Boost/Build/Boost-prefix/src/Boost-stamp/Boost-urlinfo.txt:module='https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.7z'
_Base/4b894e1/51efd6e/cb395ce/Build/Boost/Build/Boost-prefix/src/Boost-stamp/download-Boost.cmake:if("https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.7z" STREQUAL "")
_Base/4b894e1/51efd6e/cb395ce/Build/Boost/Build/Boost-prefix/src/Boost-stamp/download-Boost.cmake:  foreach(url https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.7z)
_Base/4b894e1/51efd6e/cb395ce/Build/Boost/CMakeLists.txt:hunter_assert_not_empty_string("https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.7z")
_Base/4b894e1/51efd6e/cb395ce/Build/Boost/CMakeLists.txt:    https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.7z

@jthall
Copy link

jthall commented May 26, 2021 via email

@arsalan914
Copy link

@jthall i still believe that it was much simple with hunter enabled. just the url replacement was required, then everything worked smoothly.

@bigmike3d
Copy link

https://boostorg.jfrog.io/artifactory/main

Are there instructions for how to replace the urls in the hunter files for us non-linux pro?

@jotanavarro
Copy link

For those who need cannot solve this by themselves:

  • Attempt to run the cmake build as usual, wait for the failure.
  • Edit the text file under ~/.hunter that tells hunter from where to download it, to find that file, while in the ~/hunter directory invoke grep -r bintray. Find the file named something like <a very long path>/hunter.cmake and open it with your favourite text editor.
  • Change the address https://dl.bintray.com/boostorg/release for https://boostorg.jfrog.io/artifactory/main/release.
  • Run the cmake build again.

@yesrod
Copy link

yesrod commented Aug 9, 2021

For those who need cannot solve this by themselves:

* Attempt to run the `cmake` build as usual, wait for the failure.

* Edit the text file under `~/.hunter` that tells `hunter` from where to download it, to find that file, while in the `~/hunter` directory invoke `grep -r bintray`.  Find the file named something like `<a very long path>/hunter.cmake` and open it with your favourite text editor.

* Change the address `https://dl.bintray.com/boostorg/release` for `https://boostorg.jfrog.io/artifactory/main/release`.

* Run the `cmake` build again.

In the form of a oneliner using sed:

sed 's/dl.bintray.com\/boostorg\/release/boostorg.jfrog.io\/artifactory\/main\/release/' -i `grep -Ri bintray ~/.hunter/_Base/ | cut -d\: -f1`

@kf106
Copy link

kf106 commented Sep 4, 2021

My location for the wrong URL was under root. I edited it using sudo nano /root/.hunter/_Base/Download/Hunter/0.23.112/4b894e1/Unpacked/cmake/projects/Boost/hunter.cmake

@amr-abdelghafar
Copy link
Contributor

I have solved it here #2413 by updating the hunter to the working version
All tests are passed, it just needs a review to merge

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests