Setup a Bitcoin mining rig powered by Linuxcoin & Smartcoin

  • by Tim White
  • posted 2012.01.19
  • 8 Comments
  • 2724 views
Bitcoin: distributed crypto-currency

Bitcoin: distributed crypto-currency

This guide will cover how to build a dedicated/headless/automated GPU Bitcoin mining rig running the Linuxcoin operating system and Smartcoin miner management.

Wait... is Bitcoin mining even worth it?

In terms of profitability, it all depends on the how much you pay for electricity, the current mining difficulty, and the BTC exchange rate. There's some calculators on the web that can help you figure out your projected costs and BTC earnings.

Would spending over $1K on a rig be profitable in the long run? Probably not, unless you're getting very cheap electricity. Also consider that the current payout for a solved block is 50 BTC. Every 210,000 blocks, the BTC payout for a solved block is halved. It's estimated that the payout will be reduced to 25 BTC in December 2013, greatly reducing the incentive to mine Bitcoins. But who knows? The exchange rate of BTC may be up to $50 USD by then.

Maybe you're not in it for profit, but instead to support Bitcoin. The security of the Bitcoin network relies completely on the collective computational power of miners. Bitcoin mining ensures that new block creation is not controlled by a single entity.

Disclaimer:
I still consider myself a Bitcoin mining newbie, and there's a good chance that the info in this post could be improved. This guide is simply documentation of how I got my rig up and running, so use it at your own risk.

Selecting the hardware

2x5970s

2x5970s

The goal is to choose hardware that:

  • will maximize your hashrate.
  • will minimize your electricity usage.
  • will not break your bank account and eventually be profitable.
  • could either be resold or reused in some other scenario.

Your hardware and component quality will be the primary determining factor of your rig's BTC mining performance. Certain components (GPU, PSU, MOBO) are more important in this regard than others (HDD, RAM, CPU). Here's an overview of the hardware I chose, and why:

Component What I Used Why Cost
GPU(s) Two AMD Radeon HD 5970's Efficient power usage (~290W per card)
650 - 700 Mhash/sec
More afforadable high-end card
$789
PSU Antec High Current Pro 1200W High quality power supply
More than enough wattage
$255
MOBO MSI 870-G45 AMD Supports AMD Sempron CPU
2 PCI-express 2.0 slots
Enough room for 2 big graphics cards
$70
CPU Sempron 140 Very power efficient
Cheap
$40
RAM Crucial 2GB DDR3 Dependable
Cheap
$15
HDD Mushkin 16GB USB 2.0 High quality $30
CASE Top Deck Tech Station, Open-Air Cheap cooling
Reusable
$80
misc box fan Cheap cooling $20
misc Kill-A-Watt Monitor elec. usage $17
Total: $1316

Make sure your MOBO has enough room and slots for your graphics cards. If you get multiple graphics cards, there should be at least 1 inch of space between them so heat they generate can dissipate. Keeping the graphics cards cool is primary: it will increase both their performance and life expectancy.

I'm not going to cover assembling the hardware as that will be relative to your rig. Just make sure to put the rig in a place where it can breathe. If you put it in a closet, leave the door open, and point the GPU fans so they blow out the door.

Safety first: make sure the electrical circuit you plug your rig into can handle the load. You want to keep your max draw under 60-80% of what the circuit can handle (most regular US household circuits/breakers are rated at 15 amps). So if you've got other high wattage electronics running on the same circuit, add up all the amperage of each device (Watts / Volts = Amps). Don't start a fire.

UPDATE: I started a github repo that has some of the example files that are created/modified in this guide. I also wrote a few bash scripts that can automate many of the setup steps below. Look for the one-liner commands in this guide: they can be used instead of some of the manual steps.

Install Linuxcoin on the USB, with persistence

Your USB device will be acting as the rig's hard drive and it's recommended be at least 4GB, but you could probably get away with 2GB. It will be running Linuxcoin 02.b-final with persistence so that written data survives across boots. Linuxcoin comes with pretty much everything you need to get up and mining fast.

This guide uses a Windows 7 desktop to setup the USB. Many of the following steps came from a combination sources listed at the bottom of this page.

