Bitcoin Mining on Fedora Core 15

I think BitCoin is a great project by a few University enthusiasts worth of my support. Therefore I will mine a few cryptological sequences on my ATI graphics card to support the project and see where it goes.

To evenly spread the mined coins, mining pools were founded by very friendly people and they are glad if you can help them out at GitHub as I did.

Installation

Let's go. First you need a running ATI Graphics Card under Linux. For this task you WILL need the proprietery driver by ATI/AMD, because it has to work seamlessly together with the AMD SDK which we will install, too.

Add RPM Fusion NoArch Repos.
  rpm -Uv http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

We need the libGLU libraries:

yum install openssl-devel mesa-libGLU-devel

Get the AMD APP SDK version 2.1 and if you have to version 2.4, e.g. http://developer.amd.com/Downloads/ati-stream-sdk-v2.1-lnx64.tgz

Untar the SDK anywhere convenient, e.g. /opt

cd /opt
sudo mv Downloadlocation/ati-stream-sdk-v2.1-lnx64.tgz /opt
sudo tar xfzv ati-stream-sdk-v2.1-lnx64.tgz

Download http://developer.amd.com/Downloads/icd-registration.tgz and unpack it into root directory.

cd /
sudo mv Downloadlocation/icd-registration.tgz /
tar zxfv icd-registration.tgz

LD Library Path

Add these lines to your .bash_rc in your user's home directory and NOT in your /etc/profile or .bash_rc, since that won't work.

LD_LIBRARY_PATH=/opt/ati-stream-sdk-v2.1-lnx64/lib/x86_64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

Do an additional manual export for the current session with

export LD_LIBRARY_PATH=/opt/ati-stream-sdk-v2.1-lnx64/lib/x86_64/:$LD_LIBRARY_PATH

XOrg

Now rewrite Xorg.conf with

sudo aticonfig --initial -f --adapter=all

Reboot X or your whole computer system.

Testing

CLI Info

./CLInfo |grep CL_DEVICE_TYPE_GPU

You have to see your GPUs here - don't continue this tutorial until it outputs multiple lines saying

Device Type: CL_DEVICE_TYPE_GPU

ATI Config

In case something goes wrong, you can troubleshoot above steps with:

export DISPLAY=:0
aticonfig --list-adapters
aticonfig --crossfire=off --adapter=all

Finally, the Miners:

Do a numpy package install through the KDE or Gnome panel, which works for many.

PyOpenCL

Download PyOpenCL
  cd /home/YourUser/Downloads/ && wget http://pypi.python.org/packages/source/p/pyopencl/pyopencl-0.92.tar.gz && tar zxfv pyopencl-0.92.tar.gz && yum install scipy libboost* gcc-c++ subversion git-core -y &&./configure.py --cl-inc-dir=/opt/ati-stream-sdk-v2.1-lnx64/include/ --cl-lib-dir=/opt/ati-stream-sdk-v2.1-lnx64/lib/x86_64 && make && sudo make install

Wheww.. hang in there, we are almost finished, now get and install pyopencl:
  cd pyopencl-0.92 &&./configure.py --cl-inc-dir=/opt/ati-stream-sdk-v2.1-lnx64/include/ --cl-lib-dir=/opt/ati-stream-sdk-v2.1-lnx64/lib/x86_64 && make && sudo make install

Download, configure and install python-jsonrpc
  svn checkout http://svn.json-rpc.org/trunk/python-jsonrpc && cd python-jsonrpc && sudo python setup.py install && git clone git://github.com/m0mchil/poclbm poclbm && cd poclbm && chmod +x poclbm.py

Phoenix

Get Phoenix:

http://forum.bitcoin.org/?topic=6458.0

That's it! Congratulations.

Now keep in mind that you have to control fan, clock and memory speeds and monitor temperature closely in order to mine efficiently and not overheat your precious hardware. In Linux one would use ATI's command-line tool aticonfig, which is excellent. However, it gets tiresome to start-up all cards and set-up all parameters after a reboot. So I wrote a graphical app for that. You can grab it here.

Don't forget: it's not all about the coinage - it's also about modding and fun! Coinage comes and goes, especially if its easy coinage.

Anyway, thanks for reading and happy mining. I leave you with a rig of my own, when GPU mingin was still highly profitable:
 

Sources