Build your own Ethereum Mining Rig, part 2: Linux Setup

In this second installment of our DIY Ethereum mining guide, we’ll look at how to install and configure Linux to setup your rig as an automated, remotely-manageable appliance. Don’t be dissuaded if you’ve never used Linux before—our step-by-step guide makes it simple!

Why Linux over Windows? First, it’s free—and saving ~$100 on the operating system is a big plus when you’re trying to maximize profitability. Other reasons include lesser hardware requirements (Linux is perfectly happy running from a USB stick plugged into ancient hardware!), simpler remote administration capabilities, and oftentimes better stability. The downside of running Linux is that video driver support isn’t on the same level as Windows, and things like GPU undervolting are trickier (but still possible via BIOS mods).

If you missed the hardware portion of our guide, make sure to check it out first. Otherwise, read on.

Build an Ethereum Mining Rig, part 2:  Linux Setup

The following is heavily adapted from my original 2013 Litecoin mining guide, updated for the latest Xubuntu LTS version, the new AMDGPU-PRO drivers, and necessary ethereum mining software (all up-to-date as of 11/29/2017). If you’re a bit nervous because you’ve a complete Linux newbie, don’t be. Simply follow the step-by-step instructions exactly as they’re written, and you’ll be fine. Even if you’ve never done anything like this before, you should be up and running in roughly an hour.

Step 1: Configure BIOS settings

Before we even get to Linux, let’s take a minute to make sure that your mining computer’s BIOS settings are in order. Power on your computer, and press the “delete” key a few times immediately after power on. You should end up in the BIOS configuration area. Do the following, then save & exit:

  • Change power options so that the computer automatically turns itself on whenever power is restored. The reason for this is two-fold: first, it’ll make sure that your miner automatically starts up after a power outage. Second, it makes powering the computer on much easier if you don’t happen to have a power switch connected to the motherboard.
  • Make sure that your USB stick is first in the boot-up order (you may need to have a USB stick attached).
  • Disable all components that you don’t plan to use. This may save a little bit of power, and since your miner will likely be running 24/7, it’ll add up. For me, that meant disabling onboard audio, one of the SATA controllers, the USB 3.0 ports (I only had a 2.0 USB stick), the Firewire port, and the serial port.
  • If you’re running a lot of GPUs (4+), additional tweaks might be necessary to ensure that they’re all recognized by the OS. Exact tweaks vary by motherboard, but setting the PCIe speed to Gen1 is usually a good place to start. No need to change anything now, but make a mental note that you may need to come back and play around a bit if all of your GPUs don’t show up in the OS later.

Step 2: Install Xubuntu Desktop on your miner

Xubuntu is a lightweight version of Ubuntu, a popular Linux distribution. Most other distros should work just fine, but be aware that the GPU drivers require the presence of Xorg, which means server distros that don’t have a GUI will not work properly.

  • Xubuntu 16.04.3 is the latest LTS release at the time of this guide, so that is what I recommend you use. You can download it here.
  • You’ll need to either write the installation ISO image to a USB stick (highly recommended), or burn it to a DVD. If you use a DVD, you’ll need to temporarily hook up a DVD drive to your mining rig for the installation (make sure you temporarily enable your SATA controller if you disabled it in step 1!).
  • Once you have the installation media prepared, you’re ready to install Xubuntu to your miner’s boot device (whether it’s an SSD, mechanical harddrive, or another blank USB stick). Boot using your new installation media (make sure it’s first in your miner’s BIOS boot order list). The Xubuntu installer should appear.
  • Follow the prompts, and make sure to click the “auto-login” box on the last step of the installer (otherwise, all of the default options are fine).
  • When the installation is complete, you should automatically boot into the Xubuntu desktop. Make sure to remove your installation media.

Step 3: Install SSH and package updates

At the Xubuntu desktop, press CTRL+ALT+T to open a terminal window.

  • Install SSH by typing:
    sudo apt-get install openssh-server

With SSH installed, you can unplug the keyboard/mouse/monitor from your miner, and complete the rest of the installation from your desktop computer. Simply download Putty onto your desktop, run it, and enter the IP address of your mining rig (type ifconfig at the Xubuntu terminal to find your miner’s address if you don’t know it—it will probably look like 192.168.0.x). That should bring up a remote terminal session to your miner, which is more or less just like sitting at the keyboard in front of it.

If you plan to manage your mining rig remotely over the internet, you’ll need to forward port 22 on your router to your miner. Make sure that you use a strong Xubuntu password!

Setup should be pretty quick from this point, as now you can simply copy text from this webpage (highlight it and press CTRL+C) and then paste it into your Putty session by simply right-clicking anywhere inside the Putty window. I highly recommend that you complete the remainder of the guide in this manner, as it eliminates the risk of typos!

  • Install package updates by typing (or copying & pasting via right-click into Putty) the following command:
    sudo apt-get dist-upgrade