Linuxcoin persistence

Linuxcoin persistence

Linuxcoin persistence

Linuxcoin persistence

Linuxcoin persistence

Linuxcoin persistence

Linuxcoin persistence

  1. Download the following stuff:
  2. Plug the USB stick into your desktop. Right-click the drive, choose "Format...", and format it with the default FAT32 file system.
  3. Run the downloaded bootice.exe. Select the USB device from the "Destination Disk" dropdown.
  4. Click the "Parts Manage" button, then "ReFormat USB Disk". Set:

    • Disk Mode = USB-HDD mode (Multi-Partitions)
    • Partition Alignment = Align to cylinder
  5. Click Next and set:

    • size field of Partition 1 = 1024 MB
    • File System for Partition 1 and Partition 4 = FAT32

    Leave the remaining fields at their defaults. Click OK. You'll be prompted to confirm the reformat and partitions a couple of times, just click Yes/OK on each one.

  6. When it's finished, close BOOTICE. Run the downloaded unetbootin exe file. Set the following values:

    • Diskimage option enabled
    • ISO option enabled and browse to and select the Linuxcoin ISO file
    • "Space used to preserve files..." = 1024 MB
  7. Click OK and wait awhile. When it finishes, choose "No" when UNetbootin prompts to reboot.
  8. Plug your USB stick, a mouse, a keyboard, network cable, and a monitor into the mining rig. I connected my monitor into one of the 5970's DVI plugs. Power the rig on. You should see the Unetbootin splash screen - if not, make sure your BIOS allows for botting from a USB device. Select "Linuxcoin Persistent".
  9. Once Linuxcoin boots up, it should automatically display a desktop. If you're seeing a login screen, enter username = user and the password = live.

    Now we want to create a Linux file system on the USB's persistence partition so that data persists across boots. Click the yellow Ƀ button in the bottom left-hand corner, then goto Accessories > Root Terminal.

    * one-liner: The rest of the stuff for persistence (step #9) can be done automatically with this bash command:

    # curl https://raw.github.com/timbowhite/linuxcoin-setup/master/setup/persistence.sh | bash
    

    Or you can do it manually:

    Run df to see your mounted file systems:

    # df
    

    Look for /dev/sda2, which will be mounted on at a temporary moutnpoint like /media/AE90-5228 or something similar. Unmount it and use mkfs to create the live-rw filesystem:

    # umount /media/AE90-5228
    # mkfs.ext4 /dev/sda2 -L live-rw
    

    Edit /live/image/syslinux.cfg, and add a new boot entry so that Linuxcoin boots with persistence by default:

    label unetbootindefault
    menu label LinuxCoin
    kernel /live/vmlinuz
    append initrd=/live/initrd.img boot=live config quiet persistent rw vga=791 edd=off
    

    The above entry should be placed as the first entry underneath the UNetbootin menu section:

    default menu.c32
    prompt 0
    menu title UNetbootin
    timeout 100
    

    Example /live/image/syslinux.cfg available here.

    Reboot the machine. The bootloader will now automatically boot Linuxcoin with persistence.

Make it headless

The goal here is to be able to run the rig without it being attached to any I/O devices: monitor, mouse, keyboard, etc. You can then store the rig somewhere else and access it via SSH on your LAN.

* one-liner: most of the following steps for "headless-ness" can be done automatically with this bash command:

# curl https://raw.github.com/timbowhite/linuxcoin-setup/master/setup/headless.sh | bash

* You will still need to manually assign the correct network settings in your /etc/rc.local. The above command assigns a default 192.168.0.150 static IP address, see step #2. SSH should also be manually secured, see steps #5 and #6.

The manual steps:

  1. First, update all packages the system:

    # apt-get update
    
  2. Next, assign a static IP by putting the following lines in /etc/rc.local. The example below adds a static IP 192.168.0.150 with a gateway of 192.168.0.1 to the interface eth0:0. Your network settings will different, make sure to change them appropiately:

    sudo ifconfig eth0:0 192.168.0.150 up
    sudo ifconfig eth0:0 broadcast 192.168.0.255
    sudo ifconfig eth0:0 netmask 255.255.255.0
    sudo route add default gw 192.168.0.1
    

    Example /etc/rc.local available here.

    If you don't want any dynamic IP address being assigned to your rig, then replace "eth0:0" with "eth0" in the code above.

    Now run rc.local and restart the network interface:

    # /etc/rc.local
    # /etc/init.d/networking restart
    
  3. The default user in Linuxcoin is simply the user user. We'll setup user as a password-less sudoer to make automation and running the miners as root seamless:

    # echo "user ALL = NOPASSWD : ALL" >> /etc/sudoers
    
  4. Start SSH and enable the SSH daemon to start on boot:

    # /etc/init.d/ssh start
    # update-rc.d ssh enable
    

    You should now be able to detach the monitor, keyboard, mouse, and throw the rig in a closet somewhere. Make sure to connect it to your LAN. The remainder of the setup will all be done via SSH.

  5. Now SSH into the rig from your desktop. The user password is the word live:

    # ssh user@RIG.IP.ADDRESS.HERE
    
  6. Warning: this step is optional, but the current SSH configuration is very insecure. It's recommended that you use SSH auth keys to secure SSH logins, or at the very least, change the user's password.

    For instance, you can configure SSH to disable root login and use SSH auth keys by editing /etc/ssh/sshd_config:

    PermitRootLogin no
    PasswordAuthentication no
    

    Add your public SSH key to the user's authorized_keys files:

    # mkdir -p /home/user/.ssh
    # vi /home/user/.ssh/authorized_keys
    [PASTE KEY ON A NEW LINE]
    # sudo /etc/init.d/ssh restart
    

    Open up a new SSH session from your desktop and ensure you're able to SSH into the rig using your auth key.

Initialize and overclock the GPU(s)

We'll be using aticonfig to initialize and overclock the GPU(s) on your rig. Overclocking the GPU cores is optional: the higher your core clock, the higher the hashrate, the more BTC you'll make. But it's not necessarily recommended as it will increase the graphics card's running temperatures and decrease their life expectancy.

Underclocking the GPU(s) memory clocks is recommended as it lowers electricity usage and doesn't affect hashrates.

  1. First, "accept" the AMD license agreement by extracting the icd-registration.tgz (this could've also been done manually via the rig's GUI desktop menu):

    $ sudo su -l
    # cd /
    # tar zxvf /opt/AMD-APP-SDK-v2.4-lnx64/icd-registration.tgz
    
  2. su as user, and add the AMD app SDK library to the LD_LIBRARY_PATH system variable, export the display for all users, and reboot:

    # su -l user
    $ echo "export LD_LIBRARY_PATH=\"/opt/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/:\$LD_LIBRARY_PATH\"" >> ~/.bashrc
    $ echo "export DISPLAY=\":0\"" >> ~/.bashrc
    $ echo "xhost +" >> ~/.bashrc
    $ echo ":0" > ~/.display
    $ sudo shutdown -r now
    
  3. When the rig comes back up, ensure that aticonfig has detected your GPU's. Keep in mind that some cards (like the 5970) have two GPU's per card:

    $ sudo aticonfig --adapter=all --odgt
    

    You should see a line starting with "Adapter X" for each GPU, followed by some info about it and it's current temperature.

  4. Overclocking

    Overclocking can be a trial-and-error process: if you overclock your GPU cores too high, your cards will experience frequent hard lockups, and can only be revived by rebooting the rig.

    If you decide to overclock your GPU cores, start out overclocking slightly above the stock core MHz value. Gradually increase the core clock while monitoring your GPU temperatures. If hard lockups start to occur, roll back the core MHz until the system is stable.

    Enable overclocking by:

    # sudo aticonfig --adapter=all --od-enable
    

    Then set the clocks for each GPU. In the example below there are 4 GPUs, and it's setting the core clock = 750MHz and the memory clock = 300MHz on each GPU. The format of the --od-setclocks parameter is core clock MHz,memory clock. Again, I recommend underclocking the memory MHz to the lowest configurable value to reduce electricity consumption:

    # sudo aticonfig --adapter=0 --od-setclocks=750,300
    # sudo aticonfig --adapter=1 --od-setclocks=750,300
    # sudo aticonfig --adapter=2 --od-setclocks=750,300
    # sudo aticonfig --adapter=3 --od-setclocks=750,300
    

    Commit the clock settings so they'll persist across reboot:

    # sudo aticonfig --odcc --adapter=all
    

Setup miners and automate Smartcoin

  1. You may want to update the miners that came with Linuxcoin to their latest versions. For example, I use the Phoenix 1.7.3 miner, and updated it by:

    $ sudo su -l
    # cd /opt/miners/
    # mv phoenix phoenix-old
    # wget https://github.com/jedi95/Phoenix-Miner/tarball/master -O phoenix.tar.gz
    # tar zxvf phoenix.tar.gz && rm phoenix.tar.gz
    # mv jedi95-Phoenix-Miner-297945a phoenix
    
  2. Before starting Smartcoin, let's get it updated to it's latest version and automated to start whenever the rig is booted. This way you won't have to SSH into the box to start Smartcoin whenever you the machine on.

    First, update to the latest version of smartcoin:

    $ sudo su -l
    # cd /opt/smartcoin
    # svn update
    

    Create a desktop autostart entry for user. This is run everytime the rig boots and user is autologged in to an X session:

    # su -l user
    $ mkdir -p ~/.config/autostart
    

    Paste in this text into a new file at /home/user/.config/autostart/auto.desktop:

    [Desktop Entry]
    Type=Application
    Name="autostart-smartcoin"
    Exec="/home/user/autostart-smartcoin.sh"
    Terminal=true
    

    Now create a Smartcoin autostart bash script that will start Smartcoin running under root at /home/user/autostart-smartcoin.sh:

    sleep 10
    xhost +
    sudo smartcoin --silent
    

    And make it executable:

    $ chmod +x /home/user/autostart-smartcoin.sh
    

    Smartcoin has the capability to run a custom-defined initialization bash script whenever it's started. We'll use this feature to ensure the GPU fans are always turned up to 80% when mining starts:

    Edit /opt/smartcoin/init.sh and paste the following:

    #!/bin/bash
    
    DISPLAY=:0.0 aticonfig --pplib-cmd "set fanspeed 0 80"
    

    NOTE: If you've got more than one card, make sure to add a fanspeed command targetting each card. You'll have to change the DISPLAY variable on each line to match the GPU # (ie. DISPLAY=:0.1, DISPLAY=:0.2, etc). If your card has two GPU's in it (like the 5970's), then increment the DISPLAY variable by 2. For instance, I have two 5970's, so my init.sh looks like this:

    #!/bin/bash
    
    DISPLAY=:0.0 aticonfig --pplib-cmd "set fanspeed 0 80"
    DISPLAY=:0.2 aticonfig --pplib-cmd "set fanspeed 0 80"
    

    You can optionally create a script at /opt/smartcoin/lockup.sh that gets executed whenever your GPU(s) lockup. It's useful for automatically rebooting whenever a lockup occurs. For instance, a simple lockup.sh to reboot on lockup:

    #!/bin/bash
    
    sleep 5
    /etc/init.d/gdm stop
    shutdown -fr now
    smartcoin --kill
    

    You could also get fancy with it and send yourself an email notification that reports the GPU stats at the time of the lockup, example available here.

    Make sure the above scripts are all executable:

    $ sudo chmod +x /opt/smartcoin/init.sh
    # sudo chmod +x /opt/smartcoin/lockup.sh
    
  3. Now we need to install Smartcoin for the root user:

  4. $ sudo su -l
    # /opt/smartcoin/smartcoin_install.sh
    

    During the Smartcoin install process, you should probably enter the default "yes" answer to the prompts to autodetect your rig's GPU(s), miners and environment. You might be prompted to choose the location of the Phoenix miner:

    Found phoenix miner installed on local system
    1) /live/cow/opt/miners/phoenix-old/phoenix.py
    2) /live/cow/opt/miners/phoenix/phoenix.py
    3) /opt/miners/phoenix-old/phoenix.py
    4) /opt/miners/phoenix/phoenix.py
    Select the phoenix installation from the list above
    

    In which case you should choose "4", which is the path to the latest version of the Phoenix miner you previously downloaded.

    I think the last prompt is how many daily mining minutes you'd like to donate to Smartcoin: your call, but donations help keep Smartcoin awesome and free.

