I think that cgminer is the most advanced miner to date. It doesn't push the hardware as far as I would like (it doesn't use 100% of the GPU) but it can manage multiple pool and use the longpoll from the fastest pool, so you will have a better mining uptime with this miner than with the other! I never experienced any "queue empty, miner is idle" with this miner. Today the bitcoin value is 5$ so you need to get every hash as possible! The little drawback is that I was not yet successfull to make cgminer to use 99% of each gpu.
But, cgminer can set the fan, the clock and even overclock your GPU. This is very nice!
So let's begin!
1. To manage your gpu fanspeed and clocking, you will need the ADL SDK (AMD Display Library)
2. Install missing softwares
$ sudo apt-get install libcurl4-openssl-dev libncurses5-dev pkg-config automake yasm libtool
3. get the latest cgminer sourcecode :
$ git clone git://github.com/ckolivas/cgminer.git cgminer
4. enable ADL (control of the inner functions of the gpu like clocking, voltage, fan speed...)
$ mkdir ADL_SDK
$ cd ADL_SDK
$ mv ../ADL_SDK_3.0.zip .
$ unzip ADL_SDK_3.0.zip
$ cp include/* ../cgminer/ADL_SDK
$ cd cgminer
$ CFLAGS="-O2 -Wall -march=native -I /opt/AMDAPP/include/" LDFLAGS="-L/opt/AMDAPP/lib/x86_64" ./configure
if you get the following error :
/usr/bin/ld: cgminer-adl.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/libdl.so so try adding it to the linker command line
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/libdl.so: could not read symbols: Invalid operation
remove the ADL directory, you must disable ADL.
! be sure the GPU and ADL are enabled !
6. Testing (to see the number of gpu the software sees)
$ export DISPLAY=:0 #(use this command only if you have more than one card)
$ ./cgminer -n
If the number does not represent the number of gpu you own, there is a problem, you should have miss a step. Or the git repository could be broken. Try an older tag here : https://github.com/ckolivas/cgminer/tags
7. be up to date!
$ stop the miner
$ cd ~/cgminer
$ git pull
and then recompile (follow the step 5)
There is a lot of commands for this software. The best way to learn is to read the documentation from the git repository, it is one of the best documentation I've read!