Step 4: Install AMDGPU-PRO drivers

Next up, we’ll install AMD’s video drivers. AMD has special blockchain compute drivers available for mining that give far superior performance compared to their standard drivers, so that’s what we’ll be using (version 17.40, which is the latest as of 11/29/2017).

  • Type the following commands (press “enter” and wait for the operation to complete at the end of each line):
    cd ~/Downloads
    wget --referer=http://support.amd.com https://www2.ati.com/drivers/linux/beta/ubuntu/amdgpu-pro-17.40-483984.tar.xz
    tar -Jxvf amdgpu-pro-17.40-483984.tar.xz
    cd amdgpu-pro-17.40-483984
    ./amdgpu-pro-install -y
  • Some of these steps may take a minute or two to complete. When the installation is complete, type the following:
    sudo usermod -a -G video $LOGNAME
  • Next we need to install and configure the ROCm component:
    sudo apt install -y rocm-amdgpu-pro
    echo 'export LLVM_BIN=/opt/amdgpu-pro/bin' | sudo tee /etc/profile.d/amdgpu-pro.sh
  • Finally we need to enable large page support, which will dramatically improve mining performance. Type the following to open your grub file in nano for editing:
    sudo nano /etc/default/grub
  • Find the line that reads GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”. Modify it to:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.vm_fragment_size=9"
  • Save the file and quit nano by pressing CTRL+X and then answering (Y)es to save the changes. When you’re finished, update grub and reboot:
    sudo update-grub
    sudo reboot

The final command will reboot your rig, which will cause you to immediately lose your SSH (Putty) connection. Wait a few seconds to give the computer a chance to boot, and then re-establish a new connection via Putty, and re-login.

Step 5: Install Ethereum software

(Note: you may skip step 5 entirely if you already have an ethereum wallet address that you intend to use!)

Next up, we’ll install the Ethereum software that will let us create a new wallet address. We’ll need this to store the coins we receive from mining.

  • Type the following to install the necessary ethereum packages:
    sudo add-apt-repository ppa:ethereum/ethereum
    sudo apt-get update
    sudo apt-get install ethereum geth
    
  • Now it’s time to create your Ethereum wallet address:
    geth account new

You’ll be prompted to enter a password, and then to confirm it (use a strong password!). The output will be a long string between two curly braces { }. That’s your new wallet address—make a note of it (highlight it within Putty to copy it to your clipboard).

Important: The combination of the password you just used to create this address *and* the associated encrypted key file is what gives you control over your new wallet address. If you lose either of these, you’ve also lost control of your wallet and all of the coins associated with it—and there is literally nothing that anyone will be able to do to help you. Remember your password, and keep multiple backups of your key file(s)!

Your key file(s) are stored in the ~/.ethereum/keystore directory. Copy the entire /keystore folder someplace safe to backup your wallet (backups are covered in more detail heredon’t forget to make multiple backups and keep them in a secure offline location!).

If you forget your wallet address, you can type geth account list to see your addresses and the location of their key files.

Step 6: Install Claymore’s Ethereum miner

There are several options as far as mining software, and I’ve experimented with all of the popular ones. I think Claymore’s miner is the best option, even if it does have two fairly significant downsides: it’s closed-source, and it’s not free (~1% of your mining time benefits the creator of the miner).

Two alternatives are the stock ethereum miner (ethminer) and Genoil’s fork of the stock miner. They’re both open-source and free, but they have pretty crippling downsides.

The stock ethminer is much slower than Claymore’s miner (by a margin of over 5% on my test rig). In addition, ethminer creates the Ethereum DAG file on disk instead of in GPU memory, which is slow and uses a lot of space (and if you’re running off a USB stick, all those writes may eventually wear it out).

Genoil’s fork seems to be nearly as fast as Claymore’s, and it doesn’t use physical disk space for the DAG, but it’s not stable (at least not for me). It often crashes, especially on startup (whereas I have yet to see a single crash on Claymore’s miner after nearly a week of full-time mining). The author abandoned development months ago, so improvements are unlikely.