Configuring Smartcoin

  1. The following quick example will create a new Smartcoin profile that uses the deepbit.net mining pool and the Phoenix miner.

    If you're not already in the Smartcoin interface, fire it up as root:

    $ sudo smartcoin
    

    You'll be presented with the Smartcoin main menu:

    Smartcoin r657s 08:17:46
    ----------------------------------------
    1) Reboot Computer
    2) Kill smartcoin (exit)
    3) Disconnect from smartcoin (leave running)
    4) Edit Settings
    5) Select Profile
    6) Configure Miners
    7) Configure Workers
    8) Configure Profiles
    9) Configure Devices
    10) Configure Pools
    11) Update Smartcoin
    12) Set Failover Order
    13) Configure Machines
    14) Configure Macros
    15) Execute Macro
    
  2. First we'll configure the Phoenix miner. Type "6" and hit enter to configure your miner, then type "e" and hit enter to edit existing miners. Then enter "1" to edit the Phoenix miner:

    Smartcoin r657s 10:05:10
    ----------------------------------------
    SELECT MINER TO EDIT
    1) localhost
    Select the machine the miner resides on
    1
    1) phoenix
    2) poclbm
    Select the miner you wish to edit
    1
    

    From there, you should accept each pre-populated value. The only value I would recommend updating is the "Enter the miner's launch string", which I change to use the phatk2 kernel for increased performance:

    python <#path#>/phoenix.py -v -u http://<#user#>:<#pass#>@<#server#>:<#port#>/ device=<#device#> worksize=128 vectors aggression=11 bfi_int fastloop=false -k phatk2
    

    Enter "y" at the last prompt to set the Phoenix miner as the default miner:

    Smartcoin r657s 10:06:01
    ----------------------------------------
    EDITING MINER
    ------------
    1) localhost
    Please select the machine from the list above that is hosting this
     miner
    1
    Please give this miner a nickname
    phoenix
    Enter the miner's path (i.e. /home/you/miner/)
    /opt/miners/phoenix/
    Enter the miner's launch string
    Note:use special strings <#user#>, <#path#>, <#server#>
    <#port#>, and <#device#>
    python <#path#>/phoenix.py -v -u http://<#user#>:<#pass#>@<#server#>:<#port#>/ device=<#device#> worksize=128 vectors aggression=11 bfi_int fastloop=false -k phatk2
    Do you want this to be the the default miner for this machine?
    y
    
  3. Next, we need to setup the workers associated with your mining pool. From the Smartcoin main menu, enter "7" to configure workers, and then enter "a" to add workers. Enter in the info for your worker, and enter "n" when prompted to add this worker to the automatic profile:

    ADDING WORKER
    -------------
    1) DeepBit
    2) Bitcoin.cz (slush)
    3) BTCGuild
    4) BTCMine
    5) Bitcoins.lc
    6) SwePool
    7) Continuum
    8) MineCo
    9) Eligius
    10) CoinMiner
    11) ZABitcoin
    12) BitClockers
    13) MtRed
    14) SimpleCoin
    15) Ozco
    16) EclipseMC
    17) BitP
    18) BitcoinPool
    19) EcoCoin
    20) BitLottoPool
    21) X8S
    22) Ars Technica
    23) TripleMining
    24) Mainframe
    25) Bitcoin Monkey
    26) Best Bitcoin
    27) Eclipse MC
    What pool listed above is this worker associated with?
    1
    
    Give this worker a nickname
    deepbit1
    
    Enter the username for this worker
    foobar
    
    Enter the password for this worker
    123456
    
    Would you like this worker to be available to the automatic profile? (y)es or (n)o?
    n
    

    Make sure to enter "n" when prompted to make the worker available to the automatic profile.

  4. The last step is to configure a profile, which basically groups the previous settings and assigns a worker to each GPU.

    From the Smartcoin main menu, enter "8" to configure profiles, and then "a" to add a new profile, and enter a name for the new profile:

    Smartcoin r657s 10:41:54
    ----------------------------------------
    Would you like to (A)dd, (E)dit or (D)elete profiles?
    (X) to exit back to the main menu.
    a
    1) localhost
    Select the machine you wish to add a profile on
    1
    Enter a name for this profile
    deepbit
    

    This part is a little tedious: you'll have to add a new instance to the profile for each of your GPU(s):

    Smartcoin r657s 10:42:30
    ----------------------------------------
    Profile: deepbit (adding miner instance #1)
    
    1) phoenix
    2) poclbm
    Please select the miner from the list above to use with this instance
    1
    
    1) DeepBit.deepbit1
    Please select the pool worker from the list above to use with this instance
    1
    
    1) GPU[0]
    2) GPU[1]
    3) GPU[2]
    4) GPU[3]
    Please select the device from the list above to use with this instance
    1
    
  5. Finally, you're ready to start mining! From the Smartcoin main menu, enter "5" to select your newly created profile:

    Smartcoin r657s 10:46:58
    ----------------------------------------
    1) localhost
    Select the machine from the list above that you wish to change the profile on
    1
    1) Donation
    2) Automatic
    3) Failover
    4) Idle
    5) deepbit
    Select the profile from the list above that you wish to switch to
    5
    

    Then hit CTRL + a and then 1 to view the mining status screen:

    Smartcoin r657s 10:50:23
    ----------------------------------------
    Host: localhost
    GPU[0]: Temp: 45.00 load: 99%
    GPU[1]: Temp: 45.50 load: 99%
    GPU[2]: Temp: 52.00 load: 99%
    GPU[3]: Temp: 54.00 load: 99%
    CPU Load Avgs: 0.70 0.33 0.17
    
    Profile: deepbit
    --------DeepBit--------
    GPU[0]: [340.05 MHash/sec] [6 Accepted] [0 Rejected] [0% Rejected]
    GPU[2]: [329.10 MHash/sec] [6 Accepted] [0 Rejected] [0% Rejected]
    GPU[1]: [340.41 MHash/sec] [3 Accepted] [0 Rejected] [0% Rejected]
    GPU[3]: [329.29 MHash/sec] [3 Accepted] [0 Rejected] [0% Rejected]
    Total : [1338.85 MHash/sec] [18 Accepted] [0 Rejected] [0% Rejected]
    
    Grand Total : [1338.85 MHash/sec] [18 Accepted] [0 Rejected] [0% Rejected]
    

    When you're done watching your stats, hit CTRL + a and then d to exit the Smartcoin interface. Your miners will continue to run in the background! Type smartcoin with root privileges to re-enter the Smartcoin interface.

