This is simple “how to” to get started mining crypto currency with XMR-STAK using cryptonight algorithm like monero, electroneum, intensecoin and more. This time we are going to use PPA repository for the NVIDIA drivers and the CUDA toolkit. Installing the official NVIDIA driver we can use our ASUS ROG POSEIDON GTX 1080Ti Platinum Edition to mine along with our processor AMD Ryzen Threadripper 1950X (16 cores with 32 threads with 3.4GHz base frequency and boost to 4GHz).
XMR-STAK could be used only for CPU mining, but now we installed an NVIDIA card and Ubuntu 18.04 LTS. Ubuntu is installed with the default open source NVIDIA driver (nouveau), which is OK for every day and office use, but if you like to game or to mine you must install the proprietary driver shipped by NVIDIA. The following howto will show you how to do it!
Just follow the simple steps and you’ll have an optimized GPU and CPU miner for cryptonight crypto currencies:
STEP 1) Install Ubuntu 18.04 LTS.
If you do not have Ubuntu installed yet it is time to do it. You can see how easy is to do it here even if you have multiple systems installed – Install Ubuntu Desktop 18.04 LTS on a PC with existing windows 10 and linux If your machine is only for mining and you want to have only one system it’s even simpler and you can still follow the above howto!
STEP 2) Install NVIDIA proprietary driver and CUDA Toolkit
Here we show you a brief command set to execute, but if you want a detailed explanations you could check the two howtos on the subject: Install NVIDIA proprietary drivers on Ubuntu 18.0 LTS (x86_64) and Install NVIDIA Cuda on Ubuntu 18.04 LTS (x86_64)
myuser@srv:~$ sudo apt -y update myuser@srv:~$ sudo add-apt-repository -y ppa:graphics-drivers/ppa myuser@srv:~$ sudo apt -y update myuser@srv:~$ sudo ubuntu-drivers autoinstall myuser@srv:~$ sudo reboot myuser@srv:~$ sudo apt install -y nvidia-cuda-toolkit gcc-6
Check if your driver is loaded successfully before continuing:
myuser@srv:~$ dmesg|grep -i nvidia [ 1.414268] nvidia: loading out-of-tree module taints kernel. [ 1.414273] nvidia: module license 'NVIDIA' taints kernel. [ 1.632334] nvidia: module verification failed: signature and/or required key missing - tainting kernel [ 1.639698] nvidia-nvlink: Nvlink Core is being initialized, major device number 236 [ 1.640031] nvidia 0000:0a:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem [ 1.640146] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 396.24.10 Tue Jul 10 10:00:18 PDT 2018 (using threaded interrupts) [ 1.647029] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 396.24.10 Tue Jul 10 08:53:56 PDT 2018 [ 1.648372] [drm] [nvidia-drm] [GPU ID 0x00000a00] Loading driver [ 1.648373] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:0a:00.0 on minor 0 [ 37.086767] nvidia-uvm: Loaded the UVM driver in 8 mode, major device number 511 [ 37.761570] caller os_map_kernel_space.part.7+0xda/0x120 [nvidia] mapping multiple BARs [ 38.532918] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.1/0000:0a:00.1/sound/card0/input16 [ 38.532960] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.1/0000:0a:00.1/sound/card0/input17 [ 38.532996] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.1/0000:0a:00.1/sound/card0/input18 [ 38.533028] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:03.1/0000:0a:00.1/sound/card0/input19 [ 40.851562] caller os_map_kernel_space.part.7+0xda/0x120 [nvidia] mapping multiple BARs [ 41.205592] nvidia-modeset: Allocated GPU:0 (GPU-3bad60bf-8ff7-4cba-8b51-a931299a56d8) @ PCI:0000:0a:00.0
STEP 3) Install dependencies for XMR-STAK
Around 380Mbytes of libraries and tools to be installed in addition.
myuser@srv:~$ sudo apt -y install libboost-all-dev libleveldb-dev libcurl4-openssl-dev libmicrohttpd-dev libminiupnpc-dev libgmp-dev libmicrohttpd-dev libssl-dev cmake build-essential screen git Reading package lists... Done Building dependency tree Reading state information... Done build-essential is already the newest version (12.4ubuntu1). build-essential set to manually installed. The following additional packages will be installed: autotools-dev cmake-data dh-python gir1.2-harfbuzz-0.0 ibverbs-providers icu-devtools libboost-atomic-dev libboost-atomic1.65-dev libboost-atomic1.65.1 libboost-chrono-dev libboost-chrono1.65-dev libboost-chrono1.65.1 libboost-container-dev libboost-container1.65-dev libboost-container1.65.1 libboost-context-dev libboost-context1.65-dev libboost-context1.65.1 libboost-coroutine-dev libboost-coroutine1.65-dev libboost-coroutine1.65.1 libboost-date-time-dev libboost-date-time1.65-dev libboost-dev libboost-exception-dev libboost-exception1.65-dev libboost-fiber-dev libboost-fiber1.65-dev libboost-fiber1.65.1 libboost-filesystem-dev libboost-filesystem1.65-dev libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.65-dev libboost-graph-parallel1.65.1 libboost-graph1.65-dev libboost-graph1.65.1 libboost-iostreams-dev libboost-iostreams1.65-dev libboost-locale-dev libboost-locale1.65-dev libboost-log-dev libboost-log1.65-dev libboost-log1.65.1 libboost-math-dev libboost-math1.65-dev libboost-math1.65.1 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.65-dev libboost-mpi-python1.65.1 libboost-mpi1.65-dev libboost-mpi1.65.1 libboost-numpy-dev libboost-numpy1.65-dev libboost-numpy1.65.1 libboost-program-options-dev libboost-program-options1.65-dev libboost-program-options1.65.1 libboost-python-dev libboost-python1.65-dev libboost-python1.65.1 libboost-random-dev libboost-random1.65-dev libboost-random1.65.1 libboost-regex-dev libboost-regex1.65-dev libboost-regex1.65.1 libboost-serialization-dev libboost-serialization1.65-dev libboost-serialization1.65.1 libboost-signals-dev libboost-signals1.65-dev libboost-signals1.65.1 libboost-stacktrace-dev libboost-stacktrace1.65-dev libboost-stacktrace1.65.1 libboost-system-dev libboost-system1.65-dev libboost-test-dev libboost-test1.65-dev libboost-test1.65.1 libboost-thread-dev libboost-thread1.65-dev libboost-timer-dev libboost-timer1.65-dev libboost-timer1.65.1 libboost-tools-dev libboost-type-erasure-dev libboost-type-erasure1.65-dev libboost-type-erasure1.65.1 libboost-wave-dev libboost-wave1.65-dev libboost-wave1.65.1 libboost1.65-dev libboost1.65-tools-dev libcurl4 libexpat1-dev libfabric1 libgcrypt20-dev libglib2.0-dev libglib2.0-dev-bin libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28 libgpg-error-dev libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libibverbs1 libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libidn2-0-dev libidn2-dev libjsoncpp1 libleveldb1v5 libltdl-dev libmicrohttpd12 libnl-route-3-200 libnuma-dev libopenmpi-dev libopenmpi2 libp11-kit-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpsm-infinipath1 libpython-dev libpython-stdlib libpython2.7-dev libpython3-dev libpython3.6-dev librdmacm1 librhash0 libsnappy1v5 libssl-doc libtasn1-6-dev libtasn1-doc libtool libunbound2 libuv1 mpi-default-bin mpi-default-dev nettle-dev openmpi-bin openmpi-common python python-dev python-minimal python2.7 python2.7-dev python2.7-minimal python3-dev python3-distutils python3-lib2to3 python3.6-dev zlib1g-dev git-man liberror-perl libutempter0 Suggested packages: cmake-doc ninja-build libboost-doc graphviz libboost1.65-doc gccxml libmpfrc++-dev libntl-dev xsltproc doxygen docbook-xml docbook-xsl default-jdk fop libcurl4-doc libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev libgcrypt20-doc libglib2.0-doc gmp-doc libgmp10-doc libmpfr-dev gnutls-doc gnutls-bin libgraphite2-utils libhwloc-contrib-plugins icu-doc leveldb-doc libtool-doc minissdpd openmpi-doc autoconf automaken gfortran | fortran95-compiler gcj-jdk gfortran python-doc python-tk git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn byobu | screenie | iselect python2.7-doc binfmt-support The following NEW packages will be installed: autotools-dev cmake cmake-data dh-python gir1.2-harfbuzz-0.0 ibverbs-providers icu-devtools libboost-all-dev libboost-atomic-dev libboost-atomic1.65-dev libboost-atomic1.65.1 libboost-chrono-dev libboost-chrono1.65-dev libboost-chrono1.65.1 libboost-container-dev libboost-container1.65-dev libboost-container1.65.1 libboost-context-dev libboost-context1.65-dev libboost-context1.65.1 libboost-coroutine-dev libboost-coroutine1.65-dev libboost-coroutine1.65.1 libboost-date-time-dev libboost-date-time1.65-dev libboost-dev libboost-exception-dev libboost-exception1.65-dev libboost-fiber-dev libboost-fiber1.65-dev libboost-fiber1.65.1 libboost-filesystem-dev libboost-filesystem1.65-dev libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.65-dev libboost-graph-parallel1.65.1 libboost-graph1.65-dev libboost-graph1.65.1 libboost-iostreams-dev libboost-iostreams1.65-dev libboost-locale-dev libboost-locale1.65-dev libboost-log-dev libboost-log1.65-dev libboost-log1.65.1 libboost-math-dev libboost-math1.65-dev libboost-math1.65.1 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.65-dev libboost-mpi-python1.65.1 libboost-mpi1.65-dev libboost-mpi1.65.1 libboost-numpy-dev libboost-numpy1.65-dev libboost-numpy1.65.1 libboost-program-options-dev libboost-program-options1.65-dev libboost-program-options1.65.1 libboost-python-dev libboost-python1.65-dev libboost-python1.65.1 libboost-random-dev libboost-random1.65-dev libboost-random1.65.1 libboost-regex-dev libboost-regex1.65-dev libboost-regex1.65.1 libboost-serialization-dev libboost-serialization1.65-dev libboost-serialization1.65.1 libboost-signals-dev libboost-signals1.65-dev libboost-signals1.65.1 libboost-stacktrace-dev libboost-stacktrace1.65-dev libboost-stacktrace1.65.1 libboost-system-dev libboost-system1.65-dev libboost-test-dev libboost-test1.65-dev libboost-test1.65.1 libboost-thread-dev libboost-thread1.65-dev libboost-timer-dev libboost-timer1.65-dev libboost-timer1.65.1 libboost-tools-dev libboost-type-erasure-dev libboost-type-erasure1.65-dev libboost-type-erasure1.65.1 libboost-wave-dev libboost-wave1.65-dev libboost-wave1.65.1 libboost1.65-dev libboost1.65-tools-dev libcurl4 libcurl4-openssl-dev libexpat1-dev libfabric1 libgcrypt20-dev libglib2.0-dev libglib2.0-dev-bin libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28 libgpg-error-dev libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libibverbs1 libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libidn2-0-dev libidn2-dev libjsoncpp1 libleveldb-dev libleveldb1v5 libltdl-dev libmicrohttpd-dev libmicrohttpd12 libminiupnpc-dev libnl-route-3-200 libnuma-dev libopenmpi-dev libopenmpi2 libp11-kit-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpsm-infinipath1 libpython-dev libpython-stdlib libpython2.7-dev libpython3-dev libpython3.6-dev librdmacm1 librhash0 libsnappy1v5 libssl-dev libssl-doc libtasn1-6-dev libtasn1-doc libtool libunbound2 libuv1 mpi-default-bin mpi-default-dev nettle-dev openmpi-bin openmpi-common python python-dev python-minimal python2.7 python2.7-dev python2.7-minimal python3-dev python3-distutils python3-lib2to3 python3.6-dev zlib1g-dev git git-man liberror-perl libutempter0 screen 0 upgraded, 179 newly installed, 0 to remove and 26 not upgraded. Need to get 76.9 MB of archives. After this operation, 380 MB of additional disk space will be used. Get:1 http://gb.archive.ubuntu.com/ubuntu bionic/main amd64 python2.7-minimal amd64 2.7.15~rc1-1 [1292 kB] .... ....
Tune the screen program (this is not mandatory, but is important to have good scrolling) and start screen.
myuser@srv:~$ echo "termcapinfo xterm* ti@:te@" >> ~/.screenrc myuser@srv:~$ screen -R xmr-stak
STEP 4) Compile XMR-STAK
First get the sources from the official github repository. The master is now with tag 2.4.7. If you do not know how to work with git and want the exact tag version it is easy, just open in the browser “https://github.com/fireice-uk/xmr-stak” change “Branch:master” (click on it and a dropdown will appear, click the tab “Tag” and select your tag version) to “Tag:2.4.7” then click on “Clone or download” on the right and click on “Download ZIP” and it will offer you to download a zip file with the name 2.4.7.zip (here is the URL: https://codeload.github.com/fireice-uk/xmr-stak/zip/2.4.7).
This step it is important to note that we MUST build XMR-STAK with GNU GCC 6 (6.4.0) and the default GNU GCC in Ubuntu 18.04 LTS is 7 (7.3.0), so we export environment variables “CC” and “CXX” to use gcc-6. Exporting CC and CXX is enough to compile succeessfully no need to mess with “update-alternatives”.
myuser@srv:~$ git clone https://github.com/fireice-uk/xmr-stak Cloning into 'xmr-stak'... remote: Counting objects: 5078, done. remote: Total 5078 (delta 0), reused 0 (delta 0), pack-reused 5078 Receiving objects: 100% (5078/5078), 1.48 MiB | 1.86 MiB/s, done. Resolving deltas: 100% (3628/3628), done. myuser@srv:~$ #or just download the tag version 2.4.7 from this url: https://codeload.github.com/fireice-uk/xmr-stak/zip/2.4.7 or as it was described above. This 3 lines are comments, if you want tag 2.4.7 just uncomment the second and the third lines myuser@srv:~$ #wget https://codeload.github.com/fireice-uk/xmr-stak/zip/2.4.7 myuser@srv:~$ #unzip 2.4.7.zip myuser@srv:~$ mkdir -p ./xmr-stak/build myuser@srv:~$ cd ./xmr-stak/build myuser@srv:~/xmr-stak/build$ export CFLAGS="-O2 -march=native -msse3 -fomit-frame-pointer -pipe" myuser@srv:~/xmr-stak/build$ export CHOST="x86_64-pc-linux-gnu" myuser@srv:~/xmr-stak/build$ export CXXFLAGS="${CFLAGS}" myuser@srv:~/xmr-stak/build$ export LDFLAGS="-Wl,-O1" myuser@srv:~/xmr-stak/build$ export CC=/usr/bin/gcc-6 myuser@srv:~/xmr-stak/build$ export CXX=/usr/bin/g++-6 myuser@srv:~/xmr-stak/build$ cmake ../ -- The C compiler identification is GNU 6.4.0 -- The CXX compiler identification is GNU 6.4.0 -- Check for working C compiler: /usr/bin/gcc-6 -- Check for working C compiler: /usr/bin/gcc-6 -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/g++-6 -- Check for working CXX compiler: /usr/bin/g++-6 -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found CUDA: /usr (found suitable version "9.1", minimum required is "7.5") -- Looking for CL_VERSION_2_2 -- Looking for CL_VERSION_2_2 - found -- Found OpenCL: /usr/lib/x86_64-linux-gnu/libOpenCL.so (found version "2.2") -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.0g") -- Configuring done -- Generating done -- Build files have been written to: /home/myuser/xmr-stak/build myuser@srv:~/xmr-stak/build$ make -j 16 Scanning dependencies of target xmr-stak-c [ 8%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_jh.c.o [ 8%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_blake256.c.o [ 8%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_skein.c.o [ 11%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_groestl.c.o [ 14%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_keccak.c.o [ 17%] Linking C static library bin/libxmr-stak-c.a [ 17%] Built target xmr-stak-c Scanning dependencies of target xmr-stak-backend [ 20%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/version.cpp.o [ 22%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/jconf.cpp.o [ 25%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/backendConnector.cpp.o [ 28%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/telemetry.cpp.o [ 34%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/net/jpsock.cpp.o [ 34%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/executor.cpp.o [ 37%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/http/httpd.cpp.o [ 42%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/hwlocMemory.cpp.o [ 42%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/jconf.cpp.o [ 45%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/crypto/cryptonight_common.cpp.o [ 48%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/minethd.cpp.o [ 51%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/console.cpp.o [ 54%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/globalStates.cpp.o [ 57%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/http/webdesign.cpp.o [ 60%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/uac.cpp.o [ 62%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/utility.cpp.o [ 65%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/net/socket.cpp.o [ 68%] Linking CXX static library bin/libxmr-stak-backend.a [ 68%] Built target xmr-stak-backend [ 71%] Building NVCC (Device) object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_extra.cu.o [ 74%] Building NVCC (Device) object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_core.cu.o Scanning dependencies of target xmr-stak Scanning dependencies of target xmrstak_opencl_backend [ 77%] Building CXX object CMakeFiles/xmr-stak.dir/xmrstak/cli/cli-miner.cpp.o [ 85%] Building CXX object CMakeFiles/xmrstak_opencl_backend.dir/xmrstak/backend/amd/jconf.cpp.o [ 85%] Building CXX object CMakeFiles/xmrstak_opencl_backend.dir/xmrstak/backend/amd/amd_gpu/gpu.cpp.o [ 85%] Building CXX object CMakeFiles/xmrstak_opencl_backend.dir/xmrstak/backend/amd/minethd.cpp.o [ 88%] Linking CXX executable bin/xmr-stak [ 88%] Built target xmr-stak [ 91%] Linking CXX shared library bin/libxmrstak_opencl_backend.so [ 91%] Built target xmrstak_opencl_backend Scanning dependencies of target xmrstak_cuda_backend [ 94%] Building CXX object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/jconf.cpp.o [ 97%] Building CXX object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/minethd.cpp.o [100%] Linking CXX shared library bin/libxmrstak_cuda_backend.so [100%] Built target xmrstak_cuda_backend myuser@srv:~/xmr-stak/build$
STEP 5) Execute XMR-STAK, but before you must execute some tuning exports for the GPU and the linux kernel
Now is the time to use XMR-STAK.
myuser@srv:~/xmr-stak/build$ sudo sysctl -w vm.nr_hugepages=128 myuser@srv:~/xmr-stak/build$ export GPU_FORCE_64BIT_PTR=0 myuser@srv:~/xmr-stak/build$ export GPU_MAX_HEAP_SIZE=100 myuser@srv:~/xmr-stak/build$ export GPU_USE_SYNC_OBJECTS=1 myuser@srv:~/xmr-stak/build$ export GPU_MAX_ALLOC_PERCENT=100 myuser@srv:~/xmr-stak/build$ export GPU_SINGLE_ALLOC_PERCENT=100 myuser@srv:~/xmr-stak/build$ cd ./bin myuser@srv:~/xmr-stak/build/bin$ ls -la total 35804 drwxrwxr-x 2 myuser myuser 4096 Jul 19 16:13 . drwxrwxr-x 4 myuser myuser 4096 Jul 19 16:05 .. -rw-rw-r-- 1 myuser myuser 1614230 Jul 19 16:05 libxmr-stak-backend.a -rw-rw-r-- 1 myuser myuser 75182 Jul 19 16:05 libxmr-stak-c.a -rwxrwxr-x 1 myuser myuser 32570440 Jul 19 16:13 libxmrstak_cuda_backend.so -rwxrwxr-x 1 myuser myuser 1307456 Jul 19 16:06 libxmrstak_opencl_backend.so -rwxrwxr-x 1 myuser myuser 1075784 Jul 19 16:06 xmr-stak myuser@srv:~/xmr-stak/build/bin$ ./xmr-stak
Always execute the exports before running the xmr-stak binary.
As you can see the XMR-STAK is in
./bin/xmr-stak
under the “~/xmr-stak/build”.
STEP 6) Mining with XMR-STAK.
Execute the program and follow the first run questions. Here you can see a MONERO configuration and the first run – Mining Monero with xmr-stak 2.4 in a machine with NVIDIA video card under Ubuntu 18.04 LTS.
* Options of the XMR-STAK program
As you can see all the algo you can use with this program – new and classic (the old) criptonight coins to mine like Monero, Electroneum, IntenseCoin and many more!
myuser@srv:~/xmr-stak/build/bin$ ./xmr-stak --help Usage: xmr-stak [OPTION]... -h, --help show this help -v, --version show version number -V, --version-long show long version number -c, --config FILE common miner configuration file -C, --poolconf FILE pool configuration file --benchmark BLOCKVERSION ONLY do a benchmark and exit --benchwait WAIT_SEC ... benchmark wait time --benchwork WORK_SEC ... benchmark work time --noCPU disable the CPU miner backend --cpu FILE CPU backend miner config file --noAMD disable the AMD miner backend --noAMDCache disable the AMD(OpenCL) cache for precompiled binaries --openCLVendor VENDOR use OpenCL driver of VENDOR and devices [AMD,NVIDIA] default: AMD --amd FILE AMD backend miner config file --noNVIDIA disable the NVIDIA miner backend --nvidia FILE NVIDIA backend miner config file -i --httpd HTTP_PORT HTTP interface port The following options can be used for automatic start without a guided config, If config exists then this pool will be top priority. -o, --url URL pool url and port, e.g. pool.usxmrpool.com:3333 -O, --tls-url URL TLS pool url and port, e.g. pool.usxmrpool.com:10443 -u, --user USERNAME pool user name or wallet address -r, --rigid RIGID rig identifier for pool-side statistics (needs pool support) -p, --pass PASSWD pool password, in the most cases x or empty "" --use-nicehash the pool should run in nicehash mode --currency NAME currency to mine Supported coin options: - aeon7 - bbscoin - bittube - cryptonight - cryptonight_bittube2 - cryptonight_masari - cryptonight_haven - cryptonight_heavy - cryptonight_lite - cryptonight_lite_v7 - cryptonight_lite_v7_xor - cryptonight_v7 - cryptonight_v7_stellite - graft - haven - intense - masari - monero7 - ryo - stellite - turtlecoin Version: xmr-stak 2.4.7 c5f0505 Brought to by fireice_uk and psychocrypt under GPLv3.
* Troubleshooting – the right version of GNU GCC
You must use GNU GCC 6, because version above 6 (7 and 8) are not supported by the NVIDIA 9.1 Toolkit. So if you end up with this error you must change to the version to 6 from 7 (the default in Ubuntu 18.04 LTS is GNU 7.3.0). GNU GCC 6 was installed as a dependency to NVIDIA 9.1 Toolkit in STEP 2) and we exported two environments “CC” and “CCX” in STEP 4)
[ 85%] Building CXX object CMakeFiles/xmrstak_opencl_backend.dir/xmrstak/backend/amd/jconf.cpp.o In file included from /usr/include/host_config.h:50:0, from /usr/include/cuda_runtime.h:78, from <command-line>:0: /usr/include/crt/host_config.h:121:2: error: #error -- unsupported GNU version! gcc versions later than 6 are not supported! #error -- unsupported GNU version! gcc versions later than 6 are not supported! ^~~~~ In file included from /usr/include/host_config.h:50:0, from /usr/include/cuda_runtime.h:78, from <command-line>:0: /usr/include/crt/host_config.h:121:2: error: #error -- unsupported GNU version! gcc versions later than 6 are not supported! #error -- unsupported GNU version! gcc versions later than 6 are not supported! ^~~~~ CMake Error at xmrstak_cuda_backend_generated_cuda_core.cu.o.Release.cmake:219 (message): Error generating /home/myuser/xmr-stak/build/CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/./xmrstak_cuda_backend_generated_cuda_core.cu.o CMakeFiles/xmrstak_cuda_backend.dir/build.make:63: recipe for target 'CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_core.cu.o' failed make[2]: *** [CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_core.cu.o] Error 1 make[2]: *** Waiting for unfinished jobs.... CMake Error at xmrstak_cuda_backend_generated_cuda_extra.cu.o.Release.cmake:219 (message): Error generating /home/myuser/xmr-stak/build/CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/./xmrstak_cuda_backend_generated_cuda_extra.cu.o CMakeFiles/xmrstak_cuda_backend.dir/build.make:70: recipe for target 'CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_extra.cu.o' failed make[2]: *** [CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_extra.cu.o] Error 1 CMakeFiles/Makefile2:105: recipe for target 'CMakeFiles/xmrstak_cuda_backend.dir/all' failed make[1]: *** [CMakeFiles/xmrstak_cuda_backend.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 88%] Linking CXX executable bin/xmr-stak [ 88%] Built target xmr-stak [ 91%] Linking CXX shared library bin/libxmrstak_opencl_backend.so [ 91%] Built target xmrstak_opencl_backend Makefile:129: recipe for target 'all' failed make: *** [all] Error 2
The solution is simple as said, just export CC and CXX before compilation in the same terminal console:
myuser@srv:~$ export CC=/usr/bin/gcc-6 myuser@srv:~$ export CXX=/usr/bin/g++-6
One thought on “Install xmr-stak 2.4 in a machine with NVIDIA video card under Ubuntu 18.04 LTS”