Complete Guide To Mine Bitcoin on Xubuntu 12.04

-- by Leonard Huang (lueotw@gmail.com)

-- Latest version could be found on http://goo.gl/vP3G9

-- If you think this article is useful to you, please make a donation to:

1M1mB5BQX5QthTojfHxXxJQJr8ro5xLcKR


Firstly, I’d like to thank Kanoi, who wrote an excellent howto guide on “How to setup a cgminer using xubuntu 11.04 live on a USB”. However, I don’t need to mine on a USB (it’s slow compared to a HDD). Also, his guide didn’t update with the latest version of Xubuntu (12.04), which in my opinion is the easiest version of Xubuntu ever to mine bitcoin with. Although it’s relatively easy, there are still some pitfalls I want to you to avoid, so I wrote this guide.

I had been mining Bitcoin since July, 2011. I had used Windows 7 for mining until May, 2012. The reason I use Windows 7 is as the following:

  1. AMD driver got better support on Windows.
  2. Much more overclock tools on Windows (MSI AfterBurner rocks!).
  3. Less time wasting on trouble shooting.
  4. With (3), I can focus on tweaking the best CPU/MEM clock combination for maximizing profit. 

I had tried to switch to a headless Linux solution but failed, due to the following problems:

  1. My machine constantly crashed after operating 3 hours.
  2. The lan port on my motherboard didn’t get support well on Linux at that time(r8169 on a Gigabyte motherboard - buggy driver on Ubuntu 11.04 and 11.10).
  3. I wasted 5 days struggling on troubleshooting linux problems. Not worth it.

I decided to give Xubuntu 12.04 a try, since I’ve heard that 12.04 is not only getting Long-Term-Support, but also fixing various bugs since 11.04 and 11.10.

The result is amazingly great! My machines never crash anymore!

Enough for my experience. Let’s move on.


Table of Content


Pre-stage - Installation Media

Install Xubuntu 12.04

Install AMD Driver on Xubuntu

Config AMD Driver

Install SSH for remote login

Install CGMiner

Further reading

Install Bitcoin 0.6.2 on Xubuntu (optional)


  1. Pre-stage - Installation Media

The first thing you need is a USB  to load Xubuntu in (Yap, a USB is still essential to get rid of CD-ROMs).

Then, download Unetbootin to load your Xubuntu CD image on the USB.

Now you’re ready to roll!


  1. Install Xubuntu 12.04

Try follow this article: “The Perfect Desktop - Xubuntu 12.04” until you get a working desktop.


Remember to check “Log in automatically when you create a superuser.

We’ll need a logged user to mine headlessly.

Oh! You forget to check the option?

That’s all right, you can edit the /etc/lightdm/lightdm.conf like this after installation.

[SeatDefaults]

autologin-guest=false

autologin-user=<your username>

autologin-user-timeout=0

autologin-session=lightdm-autologin

greeter-session=lightdm-gtk-greeter

user-session=xubuntu


  1. Install AMD Driver on Xubuntu

Caution: Choose your driver wisely, or you’ll lose 10% ~ 20% hash power!


[ For AMD Radon 7xxx Series ]

  • If any of your cards on board is AMD Radeon 7xxx Series cards, you’ll need AMD APP SDK 2.6+, which is included in Catalyst 11.12+ and beyond[1]
    (
    I recommend Catalyst 12.3 - which include SDK 2.6).
  • Reason: 7xxx Series use some kind of new architecture called GCN, which can only be recognized with SDK 2.6+.

Now follow the steps (in commandline):

(Don’t use the GUI (Settings -> Additional drivers) to install the post-release driver. It will fail and I don’t know why[a][b][c].)

  • sudo apt-get install fglrx-updates fglrx-amdcccle-updates fglrx-updates-dev

Done!


[ For AMD Radeon 6xxx, 5xxx Series ]

  • If you don’t have any AMD Radeon 7xxx Series cards (like 6xxx, 5xxx), you should use SDK 2.5, which is included in Catalyst 11.7 ~ 11.11.
    (Recommend Catalyst 11.11)
  • Reason: Non-7xxx Series with SDK 2.6 will lose about 10% performance.

Now follow the steps[2].

Install the prerequisite packages:

  • sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases fakeroot libqtgui4

If you are using the x86_64 architecture (64 bit):

  • sudo apt-get install ia32-libs-multiarch:i386 lib32gcc1 libc6-i386
  • sudo apt-get install ia32-libs

Compile and install the driver:

  • wget http://www2.ati.com/drivers/linux/ati-driver-installer-11-11-x86.x86_64.run
  • sudo sh ./ati-driver-installer-11-11-x86.x86_64.run --buildpkg Ubuntu/precise
  • sudo dpkg -i fglrx*.deb