Smartcoin uses the screen utility to display it's user interface. A few quick shortcuts for navigating the interface for a single mining rig (see here for more details):

  • CTRL + a then 0: goto the Smartcoin main menu.
  • CTRL + a then 1: goto the mining status screen.
  • CTRL + a then 2: goto the miner log screen.
  • CTRL + a then d: exit the Smartcoin interface.

We've only setup one mining rig in this tutorial, but keep in mind that Smartcoin can manage multiple mining rigs if you decide to scale operations. You may also choose to setup some failover profiles in the event that your primary mining pool is down.

Tweaks

The following is some optional system setup stuff. I recommend it to get additional features and increased performance on your rig. Legend:

  • lines starting with 3 ###'s = a comment
  • indented lines = stuff that goes in a configuration file
  • all other lines = command to run from the console
### If you're in the US, you probably want to update the apt-get
### source.list. Replace:
### deb http://www.mirrorservice.org/sites/amd64.debian.net/debian/ sid main non-free contrib
### with
### deb http://ftp.us.debian.org/debian/ sid main non-free contrib
vi /etc/apt/sources.list
apt-get update

### the munin-node software isn't really used and
### had a bad habit of crushing my CPU at 100%,
### so disable it
sudo /etc/init.d/munin-node stop
sudo update-rc.d -f munin-node remove