So, explanation aside, here is how to setup Claymore’s miner:

  • First return to your downloads directory and grab the latest version (10.2 as of 11/29/2017). I’m pulling the file directly from the author’s Google Drive repository, if the link is broken check here for a newer release or updated link):
    cd ~/Downloads
    sudo apt install curl
    curl -L -o claymore_10.2_miner.tar.gz https://drive.google.com/uc?id=1t25SK0lk2osr32GH623rR8aG2_qvZds9
    
  • Then create a new directory for it, and unpack it there:
    sudo mkdir /usr/local/claymore10.2
    sudo tar -xvf claymore_10.2_miner.tar.gz -C /usr/local/claymore10.2
    
  • Then let’s head over to the installation directory and create a startup script. Note that commands 2-5 below just clean up the installation directory a bit by removing an intermediary directory that was included in the original tar archive:
    cd /usr/local/claymore10.2
    cd Clay*
    sudo mv * /usr/local/claymore10.2
    cd ..
    sudo rm -r Clay*
    sudo chown root:root ethdcrminer64
    sudo chmod 755 ethdcrminer64
    sudo chmod u+s ethdcrminer64
    sudo nano mine.sh
    
  • Nano will open a new blank text file; enter the following into it:
    #!/bin/sh
    export GPU_MAX_ALLOC_PERCENT=100
    ./ethdcrminer64 -epool eth-us-east1.nanopool.org:9999 -ewal YOUR_WALLET_ADDRESS/Miner01 -epsw x -mode 1 -allpools 1 -tt 68
    

    Where it says YOUR_WALLET_ADDRESS, use the address you created in step 5 (you’ll need to put “0x” in front of it). The “Miner01” following your address can be changed to any friendly label that you want to give your miner (only important if you plan to run multiple rigs). It’s easiest to copy the last line from my guide into something like notepad, then replace YOUR_WALLET_ADDRESS with your actual address there, and then copy the finished line into putty via right-click to get everything into nano without typos.

  • Save the file and quit nano by pressing CTRL+X and then answering (Y)es to save the changes, then enter the following to give your new script execute permission:
    sudo chmod +x mine.sh

Note that I’m using nanopool.org as the mining pool here. I’ve tried a few, and it seems to be a top pick, but feel free to pick your own pool. Most don’t require registration, and simply payout to whatever wallet address you supply whenever a certain threshold is met (usually whenever you accumulate 1+ ETH). Assuming you stick with Nanopool, you’ll be able to check on your miner’s status by going to this URL after you start mining: https://eth.nanopool.org/account/[YOUR WALLET ADDRESS]

  • Now is a good time to test things. You can fire up your miner by typing:
    ./mine.sh

You should see the Claymore miner start up. It’ll take a minute or two before it actually starts mining, but it should get there eventually. When you see a scrolling log of outputs that includes non-zero hashrates (expect hashrates in the low to mid 20s for unoptimized GPUs), you’re good to go. If the script fails to start, or you see errors, make sure that you’ve created the script exactly as outlined in the guide.

Press CTRL+C to exit the miner when you’re satisfied that it’s working.

Step 7: Create auto-start scripts

We’re almost done! We want to set up our rigs automatically start mining whenever the rig is powered on. That way, we keep mining losses to a minimum whenever a power outage occurs, and we don’t have to worry about manually starting it back up in other situations.

  • First, install screen:
    sudo apt install screen
  • Then type the following to create a new script in your home directory and open it in nano:
    cd ~
    sudo nano miner_launcher.sh
  • Enter the following text into the editor (substitute your actual Xubuntu username for YOUR_XUBUNTU_USERNAME where necessary!):
    #!/bin/bash
    DEFAULT_DELAY=0
    if [ "x$1" = "x" -o "x$1" = "xnone" ]; then
       DELAY=$DEFAULT_DELAY
    else
       DELAY=$1
    fi
    sleep $DELAY
    cd /usr/local/claymore10.2
    su YOUR_XUBUNTU_USERNAME -c "screen -dmS ethm ./mine.sh"
  • Save and quit nano (CTRL+X), and then type:
    sudo chmod +x miner_launcher.sh
  • Now we need to call our new script during startup; we do that by adding it to /etc/rc.local. Type the following to open /etc/rc.local in nano:
    sudo nano /etc/rc.local
  • Add the following text, right above the line that reads “exit 0” (substitute your own username!):
    /home/YOUR_XUBUNTU_USERNAME/miner_launcher.sh 15 &

Then save and quit out of nano (CTRL+X).

Step 8: Create an alias to easily check on the Claymore miner process

We’re essentially done at this point, but you’ll probably want to manually SSH into your miner from time to time to manually check on your hashrates & GPU temperatures, etc. Creating an alias will make that easy.

  • Type:

    sudo nano .bashrc
  • Scroll to the end of the file, and then add this text above the line that reads “# enable programmable completion…”
    alias miner='screen -x ethm'
  • Save and quit out of nano.

That’s it—you’re done! You’ll probably want to run a full test now. The easiest way to do that is to close your Putty session and power down your miner. Turn it back on and the following should happen:

  1. Your miner should boot into Xubuntu. This may take up to a minute, depending on the speed of your boot device (it’ll be much faster on an SSD).
  2. 15 seconds after Xubuntu has loaded, the Claymore miner will automatically start and begin mining. You might notice the fans on your GPUs spin up a bit when this happens.
  3. You should be able to SSH into your miner at any time and type miner to monitor the miner’s process. To close the screen (but keep the miner running), press CTRL+A, then CTRL+D.
  4. If you ever need to start the Claymore miner manually (because you quit out of it, or kill it, etc), simply type ~/miner_launcher.sh