Done!

  1. Config AMD Driver

Check if all your cards can be detected and then write configuration to /etc/X11/xorg.conf.

  • aticonfig --lsa
  • sudo aticonfig --adapter=all --initial

If everything went fine, reboot the computer by sudo reboot”.

After that, check if everything works:

  • sudo aticonfig --adapter=all --odgt

  1. Install SSH for remote login

Install openssh-server and byobu to perform remote login.

  • sudo apt-get install openssh-server byobu

Now you can pull out the cables of your monitor, mouse and keyboard and enjoy a headless Xubuntu!


  1. Install CGMiner

Go to CGMINER on bitcointalk page and download the latest version of cgminer.

Or on the command line:

  • wget http://ck.kolivas.org/apps/cgminer/cgminer-2.9.5-x86_64-built.tar.bz2

Then unzip it to a directory.

  • tar jxvf cgminer-2.9.5-x86_64-built.tar.bz2

Note: If you got libcurl4 error, install the lib:

  • sudo apt-get install curl

Go to the directory and check if cgminer detects all your cards.

  • cd cgminer-2.9.5-x86_64-built
  • export DISPLAY=:0
  • export GPU_USE_SYNC_OBJECTS=1
  • ./cgminer -n

The correct result should show like the left diagram..

Note that both the OpenCL and the ADL detects 4 devices.

Note that the ADL can’t be initialized.

(you forgot to set

export GPU_USE_SYNC_OBJECTS=1)


Write a script for your favorite mining pool:


  • Ordinary pool
  • (like deepbit, BTC Guild, OzCoin, … etc.)

#!/bin/sh

export DISPLAY=:0

export GPU_USE_SYNC_OBJECTS=1

cd /home/<yourhome>/cgminer-2.9.5-x86_64-built

./cgminer -o http://<mining_pool>:<port> -u <username> -p <password> --api-listen --api-network -I 9 --gpu-reorder --auto-fan --gpu-powertune 20 --gpu-engine 920,920,920,1125 --gpu-memclock 795,795,795,975

#!/bin/sh

export DISPLAY=:0

export GPU_USE_SYNC_OBJECTS=1

cd /home/<yourhome>/cgminer-2.9.5-x86_64-built

./cgminer -o http://<mining_pool>:<port> -u <username> -p <password> --api-listen --api-network -I 8 -g 2 --gpu-reorder --auto-fan --gpu-powertune 20 --gpu-engine 920,920,920,1125 --gpu-memclock 795,795,795,975



Save it as a file and change the permission to execute it.

  • nano cg.sh
  • chmod +x cg.sh
  • ./cg.sh

You now have a headess bitcoin mining machine! Just SSH to your machine with byobu and execute you script.

  • byobu
  • ./cg.sh

You can safely press “F6” and exit since your mining session will be kept in byobu.

-- If you think this article is useful to you, please make a donation to:

1M1mB5BQX5QthTojfHxXxJQJr8ro5xLcKR


  1. Further reading

  • P2Pool

If you want to setup a private p2pool:

https://bitcointalk.org/index.php?topic=62842.0

If you don’t waste your time on setting up p2pool, you can test on my p2pool node:

http://btcm.dyndns.org:9332/

username: <Bitcoin Address you want to receive payment>

password: <any letter would be ok>

  • Exchange

If you want to buy or exchange Bitcoin with the following currency company, you can use my affiliate link of AurumXchange. It is the official partner of Mt. Gox to transfer Bitcoin to LibertyReserve.

  • Liberty Reserve
  • MTGox
  • Perfect Money
  • CryptoXchange
  • PecUnix
  • Vouchx
  • HDMoney
  • Cosmicpay
  • C-Gold
  • SolidTrustPay

http://goo.gl/gJqZS


  1. Install Latest Bitcoind on Xubuntu (optional)

If you want to run bitcoin daemon on your Xubuntu system, open your terminal and install packages by typing the following commands[3]:

  • sudo apt-get install python-software-properties
  • sudo add-apt-repository ppa:bitcoin/bitcoin
  • sudo apt-get install bitcoind

Now you have the latest version of bitcoind installed. Pretty easy, right?

-- If you think this article is useful to you, please make a donation to:

1M1mB5BQX5QthTojfHxXxJQJr8ro5xLcKR


[1] Complete Table of the relationship between Catalyst and APP SDK could be found on AMD website

[2] Thanks for the instruction on Unofficial Wiki for the AMD Linux Driver

[3] Follow the instruction of an excellent answer on AskUbuntu

[a]I'm going to try to make this work under mint linux...It should be the same....

[b]_Marked as resolved_

[c]Why not