### disable all munin crons, comment out their cron entries
sudo vi /etc/cron.d/munin
sudo vi /etc/cron.d/munin-node

### set date/timezone
sudo dpkg-reconfigure tzdata

### keep the system clock synchronized
sudo apt-get install ntp ntpdate
sudo update-rc.d -f ntp enable
sudo /etc/init.d/ntp start

# optional: disable tor
sudo update-rc.d -f tor disable

Maintenance

A few quick tips on rig upkeep:

  • Try to keep your GPU core temps under 80° C. The highest temperature they can withstand without permanent damage is 89° C.
  • Smartcoin stores it's settings in an SQLite database in the ~/.smartcoin directory. In this case, you can backup your smartcoin settings by copying the /root/.smartcoin directory to another location.
  • Dust your rig every 2 weeks to improve performance and life expectancy. Get some canned air, take the rig outside, and blow that shit out of there. You'll be suprised how much dust can accumulate in a short period of time: more airflow = more dust.
  • If your graphics card is locking up a lot, or experiencing consistently high temperatures, replace the thermal paste on it's GPU(s). Take the card off the rig, unscrew the back of it, and use a q-tip and 99% rubbing alchohol to clean off the old, crusty thermal paste from both the GPU(s) and heatsink. Apply a new layer of thermal paste (I use Artic MX-4) on the top of the GPU(s), and screw it back together.