(update 1/15/2018: **IMPORTANT** please read this if your hashrate is lower than expected!) 

Output from a single budget RX 470 at stock settings running Claymore’s ETH miner. You should see something like this when connecting to your rig via SSH and running your “miner” alias.

Congratulations—you have your own headless linux ethereum miner!

The next section of this guide covers setup under Windows, and then we’ll take a look at optimizing miner settings for better performance.

You can leave a response, or trackback from your own site.

793 Responses to “Build your own Ethereum Mining Rig, part 2: Linux Setup”

  1. Robert L Barnes says:

    Hello CryptoBadger,

    I want first to say Thank you. I followed your guide and currently hashing on 5 Sapphire, Rx 550 GPU’s. Soon, I will have 6!

    However, I do have a few small issues. The most bothersome is my rig will shutdown with a GPU 0 hangs in OpenCL call message. It can run great for a up to a day before this error pops up and freezes the miner. I have read I can disable the watchdog with -WD 0, then if a GPU faults, the miner will run and I can fix it later. My problem is I don’t know where to set this command. What file do I open in Ubuntu or Claymore to fix it. Any help you can offer would be great.

    Again, Thank you.. I do appreciate it.

    Of course anyone that can help with this problem is invited to weigh in.

    Gracias, Amigos!

    • zxc says:

      what’s your hash rate?
      there is absolute no info about rx550 for ETH in whole net

    • Carlos says:

      I have a sapphire pulse rx 550 4g and the drivers seems to install ok but when I start the miner I have the message “No AMD OPENCL or NVIDIA CUDA GPUs found, exit” If I use windows it work find, but you know windows sucks, any suggestion to work it out with linux ?

      • Joschka says:

        Got the same problem with the latest AMDCPU-Pro driver 17.10-429170 and Kernel 4.4 on LinuxMint. Updating the Kernel to 4.8 solve it!

  2. Robert L Barnes says:

    I am happy to say I think I’ve figured out the command line instructions and how to add them to the startup script built above. In my case it will now look like this.

    ./ethdcrminer64 -epool us1.ethermine.org:4444 -ewal YOUR_WALLET_ADDRESS.Miner01 -epsw x -mode 1 -tt 68 -wd 0 -allpools 1 (adding the -wd 0).

    Later, I’m going to toy with -r restart miner mode.

    Hopes this works.. Thanks!

    • CryptoBadger says:

      Hopefully this solved your issue. Just wanted to add that GPU crashes are almost always caused by overclocking or undervolting too aggressively. If you dial your settings back a bit, it’ll probably resolve the random hangs.

      • Robert says:

        Hello,

        Currently I am still running stock out of box. The problem still comes up on occasion, but I can run 40 – 50 hours sometimes before a GPU hangs up. It’s never the same GPU so it’s hard to get a handle on it, but I’ll get there.

        Thank you!

  3. raavi says:

    Should we update from older version of claymore’s mining to new version? Does give better result?

    is better with new amd driver? also how to update?

  4. Trivikrama says:

    Hello,

    I have built a rig with 6 GTX 1070 GPUs on ASUS Z270 AR motherboard with PCIe riser cables. I have installed Ubuntu 16.04 desktop version OS and Nvidia CUDA drivers as well. All the 6 GPUs are powered-up (1500W PSU) and the fans are running as well. But, “ethminer –list-devices” is showing only 4 GPUs. Also, with the Claymore miner, only 4 GPUs are getting detected for mining. As you have mentioned about some tweaks in BIOS for 4+ GPUS, can you suggest any guides or links to resolve my issue ?

    Thanks in advance!

  5. Lauris says:

    I’m at the point of testing the mine script.
    ./mine.sh
    Then i get this error:
    ./ethdcrminer64: 1: ./ethdcrminer64: Syntax error: Unterminated quoted string

    Does anyone have a clue what could be wrong here?

    • Charles says:

      Check your mine.sh file – (sudo nano mine.sh) – I’m guessing you have a quote character in the file somewhere that isn’t closed. Not sure you should have any quote characters in that file given the instructions left by CryptoBadger.

    • Furls says:

      I’m having the same response. I’ve even hand typed the whole text strings. There a no visible quotes in the entry. I’ve even stopped using a remote connection to test if it was my Mac keyboard entry with no luck.

      Here is a copy from my nano.sh file:
      #!/bin/sh
      export GPU_MAX_ALLOC_PERCENT=100
      ./ethdcrminer64 -epool us1.ethermine.org:4444 -ewal MyWalletAddress.Miner01 -epsw x -mode 1 -tt 68 -allpools 1

      /usr/local/claymore95$ ./mine.sh
      Response:
      ./ethdcrminer64: 1: ./ethdcrminer64: Syntax error: Unterminated quoted string

      I feel like I am missing something very simple. Any guidance would be very much appreciated.

      • Charles says:

        I can’t remember if I had this specific conflict, but I did notice that some instructions used at the beginning of the file different shebangs (the part that starts with #!/
        the mine.sh file uses #!/bin/sh and the miner_launcher.sh starts with #!/bin/bash

        I edited the mine.sh file to use #!/bin/bash as the first line. It solve a conflict I was having, but it wasn’t the same issue you are having.

        It is worth a try – you can always go back to the previous file.
        full code (if you don’t want to type the 2 letters in yourself):

        #!/bin/bash
        export GPU_MAX_ALLOC_PERCENT=100
        ./ethdcrminer64 -epool us1.ethermine.org:4444 -ewal YOUR_WALLET_ADDRESS.Miner01 -epsw x -mode 1 -tt 68 -allpools 1

        CryptoBadger: feel free to smack me down if I am responding inappropriately on the forum.
        Good luck to you all!

        • Furls says:

          Thanks for the reply. I attempted the swap wit no luck.

          ./ethdcrminer64: cannot execute binary file: Exec format error.

          Thanks again for trying.

          • CryptoBadger says:

            Are you sure that you installed the 64-bit version of Xubuntu? What do you see if you type “uname -m” at the console (you should see something like “x86_64”)?

          • Furls says:

            ^
            Thanks. I checked and somehow I had converted the wrong iso to img. I had in fact installed the i386 version.

            You nailed it. Thanks again.

  6. Damon says:

    Can anyone help what steps i need to do to get the same Linux setup above completed, but with Nvidia GTX1060 cards? i.e. an updated STEP-4 for Nvidia GTX1060 cards. Thanks in advance!

    • hvalentino says:

      can you share it with me if you get the answer? 🙂 thanks man!

    • Johnny5 says:

      I got working using the driver from
      http://www.nvidia.com/download/driverResults.aspx/118290/en-us

      LINUX X64 (AMD64/EM64T) DISPLAY DRIVER

      Version: 375.66

      Installation instructions: Once you have downloaded the driver, change to the directory containing the driver package and install the driver by running, as root.
      sudo chmod +x NVIDIA-Linux-x86_64-375.66.run
      sudo ./NVIDIA-Linux-x86_64-375.66.run

      • alicecoltrane says:

        when I installed the drivers I got stuck in a login loop, where when I type in my password, it keeps going back to an empty field again. any suggestions?

  7. Anonymous says:

    Hello all,

    Amazing guide and help here!

    I think i might be using the open source AMD drivers. Here is what i get when i check the driver in use.

    ~$ lspci -nnk | grep -i vga -A3 | grep ‘in use’
    Kernel driver in use: i915
    Kernel driver in use: amdgpu
    Kernel driver in use: amdgpu
    Kernel driver in use: amdgpu
    Kernel driver in use: amdgpu
    Kernel driver in use: amdgpu

    Aren’t I supposed to see, Kernel driver in use: fglrx_pci?

    I have 5- XFX RX580 working at what I assume are lower than peak performance based on these hash rates.
    ETH: GPU0 22.167 Mh/s, GPU1 22.205 Mh/s, GPU2 22.208 Mh/s, GPU3 22.193 Mh/s, GPU4 22.202 Mh/s

    Can anyone walk me out of the woods?

    • CryptoBadger says:

      The proprietary fglrx drivers are no longer supported by AMD in Ubuntu 16.04+. The AMDGPU drivers are usually the best choice, so everything looks good there.

      As far as your hash rates, those are completely normal for stock cards running at factory settings. You can do considerably better by modifying your GPU BIOS – I have a guide for that here.

  8. Shoufly says:

    First let me say Amazing guide and info your providing bro. I am a COMPLETE NOOB… but have ordered all of my hardware exactly from your list. The only changes I have are as follows.

    PSU – I got a EVGA SuperNOVA 1200
    GPU’s – I ordered SIX EVGA – SuperClocked NVIDIA GeForce GTX 1070 8GB

    My question is about the drivers… I read this post

    Can anyone help what steps i need to do to get the same Linux setup above completed, but with Nvidia GTX1060 cards? i.e. an updated STEP-4 for Nvidia GTX1060 cards. Thanks in advance!

    The Answer someone posted was….

    got working using the driver from
    http://www.nvidia.com/download/driverResults.aspx/118290/en-us

    LINUX X64 (AMD64/EM64T) DISPLAY DRIVER

    Version: 375.66

    Installation instructions: Once you have downloaded the driver, change to the directory containing the driver package and install the driver by running, as root.
    sudo chmod +x NVIDIA-Linux-x86_64-375.66.run
    sudo ./NVIDIA-Linux-x86_64-375.66.run

    Will the same drivers work for the GTX1070’s?

  9. jake says:

    when I try to fire up my miner with ./mine.sh it says permission denied

  10. jake says:

    also lets say the issue comes from the pool itself for example what is the nano script for https://nanopool.org/
    thank you so much

  11. Owen says:

    I’m trying to follow your directions to the letter (well, except I’m using an AMD cpu & motherboard), but when I enter the command to run the miner, ./mine.sh, I get this:

    ����������������������������������������������������������������ͻ
    � Claymore’s Dual ETH + DCR/SC/LBC/PASC GPU Miner v9.5 �
    ����������������������������������������������������������������ͼ

    no address specified – ignore
    no address specified – ignore
    ETH: 1 pool is specified
    Main Ethereum pool is us1.ethermine.org:4444
    No AMD cards in the list.
    No NVIDIA CUDA GPUs detected.
    No AMD OPENCL or NVIDIA CUDA GPUs found, exit

    I can’t for the life of me figure out what I did wrong.
    The drivers seemed to install fine, and I’ve been mining on my windows pc for a while, so I feel OK about setting up Claymore.

    I AM fairly new to linux, so there’s a good chance it’s something really simple that I overlooked.

    • CryptoBadger says:

      What video cards are you using? It looks like Claymore doesn’t see them, which is usually a driver issue.

      Do you see your video cards enumerated if you type this at the prompt? :

      lshw -numeric -C display

      (you should see one indented block of text starting with “*-display” for each GPU)

      Assuming your cards are there, what do you see if you type this? :

      sudo lshw -c video | grep configuration

      You should see your GPUs here, along with the video driver they’re trying to use (AMDGPUPRO or something similar if they’re AMD cards).

      • Owen says:

        Thanks for the reply!
        I managed to figure it out actually, I just forgot to turn off MS Secure Boot in the BIOS.

        Again though, thanks for the guide, it really got me through the trickier parts, and I’m finally starting to feel comfortable with the command line!

      • dilkington says:

        I have this problem and I tried with secure boot on and off.
        In the GRUB config I had to add “nomodeset” for xubuntu to actually boot without a monitor. Could this be the problem?
        “lshw -numeric -C display” – I see all my GPUs
        “sudo lshw -c video | grep configuration” – I get this:
        configuration: latency=0
        configuration: latency=0
        configuration: latency=0

        Please help!

  12. Siman says:

    Pretty new to linux in general so I looked all over the net for this before posting. Is anyone else getting this error?

    -epool: error while loading shared libraries: -epool: cannot open shared object file: No such file or directory

    I’m running Ubuntu 16.04.

  13. Siman says:

    Sorry if I’m leaving the same comment twice, I tried commenting earlier but I don’t see it up here.

    I’m getting the following error when trying to run the mine.sh as described above:

    -epool: error while loading shared libraries: -epool: cannot open shared object file: No such file or directory

    Not super familiar with linux so I might be missing something obvious. I followed the instructions to the letter EXCEPT that I already have a machine running Ubuntu 16.04 so that’s my OS. Could that be the problem? Is there an extra step I should take to fix this in Ubuntu?

    Thanks!!!

  14. Stan says:

    PLEASE if someone could help.
    Im a little confused and if I could get some help that would be greatly appreciated.

    When I did “geth new account” it gave me a sequence of numbers and letters that are 40 characters long. Isnt it supposed to have a “0x” in front of the address that it generated for me? When I create the startup script and input the wallet address do I put the “0x” in front of the address geth created for me or do I just input the address without it?

    • Zvone says:

      Try adding 0x. If that does not help, try generating new wallet on http://www.myetherwallet.com and take care you carefully saves/writes passwords/private keys.

      • Stan says:

        I left the program running for the last 12+ hours with 0x in front of the wallet address and nothing has showed up in the account. The address is ae7c9fd7d35021c4b3823a4b7daa5176d64662f9.

        • mikecc333 says:

          @Stan – it looks like the wallet address without the “0x” in front is being recognized. You likely won’t see a deposit into your ETH wallet until you’ve mined an entire ETH – at the rate you are mining that will be multiple weeks.

          But it is mining and you can track progress here:

          ethermine.org/miners/ae7c9fd7d35021c4b3823a4b7daa5176d64662f9

    • CryptoBadger says:

      Hi Stan,

      Yes, there should be a “0x” in front of your wallet address. I’m actually surprised that nobody else has commented on this before. Thanks for pointing it out – I’ll add a note to my guide.

  15. Alp Goksoy says:

    it keeps saying permission denied even if I chnage pool can someone help me please

  16. Gal Appelbaum says:

    Hi,

    I went through the whole process and it WORKED! with an R9 290 card. I swapped to a RX 480 to test it and the miner gets stuck in:

    “AMD Cards available:1
    GPU #0: Ellesmere, 3753 MB available, 36 units
    GPU #0 recognized as Radeon RX 480/580
    Pool/SOLO version”

    and then it doesn’t do anything…. the R9 290 went on to mine for a bit… But this got stuck there. What do I do?

  17. Alexander Timberlake says:

    I get the following error when trying to execute step 3:

    I typed: sudo apt-get install openssh-server

    and received an Err 1 and Err 2. The Cmd window ended with a message below

    failed to fetch http //security.ubuntu.com/ubunu/pool/main/o/openssh/openssh

    I really have no idea what I am doing. Can someone explain what all of the major steps are achieving and help me troubleshoot?

    Do I need to connect to the internet before doing this? I don’t seem to have an internet connection.

  18. Akhil says:

    Hey CryptoBadger,

    Great info on the setup!

    I was able to setup my ether mining rig by installing Xubuntu annd using 1 GeForce GTX 1050Ti GPU.

    I was able to get a hash rate of~ 12Mh/s

    However, when i plugged in 5 additional GPUs since I have a total of 6, I was not able to get any display from any HDMI ports for my monitor. I tried to mess around with BIOS with just 1 GPU but everytime i would have 6 GPUS connected, there was no display on Monitor.

    I then tried booting with 1 GPU so i can get display and then adding the others once I boot Xbuntu. When i run miner, only 1 GPU mines and others are not detected.

    here are my questions and i really appreciate your help.

    1) What am i doing wrong with multiple GPUS?

    2) How can I get a better hashrate than 12Mhz. I was expecting ~20Mhz.

    Thank you for all you do!

    • Charles says:

      I ran into the same situation with the GPU/monitor conflict. The best workaround that I found was to take CryptoBadgers advice and SSH into your mining rig through another computer. You can do everything you need from the separate computer. I unplugged all the GPUs. Set up the SSH software. shutdown mining rig. plug in 1 GPU. restart and follow the rest of the steps over the SSH connection. Setup mining with 1 GPU. Then shutdown the mining rig, plug in remaining GPUs, then restart. You should see all of your GPUs up and running when you SSH back into the rig.
      I don’t know if this helps, but these steps worked for me after beating my head against the wall for about a week trying to fix the GPU/monitor conflict.

      Good luck!

      • Al says:

        I can confirm that the Nvida GTX MSI 1050 4G does 12mhs I bought one as a tester… as for the MSI Z170 gaming 5 motherboard I agree you need some bios config to use over 4 cards but it’s not that bad simply go to Settings>Advanced>PCI subsystem Setting Above 4G Decoding set to Enabled.

    • CryptoBadger says:

      What motherboard do you have? What happens if you connect only 2 GPUs?

      I don’t have any GTX 1050s of my own, but I believe ~12 MH/s is pretty typical for that GPU. The GTX 1060 does roughly 20 MH/s, and the 1070 will go as high as 30 MH/s or so.

  19. Jake says:

    Hi, great guide! i managed to get my rig up and running in few hours following it to the letter =)

    however i see some errors when i start claymore, it says “AMD ADL library not found” will that be a problem?

  20. Tobias T says:

    Hello, thanks for the guide. Im getting this when trying to start up the miner. What should i do? 🙂

    ./ethdcrminer64: 1: ./ethdcrminer64: Syntax error: Unterminated quoted string

  21. Jack says:

    Here’s my log, the hashing never starts, it keeps adding lines showing my 6 gpus with their temps, but no hashing, any idea what’s wrong ?

    ????????????????????????????????????????????????????????????????ͻ
    ? Claymore’s Dual ETH + DCR/SC/LBC/PASC GPU Miner v9.5 ?
    ????????????????????????????????????????????????????????????????ͼ

    This pool (eth-eu2.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.This pool (eth-eu2.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.Pool eth-eu2.nanopool.org removed from the list
    This pool (eth-us-east1.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.This pool (eth-us-east1.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.Pool eth-us-east1.nanopool.org removed from the list
    This pool (eth-us-west1.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.This pool (eth-us-west1.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.Pool eth-us-west1.nanopool.org removed from the list
    This pool (eth-asia1.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.This pool (eth-asia1.nanopool.org) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.
    However, you can mine on this pool if you specify “-allpools 1” option, default pools (different from this pool) will be used for devfee.
    Please read “Readme” file for details.Pool eth-asia1.nanopool.org removed from the list
    ETH: 1 pool is specified
    Main Ethereum pool is us1.ethermine.org:4444

    Catalyst 15.12 is REQUIRED for best performance and compatibility
    For Polaris cards, use latest drivers
    At least 16 GB of Virtual Memory is required for multi-GPU systems
    Make sure you defined GPU_MAX_ALLOC_PERCENT 100
    Be careful with overclocking, use default clocks for first tests
    Press “s” for current statistics, “0”..”9″ to turn on/off cards, “r” to reload pools, “e” or “d” to select current pool
    OpenCL initializing…

    AMD Cards available: 6
    GPU #0: Ellesmere, 3965 MB available, 32 compute units
    GPU #0 recognized as Radeon RX 470/570
    GPU #1: Ellesmere, 4020 MB available, 32 compute units
    GPU #1 recognized as Radeon RX 470/570
    GPU #2: Ellesmere, 4020 MB available, 32 compute units
    GPU #2 recognized as Radeon RX 470/570
    GPU #3: Ellesmere, 4020 MB available, 32 compute units
    GPU #3 recognized as Radeon RX 470/570
    GPU #4: Ellesmere, 4020 MB available, 32 compute units
    GPU #4 recognized as Radeon RX 470/570
    GPU #5: Ellesmere, 4020 MB available, 32 compute units
    GPU #5 recognized as Radeon RX 470/570
    POOL/SOLO version
    GPU #0: algorithm ASM
    GPU #1: algorithm ASM
    GPU #2: algorithm ASM
    GPU #3: algorithm ASM
    GPU #4: algorithm ASM
    GPU #5: algorithm ASM
    No NVIDIA CUDA GPUs detected.
    Total cards: 6
    AMD ADL library not found.
    ETH: Stratum – connecting to ‘us1.ethermine.org’ port 4444
    ETHEREUM-ONLY MINING MODE ENABLED (-mode 1)
    ETH: eth-proxy stratum mode
    “-allpools” option is set, default pools can be used for devfee, check “Readme” file for details.
    Watchdog enabled
    Remote management (READ-ONLY MODE) is enabled on port 3333

    GPU0 t=29C fan=22%, GPU1 t=31C fan=22%, GPU2 t=32C fan=22%, GPU3 t=35C fan=22%, GPU4 t=32C fan=22%, GPU5 t=29C fan=22%

    • Jack says:

      I didn’t install or run Geth, because I already had an ethereum wallet, could this be why I get no hashing ? Does Geth need to be run once ?

  22. Saritta Hines says:

    Thank you so much for this guide! I finally got everything up and running and am hashing away. I have another RX580 coming tomorrow and i will play around with the setting to get a higher hash rate with lower electrical cost…Thank you again

  23. Ryan says:

    I’m running 16.04 – Kernel 4.8

    I’ve installed the latest AMD drivers, and am still getting stuck at

    No AMD cards in the list.
    No NVIDIA CUDA GPUs detected.
    No AMD OPENCL or NVIDIA CUDA GPUs found, exit

    Any idea on how to fix? Thanks in advance!

  24. Al says:

    I installed a few rigs successfully with this guide but it seams I am having trouble with step 4 now when installing AMD drivers? on the third line it says file format not recognized

    any advices guys?

    ethereum-01@ethereum-01:~/Downloads$ tar -Jxvf amdgpu-pro-17.10-414273.tar.xz
    xz: (stdin): File format not recognized

    when I keep on going with the instructions it gives me messages I did not see on my other rigs…

    ethereum-01@ethereum-01:~$ cd ~/Downloads
    ethereum-01@ethereum-01:~/Downloads$ wget –referer=http://support.amd.com https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-17.10-414273.tar.xz
    –2017-06-21 06:47:38– https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-17.10-414273.tar.xz
    Resolving www2.ati.com (www2.ati.com)… 23.222.23.137
    Connecting to www2.ati.com (www2.ati.com)|23.222.23.137|:443… connected.
    HTTP request sent, awaiting response… 200 OK
    Length: 121371564 (116M) [application/x-tar]
    Saving to: ‘amdgpu-pro-17.10-414273.tar.xz.3’

    amdgpu-pro-17.10-41 100%[===================>] 115.75M 3.85MB/s in 30s

    2017-06-21 06:48:07 (3.91 MB/s) – ‘amdgpu-pro-17.10-414273.tar.xz.3’ saved [121371564/121371564]

    ethereum-01@ethereum-01:~/Downloads$ tar -Jxvf amdgpu-pro-17.10-414273.tar.xz
    xz: (stdin): File format not recognized
    tar: Child returned status 1
    tar: Error is not recoverable: exiting now
    ethereum-01@ethereum-01:~/Downloads$ cd amdgpu-pro-17.10-414273
    bash: cd: amdgpu-pro-17.10-414273: No such file or directory
    ethereum-01@ethereum-01:~/Downloads$ ./amdgpu-pro-install -y
    bash: ./amdgpu-pro-install: No such file or directory
    ethereum-01@ethereum-01:~/Downloads$

  25. H0wzer says:

    Does anyone have a solution to this:
    GPU0 t=42C fan=0%, GPU1 t=37C fan=0%
    GPU0 t=42C fan=0%, GPU1 t=37C fan=0%
    GPU0 t=41C fan=0%, GPU1 t=37C fan=0%
    GPU0 t=41C fan=0%, GPU1 t=37C fan=0%
    Miner thread hangs, need to restart miner!

Leave a Reply