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 (I’ll cover backups in detail in a later section of this guide).

If you ever 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 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
    

    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

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.

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

  1. James says:

    Ah I see, it is a 15 second delay, thanks for writing such a helpful guide!

    • haneet singh says:

      Hi… everything works like a charm except for autostart… when i manually try to launch miner_launcher.sh .. I get following errors:

      ./miner_launcher.sh: line 3: [x: command not found
      sleep: missing operand

      Please help.

      PS: using Claymore V10, 7*1050ti

  2. n00b says:

    Hello People:

    I get stucked when tryin to run Claymore:

    $sudo ./mine.sh

    It gives me the following error:

    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

    Any hints? N00b

    • Slicxx says:

      the error says that you dont have a GPU installed, this can have several reasons!
      First, check if you driver is installed correctly, it its part 4 of the guide!
      if it does not help, check all the connections – Both ends of the riser cable, power cable for riser, and powercable ob the GPU!
      I want to mention that a powered raiser-card wont work without the power-cable(via molex, sata or often 4pin) wont work!

      Let me know about your mining status, if you cant fix the problem (:

      • Anonymous says:

        Hi everyone

        I noticed recently if you do a dist-upgrade, amd driver will fail to install. Perhaps this is the issue?

    • Anonymous says:

      sudo usermod -a -G video

  3. Nick says:

    Works fine with 4 x GPU, but when 6 x GPU is hooked up I would get this message after an hour of mining. I can close the terminal and re-open it, but after another hour or so I get the same message.

    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.

  4. imuttley says:

    Hello,

    When running “miner” i get;
    There is no screen to be attached matching ethm

    • memdial says:

      I’m also getting the There is no screen to be attached matching ethm error, not sure the script is properly running on startup as expected from rc.local. I noticed that when I run the miner_launcher.sh manually that it asks for a password, possible why that never fully runs?

      • Anonymous says:

        im not an expert but it sounds like some permission issue! after the reboot it takes 15 seconds until miner will be attached – just check if you copied everything right and, used chmod +x where you should and named the scripts right!

        good luck (:

  5. Big Al says:

    Any one knows the new command line for the new drivers 17.2

  6. Philippe says:

    I have created a ethereum wallet with ‘geth account new’. After how can I check my account wallet to see how many ethereum I own. I did not get it or it’s missing in this tutorial.

    Thank for your help

  7. CashTree says:

    Hi, thank you very much for this tutorial, certainly the best in the Internet. I’m dual mining ETH and SIA with 2*RX580 and 1*Rx570, however still 2 remaining issues to be solved:
    – I’ve setup both Windows and XUbunto – XUbunto is more stable, works like a charm, but it consumes 590W on the wall – the exact same setup, with Windows, consumes 500. All cards have modded bios including undervolting, however it looks like the driver over-rides the power settings on the firmware…
    – Since I started using risers (v007), my HW problems started. While all cards work individually with those risers, if I connect all of them via risers I have problems (both Windows and Linux). The only stable way I found so far was one card connected on the full PCIE slot (with monitor attached to it) and the remaining with risers. If I connect a riser to the exact same slot and same card, problems start. I know I could point risers guilty, but individually they work…
    Glad to get some help 😉

    • deadman.walking says:

      It’s the first time I hear about this issue, and I believe is because the risers, can you try with USB risers rev 6?

  8. Garry says:

    Is there any software that can be installed to overclock the GPUs? I’m trying to set the cclock and mclock ing claymore but it doesn’t work, I’m also getting permission issues with fan speed settings.

    • deadman.walking says:

      Not under Linux, thats why you make BIOS mod to the RX cards, with the GTX you have to run under Windows to overclock/undervolt as theres no way to modify them in Linux as GTX uses propietary drivers

  9. David Smit says:

    Excellent tutorial! I have been looking for a way to run a headless mining rig. I am running Ubuntu 16.04 with Claymore’s Dual Miner 9.5 and the most recent drivers for my 6xRX470 GPUs. It is running relatively smoothly, apart from the fact that my mobo does not like booting up without a monitor attached. However, I do have a bit of an issue regarding errors concerning an OpenCL call which forces the miner to reboot. Except it doesn’t reboot. It freezes and makes the whole rig inaccessible, even through SSH. Any ideas what this could be? Because it is getting rather annoying not to be able to use the startup scripts as mentioned in this tutorial

    • John says:

      Power related failure in my experience. Only use 2 powered risers per sata cable. I know there is three per ribbon, but three causes random gpu hangs.

      Make sure your load per rail is within your PSU capability. One VGA per vga power cable even though there is two 6 or 8 pins per cable.

      One exception to this is cards below 60w TDP.

      Lastly change your risers out. Kill the watchdog in claymore and replace the powered riser on problematic gpus.

      Hope this helps.

      • David Smit says:

        Thank you very much! That actually seemed to be the issue. Rewired the GPUs and they are running smoothly now. Amazing how simple this fix actually is. Especially considering a lot of people seem to struggle with the same issue and cannot find any solution to it. You’re a hero!

      • David Smit says:

        Alas, I spoke too soon. Although the rig does seem to prefer the cabling as you suggested, I keep getting the same (random) openCL call errors. I guess I will have to change risers again. Third batch so far. It is getting quite annoying to have to reboot the rig every 2 hours. Thanks anyway.

        • Slicxx says:

          Hey David, i got the same errors aswell, did you overclock?
          openCl errors are often a result of different drivers and overclocking!
          try installing other drivers(after removing old ones, guide is on official amdgpu-pro download site).

          of it wont help, you need to lower you overclocks! it worked for me, after delaying me for 2 weeks^^

          • David Smit says:

            Hey Slicxx,

            My cards are pretty much stock, as in I did not do any overclocking or modding in any sense of the word. Mind you, the tip about having no more than 2 GPUs per Sata cable did result in better overall performance.
            When I checked the rig earlier, I found that, after the changes I had made to the cables, the GPUs were running at anywhere between 68C and 73C, with the fans running at 23%. Seems a bit low. I suppose this can be controlled from within Claymore. But perhaps it does have something to do with the errors I get.

          • Robert T says:

            It’s not a good idea to use SATA connectors to power your risers. Aside from the fire hazard that some people say, the connectors themselves can only carry 1.5 amps on the 12v line (for 18watts). Molex connectors can carry 11A on 12v in comparison.

            http://www.tomshardware.com/forum/355945-28-does-molex-connector-provide-power-sata-power-connector

            The PCI slots can deliver up to 75 watts to the card. So if the GPU is designed to take up to 75 from the PCI slot, but gets only 18 from the connector, the rest has to come from the PCI-e power connector which can cause other issues. So you can imagine what the voltage regulator must be going through and thus you have stability issues.

            http://www.geeks3d.com/20101108/tips-maximum-power-consumption-of-graphics-card-connectors/

  10. Jordan says:

    Hey all, I’m having trouble when I get to running mine.sh

    getting error where putty outputs:

    ./ethdcrminer64: error while loading shared libraries: libOpenCL.so.1: cannot open shared object file: No such file or directory

    Very little experience, sorry.

  11. Ck says:

    Hi there,
    What about the amd dag fix driver in Linux? Have you tried the 17.30 driver under Ubuntu 16.4.02 with claymore 9.8 ?

  12. isaac says:

    When I first build my rig i was directed that SimpleminerOS which uses Clymore would be best to use. It is very simple for sure. Can you explain some benefits over simpleminerOS that XUbuntu with clatmore would have. Also, I use a private wallet on my own computer, is it better to geth?

    • CryptoBadger says:

      I haven’t used any of the pre-packaged mining distros, so I can’t really comment on pros/cons in depth. If you’re using Claymore and recent AMD drivers, then performance will likely be nearly the same either way.

  13. ben says:

    I think I need some help. I have followed everything correctly and double checked it but I just get this response. It is the same response I get on a reboot after the time delay. Have I overlooked something here?

    ben@miner01:~$ ~/miner_launcher.sh
    Password:
    bash: screen: command not found

    Also, on a side note, my xubuntu is booting into a GRUB prompt every single time. No SSH avail until I type “exit” on the GRUB terminal first. How do I get rid of this so it goes straight to xubuntu cmd line?

    Cheers.

    • CryptoBadger says:

      Are you sure that you installed screen? Try typing “sudo apt install screen” (without quotes) at the prompt.

      • Ben says:

        No I didn’t install screen. Did I miss that above? I ended up giving up and temporarily going to windows 10 to dial in my cards. I want to set things up eventually on linux again so I will try again next few days. Thanks for the help.

  14. Zelda says:

    Many issues above with AMD driver problems and Ubuntu black screens. I’ve experienced some of these myself. Wondering if this bulletin might have something to do with the observed problems:
    https://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-Driver-Compatibility-Advisory-with-Ubuntu-16.04.2-and-16.04.3.aspx

    • CryptoBadger says:

      Thanks for the heads-up – a few people have written about issues that match the description of those described in the bulletin recently. Updating to 16.04.03 is probably the culprit – hopefully Canonical & AMD can get things sorted out quickly!

  15. John says:

    Hi… I have 2 tesla c2075 and i would like to give it a shot…. Do i need a third card for display or can i just use any DVI out from any of the teslas ?

    • Slicxx says:

      I’m sorry, but dont even try it with The Tesla c2075.
      You will only get about 4-7 Mh/s per card, and a VERY VERY HIGH power consumption. The architecture is similar to a gtx 580 – its… really bad. you wont even get your money for the power back.

      But to aswer your question: you dont need a 3rd card. just use one output, from your “1st” card in the rig. should in theory work, but most likely not with these cards.

      Greeting!

      • John says:

        Thanks for your reply….. How about NVidia Quadro 6000 ?? And also M6000 ?

        • Slixxx says:

          Sadly the Quadro 6000 is absolut traah for eth mining, instruction sets of gaming-gpus work just so much better.

          im not sure about the M6000, it should generate 10-15 mh/s, at a maximum! its just a guess on the m6000, but what i know for shre is that it is not profitable to mine with it 🙁

          sadly we all need gaming gpus, like the Rx 580/480, nvidia gtx 1070/1080 or the new rx vega 64/56 wich sold out in under 2 minutes yesterday..

  16. tony says:

    this was a fantastic guide and really well written, so thanks so much for this.

    I’m an IT/network admin, who’s dabbled with linux now and again for many years (mostly ibm gpfs installations and looking after network configs or disk space etc), however, i’m still fascinated how all the commands are so “out there”. Without knowing the names of the repositories, or the names of the installers or the usermod parameters for the gfx card, i wouldn’t have stood a chance of getting this off the ground.

    again, thanks for your help. once up and running (not quite there) i’ll certainly send a donation your way.

    all the best.

  17. RobertMiner says:

    Hello CryptoBadger,

    Or anyone else who can help. Ok, My miner is running fine. I am hashing on 6 – Sapphire, 580rx’s.

    Everything went well in setting up the miner except I lost the video output of my Motherboard and GPU’s after installing the AMD drivers. Luckily, I could SSH into the rig, complete the setup and operate it to mine.

    What my question is how do now I retrieve and check of my Eth coins in my Geth Wallet? I can go into the ~/.ethereum/keystore directory and see the keyfiles, and I know Eth is being sent to the associated wallet from the mining pool, and I of course have the password, but how do I check balances and make transcactions? Since this rig is actually mining do I still need to grp-geth as well and have it running and synced in order to access this Eth wallet. I actually now have 3 coins in this wallet and I would like to get this issue resolved soon.

    Sorry, I am completely new to this and I don’t know anyone who mines, so I need to ask these questions on-line and hope for some helpful guidance.

    As a secondary question. Is there anything I can do to regain the video output of my GPU’s on this mining rig?

    Thank you!

    • CryptoBadger says:

      You can check your wallet balance using an online blockchain explorer, such as this one (just put your wallet addess in the search box at the top right). When you want to transfer your ETH, I recommend this method over trying to use geth.

      As far as the video output on your rig, it sounds like you’re a victim of this issue. If things are working properly (other than video output), I’d just sit tight and wait for a fix to be released.

      • RobertMiner says:

        Hello CryptoBadger,

        Thank you for your previous help. Now, keeping in mind I am really new to this. As in my previous query. I have no video output on my miner. I can only SSH into it. I finally have Mist synced up on a second PC and I am ready to import the keystore file from my mining rig, but how do I do it? I’ve tried to create a word file by copy and pasting, that doesn’t seem to work, and I have no clue on how to get it into a JSON format. Can you offer me some direction on this? I now have 4 Eth coins and I would really like to feel I have them in a secure location that I have access too. I’d be grateful for any help. Thank You!

        • CryptoBadger says:

          You’ll need to copy the actual key files from your mining rig (assuming you created your wallet there using geth like I describe in my guide). Read this for help locating your key files. Make sure to back your keys up – if you lose them, you lose all of your ETH, too!

          Once you have your keys copied, you can simply import them into Mist (if you’re running Mist on a Windows PC, you can just copy your keys to %APPDATA%\Ethereum\keystore).

          • RobertMiner says:

            Thank you again CryptoBadger,

            But my question is not really being addressed. How do I copy these files? I can only SSH into my Mining Rig remotely. I lost the video output as explained in the thread of this message. I can locate the keyfiles on my mining rig, but how do I copy and export them off of my mining rig. Do I use some type of sudo cp command? Can I copy and paste the file contents and then create a usable text file to import the keyfile into Mist?

            Sorry for the knob questions, but I have my first 4 eth coins in this geth wallet I setup when using the guide that I am hoping to recover.

            If worse comes to worse do I need to sync Geth on my mining rig, using geth-rpc and use the command line to send the coins to my Mist Wallet?

            Thank You!

          • Zelda says:

            If you can ssh into your rig, you can use scp to copy files from the machine. Here’s some examples of scp and its syntax. Good luck retrieving your coins!

          • RobertMiner says:

            Zelda,

            Thank you for your kind direction!

            Regards!

  18. John says:

    Good day everybody…. Has anyone tried with nvidia quadro 6000 or M6000 ??? I would like to give it a try…. Thanks !!!

  19. toens says:

    Thanks for this detailed guide. It all worked fine for me sp far, except, that claymore cannot adjust the fanspeed. All 6 AMD GPU are detected and fire up, but I’ve to shut everything down a few seconds later, because the cards get very high in temperature very quickly! And the fans do not adjust, claymore points that it has no root privileges, so it cannot adjust fans; I tried with chown and chmod but had no success. Any body ran in similar problems? Any ideas or help?
    Thanks

  20. Alex says:

    Hello guys,

    Great article!! But I am having the following error:

    ./ethdcrminer64: error while loading shared libraries: libOpenCL.so.1: cannot open shared object file: No such file or directory

    Do you have any idea regarding this? I am using CentOS 6.9

    Thanks

    • Robert T says:

      OpenCL is installed with the AMD driver, I think. Confirm that the AMD driver installed is compatible with your version of CentOS, and is recognized and go from there.

  21. Frank says:

    I have my rig up and running but all of my DCRED shares are being rejected once I start claymore. My mh/s for the DCRED pool are way up there…in the 600 range. Everything on ETH is working fine with mh/s around 20-22. I’m running rx 470 4 gb cards with no mods, out of the box basically. What could be my issue with the DCRED? Is there any utility for xubuntu that i can use to adjust the cards or flash them? Any help would be appreciated.

  22. Tom says:

    Hi Cryptobadger!

    There is a new Driver for DAG Issues, at least for windows:
    Radeon Software Crimson ReLive Edition Beta for Blockchain Compute

    http://support.amd.com/en-us/kb-articles/Pages/Radeon-Software-Crimson-ReLive-Edition-Beta-for-Blockchain-Compute-Release-Notes.aspx

    Is there an update for your guide to the correct mewest xubuntu version of this driver?

    I tried
    wget –referer=http://support.amd.com https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-17.30-1029.tar.xz

    but only got ” ERROR 404: Not Found.”

    • CryptoBadger says:

      Unfortunately AMD has yet to release a linux version of the DAG-fix driver. Hopefully they haven’t decided to ignore linux, especially since such a large part of the mining community runs linux-based rigs.

  23. Zelda says:

    These Linux setup instructions show how to use rc.local to start mining on every reboot, but a more up-to-date and convenient approach uses systemd instead. Pretty straightforward.

    In /etc/systemd/system, create a file called mineclay.service containing:
    [Unit]
    Description=Claymore Miner

    [Service]
    Type=oneshot
    RemainAfterExit=true
    ExecStart=/etc/init.d/mineclay start
    ExecStop=/etc/init.d/mineclay stop

    [Install]
    WantedBy=multi-user.target

    In /etc/init.d, create a file called mineclay containing:
    #! /bin/sh
    # -*- shell-script -*-

    start() {
    echo “Starting claymore mining…”
    /home/user/miner_launcher.sh &
    exit 0
    }

    stop() {
    echo “Stopping claymore mining…”
    pgrep -f ethdcrminer64 | xargs kill
    }

    case “$1” in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart)
    stop
    sleep 5
    start
    ;;
    *) exit 1
    esac

    Make sure the path to miner_launcher.sh is correct for the local user name.
    You can name these something other than mineclay, just avoid collisions with other services.
    chown and chgrp to root, and sprinkle liberally with chmod +x.

    To enable starting the service at boot, enter:
    sudo systemctl enable claymine.service
    If you change your mind later, enter:
    sudo systemctl disable claymine.service

    This has the advantage that you can easily start, stop, or restart mining with the rig running:
    sudo systemctl start claymine.service
    sudo systemctl stop claymine.service
    sudo systemctl restart claymine.service

    Just remember to remove the miner_launch.sh command from rc.local.

    Happy mining!

    • deadman.walking says:

      Hello Zelda, I’m a total n00b in linux, but I followed Cryptobadger’s guide and it worked fine for me, I only have problems with autostart, so I will try your alternate steps to load miner at boot.
      I have 2 questions:
      1. In the begining of your post refer to the miner as “mineclay.service”, and at the last lines yo refer to it as “claymine.service”, Is it a typo? I’ll try naming all the same way, maybe you write that way to see if anyone uses your method…
      2. What do you mean with “chown and chgrp to root, and sprinkle liberally with chmod +x”? as I write before I´m a n00b in linux, and I don’t know how to use those commands, one thing is copy-paste lines in terminal and another is to write the correct parameters.
      Thanks and happy mining

      • Zelda says:

        deadman.walking,

        Apologies for that typo. I changed my mind about what to call it , before settling on /etc/init.d/mineclay and /etc/systemd/system/mineclay.service.

        I don’t have access to the Linux version at the moment (rig running in Windows), from memory you want to do something like this:

        cd /etc/init.d
        sudo chmod 755 mineclay
        sudo chown root mineclay
        sudo chgrp root mineclay

        Enter ls -l to check your work.
        The chmod should have made the permission line rwxr-xr-x.
        The change owner and group should show root root.

        Same thing for mineclay.service:

        cd /etc/systemd/system
        sudo chmod 644 mineclay.service
        sudo chown root mineclay.service
        sudo chgrp root mineclay.service

        Again use ls -l to check your work. (rw-r–r– root root).

        Generally check that things are similar to the other files in init and system.

        Journalctl provides messages about how this stuff is working (or not). Read more here:
        https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs
        You can even write to the systemd journal from your own scripts:
        https://serverfault.com/questions/573946/how-can-i-send-a-message-to-the-systemd-journal-from-the-command-line
        This can be handy if you want to see what order things are happening during boot up.

        Hope this helps. Let me know if you get it working!

        • deadman.walking says:

          Thanks Zelda for answering in sunday, I was trying with:
          sudo chown root mineclay
          sudo chgrp root mineclay
          sudo chmod +x mineclay

          So far, no error (nor success) messages, but when I write:
          sudo systemctl enable mineclay.service

          Got the message:
          Synchronizing state of mineclay.service with SysV init with /lib/systemd/systemd-sysv-install…
          Executing /lib/systemd/systemd-sysv-install enable mineclay
          insserv: warning: script ‘mineclay’ missing LSB tags and overrides
          update-rc.d: error: mineclay Default-Start contains no runlevels, aborting.

          I guess I should try with your new suggestions, thanks again and best regards

          • Zelda says:

            I received that same message about synchronizing with the old boot sequencer, and just ignored it. But only after wasting lots of time trying to figure out what it meant! 🙂

            On the running system, try using these commands:
            sudo systemctl stop mineclay
            sudo systemctl start mineclay
            sudo systemctl restart mineclay

            Avoid having to go through the whole boot sequence to experiment.
            Then watch the journalctl output carefully to see what’s happening.

            Good luck!

        • deadman.walking says:

          Hello, the only somewhat meaningful message I get in journal is a pcie error, but I don’t think it matters, because always knew I have a PCI-E slot burnt, and when I start the miner manually it runs in any other of the PCI-E slots

          — Logs begin at lun 2017-10-09 07:39:18 CDT. —
          oct 09 07:53:41 minera02 kernel: wlx00e07d0006fc: RX AssocResp from 00:f7:6f:cd:58:28 (capab=0x1431 status=0 aid=1)
          oct 09 07:53:41 minera02 wpa_supplicant[1115]: wlx00e07d0006fc: Associated with 00:f7:6f:cd:58:28
          oct 09 07:53:41 minera02 kernel: wlx00e07d0006fc: associated
          oct 09 07:53:41 minera02 NetworkManager[739]: [1507553621.3400] device (wlx00e07d0006fc): supplicant interface state: associating -> 4-way handshake
          oct 09 07:53:41 minera02 wpa_supplicant[1115]: wlx00e07d0006fc: WPA: Key negotiation completed with 00:f7:6f:cd:58:28 [PTK=CCMP GTK=CCMP]
          oct 09 07:53:41 minera02 wpa_supplicant[1115]: wlx00e07d0006fc: CTRL-EVENT-CONNECTED – Connection to 00:f7:6f:cd:58:28 completed [id=0 id_str=]
          oct 09 07:53:41 minera02 wpa_supplicant[1115]: wlx00e07d0006fc: CTRL-EVENT-REGDOM-CHANGE init=COUNTRY_IE type=COUNTRY alpha2=MX
          oct 09 07:53:41 minera02 NetworkManager[739]: [1507553621.3486] device (wlx00e07d0006fc): supplicant interface state: 4-way handshake -> completed
          oct 09 07:53:41 minera02 kernel: wlx00e07d0006fc: Limiting TX power to 30 (30 – 0) dBm as advertised by 00:f7:6f:cd:58:28

          Here is the error:
          oct 09 07:56:47 minera02 kernel: pcieport 0000:00:1c.5: AER: Corrected error received: id=00e5
          oct 09 07:56:47 minera02 kernel: pcieport 0000:00:1c.5: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e5(Receiver ID)
          oct 09 07:56:47 minera02 kernel: pcieport 0000:00:1c.5: device [8086:a295] error status/mask=00000001/00002000
          oct 09 07:56:47 minera02 kernel: pcieport 0000:00:1c.5: [ 0] Receiver Error (First)

          I still clueless about what is the problem…

          • Zelda says:

            I don’t see any messages here from the mineclay service. Those look like low-level kernel error messages about the PCIe problem.

            When you just run the startup script from the command line, does it launch claymore mining okay?
            ./mine.sh

            All the stuff I suggested just launches that script, so it should be working dependably before you worry about the auto-start stuff, whether my suggestion or the original recipe above.

          • Zelda says:

            One other comment, I just realized.

            In my mineclay.service, I realize I included this line:
            /home/user/miner_launcher.sh

            That’s because I’d renamed my launch script from mine.sh (original recipe).
            If your launch script is still mine.sh, you should use:
            /home/user/mine.sh

            Of course, change user to your appropriate username.
            You can always enter the command pwd to see the full pathname.

            Good luck!

          • deadman.walking says:

            Thanks Zelda, Claymore runs fine when I start it manually, I’ll try changing the ./miner.sh in the mineclay.service, I tell you if it works

        • deadman.walking says:

          Zelda I just made it all again, and when I try to eneble the clayminer.service got same message like 3 tries back:
          Synchronizing state of clayminer.service with SysV init with /lib/systemd/systemd-sysv-install…
          Executing /lib/systemd/systemd-sysv-install enable clayminer
          insserv: warning: script ‘K01clayminer’ missing LSB tags and overrides
          insserv: warning: script ‘clayminer’ missing LSB tags and overrides
          update-rc.d: error: clayminer Default-Start contains no runlevels, aborting.

          I have no idea what’s wrong again… I have overcome problems like the hashrate downfall, but now I’m stuck with a “simple” startup problem, that same problem in windows I could solved with a bat, or adding to start menu, it’s frustrating me

          • Zelda says:

            Sorry you’re encountering such frustrations!

            I saw those same error messages, but ended up just ignoring them. They have something to do with maintaining backwards compatibility with earlier start-up managers, which I don’t care about.

            For troubleshooting, I’d suggest breaking the task in half. Try to get a simple service running, e.g. something that just writes “Hello world” to the journal and/or a file. And maybe “Goodbye world” on stop/restart. Once you have that working, you could stir the miner back into the mix.

            I miss the reliability of Linux (once you get it working :-), but all the tools for clock and voltage management are available in Windows. I guess because of the gaming background of much of the GPU world. Had to spring for Windows 10, but the startup is as easy as a .bat file in the startup folder.

            Maybe once I’m comfortable with my GPU parameters, I’ll flash them and go back to Linux. But worth thinking about as you decide which brick walls to bang your head against!

            Good luck!

    • deadman.walking says:

      Suddenly your newest answer disappeared…
      I followed your amendments to the startup and get this message:

      sudo systemctl enable clayminer.service
      Synchronizing state of clayminer.service with SysV init with /lib/systemd/systemd-sysv-install…
      Executing /lib/systemd/systemd-sysv-install enable clayminer
      insserv: warning: script ‘K01clayminer’ missing LSB tags and overrides
      insserv: warning: script ‘clayminer’ missing LSB tags and overrides
      update-rc.d: error: clayminer Default-Start contains no runlevels, aborting.

      Damn, I feel so close to achieve success… anyway thanks Zelda

  24. Zelda says:

    WordPress seems to munge the command formatting, hopefully you can still make it out.

    BTW any output from mineclay (echo etc.) by default goes into the journal for systemd. You can retrieve those messages with the command:
    journalctl -u mineclay

    • deadman.walking says:

      Hello Zelda, I’m retaking the steps for autostart on Xubuntu and same problem: it won’t run at boot, is there any other way to autostart Claymore? thnaks and best regards

  25. Ali says:

    Hi everyone,

    How can I install Nvidia GTX 1060 drivers in Ubuntu?

    I assume step 4 will work only for AMD gpus, is that correct?

    Best,
    ALi

Leave a Reply

Your email address will not be published.