Sources

I hope this guide helped get your rig up and running. If you're feeling generous, feel free to donate to:

1A2dJ3B8RLk7pmTUy15XwqZBb9sm4g7GDN

Comments

  1. [...] See the article here: Setup a Bitcoin mining rig powered by Linuxcoin & Smartcoin | how-to [...]

  2. [...] posted here: Setup a Bitcoin mining rig powered by Linuxcoin & Smartcoin | how-to [...]

  3. Nathan
    2012.01.31

    Thanks for a great article. This is amazing. The only question I have is where did you get the prices? I have been looking all over, especially ebay and the prices for 5970s are well over $400. I am having trouble getting one, much less the 6 I want to get.

  4. @Nathan: I got both my 5970's from newegg.com, one for $400, the other for $300 during a sale. But I faced the same problem - they were out of stock pretty much everywhere for a long time. Then the exchange rate for BTC dropped to ~$2.00, and demand dropped.

    I think you can setup an alert agent on newegg.com - as soon as they get more, they send you an email.

  5. Nathan
    2012.02.01

    Thanks for the quick reply. I had set up an alert at NewEgg as you suggested. Yesterday I got 6 5970s when they were available for a few minutes.

    You are the man!!!

  6. Chris
    2012.02.13

    I get the login screen and I enter the username: user and the password: live and it says that it is incorrect

  7. Greg
    2012.02.20

    I just setup a rig following your directions. Everything worked great except the static IP portion.

    The line
    sudo ifconfig eth0:0 address 192.168.0.150 up
    caused the error "address: Unknown host"

    I had to change ifconfig option for address to
    sudo ifconfig eth0:0 add 192.168.1.150

    Even with those changes the IP address is still being assigned by DHCP. What am I doing wrong?

    Thanks for a great article. It was extremely helpful! Where can I send a donation?

  8. @Greg, glad it helped. But you're right, that ifconfig command you had trouble with contains a typo. It should be this:

    sudo ifconfig eth0:0 192.168.1.150

    This essentially adds a 2nd static IP address, under the alias eth0:0, to your NIC at eth0. In this case, eth0 will still get a dynamic IP address, and eth0:0 will get the static IP assigned above. If you only want a single static IP, and no dynamic IP, change /etc/rc.local to look like this (and of course substitute with your own network values):

    sudo ifconfig eth0 192.168.0.150 up
    sudo ifconfig eth0 broadcast 192.168.0.255
    sudo ifconfig eth0 netmask 255.255.255.0
    sudo route add default gw 192.168.0.1

    Check out the Debian networking guide. Lots of examples on ifconfig usage.

    I put a donation BTC address above the comments - thanks!

Leave a Comment