BitCoin Mining mit ASIC’s unter Ubuntu

Schneller als mit CPU oder GPU lassen sich BitCoins mit sogenannten ASIC finden, die speziell für das berechnen von SHA256 Hash-Werten konzipiert wurden. Diese gibt es in Form von großen Blechkisten und inzwischen sogar als Erweiterung für den USB-Anschluss.

USB ASICDa die ASIC enorme Hitze erzeugen, sollten diese gut gekühlt werden. Bei den USB-Varianten empfiehlt es sich deshalb einen zusätzlichen USB-Ventielator zu installieren.

Die Installation unter Linux ist relativ leicht. Am besten man kompiliert sich den cgminer oder den bfgminer. Um einen AntMiner U1 USB-Miner mit bfgminer unter Ubuntu Linux in betrieb zu nehmen. Sind z.B. die folgenden Schritte notwendig:

apt-get install screen git make autoconf libtool libncurses-dev yasm curl libcurl4-openssl-dev libjansson-dev pkg-config libudev-dev libusb-dev uthash-dev libsensors4-dev libmicrohttpd-dev libevent-dev libusb-1.0-0-dev
git clone https://github.com/luke-jr/bfgminer
cd bfgminer/
./autogen.sh
./configure
make
screen -d -m -S antminer /root/bfgminer/bfgminer -S antminer:all -o <server-url> -u <worker-name> -p <password> --set-device antminer:clock=x0981

Wenn man danach sehen möchte was der bfgminer so macht. Muss man einfach den folgenden Befehlt eingeben (näheres dazu finden man mit dem Befehlt man screen):

screen -x antminer

BitCoin und LiteCoin Mining mit GPU’s unter Ubuntu

Nachdem in letzter Zeit immer mehr über BitCoins gesprochen wurde, wollte ich auch mal versuchen welche zu finden. Das finden von BitCoins basiert auf der Suche nach SHA256 Hash-Werten, die bestimmte Eigenschaften aufweisen müssen. Eine genauere Beschreibung von BitCoins und wie man diese findet ist bei Wikipedia zu finden.

Das finden von BitCoins ist durch den stetig steigenden Rechenaufwand bei der Suche jedoch immer schwieriger geworden. Deshalb ist es inzwischen unrentabel die BitCoins mit normalen CPU’s von Computern zu suchen, da die Stromkosten wesentlich höher sind als der der Wert der gefundenen BitCoins. Deutlich schneller und mit geringeren Stromkosten können aktuelle Grafikkarten BitCoins finden. Ihre CPU’s können die SHA256 Hash-Werte effektiver errechnen. Aber selbst mit den CPU’s von Grafikkarten lohnt sich das eigentlich kaum noch. Dennoch wollte ich zunächst einmal mit einen PC und einer Grafikkarte anfangen. Also habe ich in einem meiner Computer kurzer Hand die Grafikkarte umfunktioniert und sie für das finden von BitCoins verwenden.

Wie sich rausstellte war es aber gar nicht so leicht die Grafikkarte dazu zu bringen. Einige Anleitungen im Internet funktionierten zumindest mit dem installierten und aktuellen Ubuntu 13.10 nicht. Das mag auch daran liegen, dass die meisten Anleitungen für ältere Ubuntu-Verionen geschrieben waren. Nach zwei Stunden hatte ich jedoch keine Lust mehr die Probleme zu finden und zu lösen. Also nahm ich die neuste Anleitung, die ich gefunden hatte und befolgte diese Schritt für Schritt. Die Anleitung stammt aus dem Blog Silverlinux Da diese auf einem „Ubuntu 13.04 Server 64 Bit“ basierte, installierte ich zunächst ein frisches „Ubuntu 13.04 Server 64 Bit“ auf dem PC und führte folgende Schritte durch:

Update des Server
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
Download und Installation der Treiber
Download der fglrx Treiber (Da die aktuellen Treiber nicht zu funktionieren scheinen ist es wichtig die Version 13.8 beta zu nehmen). Weil AMD keine direkte Verlinkung zulässt, sollte der Download über einen Webbrowser erfolgen und kann nicht mit wget gemacht werden.
http://www2.ati.com/drivers/beta/amd-catalyst-13.8-beta2-linux-x86.x86_64.zip
Bei der R9 290 oder anderen neueren Grafikkarten muss eventuell zunächst die Grafikumgebung und erst dann der Treiber installiert werden.
http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx
Installation einiger notwendiger Pakete
sudo apt-get install dh-make dh-modaliases execstack libxrandr2 libice6 libsm6 libfontconfig1 libxi6 libxcursor1 libgl1-mesa-glx libxinerama1 libqtgui4
Installationsprogramm auspacken
unzip amd-catalyst-13.10-beta2-linux-x86.x86_64.zip
chmod +x amd-catalyst-13.10-beta2-linux-x86.x86_64.run
.deb Pakete für fglrx bauen
./amd-catalyst-13.10-beta2-linux-x86.x86_64.run --buildpkg Ubuntu/raring
Installation der Pakete für fglrx
sudo dpkg -i fglrx*.deb
sudo apt-get -f install
sudo reboot
(Das funktioniert wegen einigen Abhängigkeiten zunächst nicht. Dies kann aber durch den Befehl „apt-get -f install“ behoben werden)
Bei mehreren Grafikkarten muss eventuell auch noch konfiguriert werden, dass alle verwendet werden.

sudo aticonfig --initial --adapter=all
Installation des APP SDK von AMD
Download des APP SDK von der folgenden URL:
Auspacken des APP SDK und Neustart des Computers
tar xvf AMD-APP-SDK-v2.8.1.0-lnx64.tgz
sudo ./Install-AMD-APP.sh
sudo reboot
Installation der minimalen X Server Pakete
sudo apt-get install xdm xorg

Authorization des xdm abschalten

sudo vi /etc/X11/xdm/xdm-config
die folgende Zeile
DisplayManager*authorize:       true
gegen diese ersetzen
DisplayManager*authorize:       false
Speichern und neu starten.
sudo reboot
cgminer kompilieren and testen
Installation von Git und Unzip
sudo apt-get install git unzip
Download von cgminer
git clone -b 3.7 https://github.com/ckolivas/cgminer
Achtung! cgminer 3.7.2 ist die letzte Version mit Unterstützung von GPU (siehe: https://bitcointalk.org/index.php?topic=28402.msg3538435#msg3538435).
Download entpacken und einbinden des AMD ADL SDK (für das überwachen des Temperatur und des Ventilators, usw)
unzip ADL_SDK_5.0.zip
cp include/* ./cgminer/ADL_SDK/
Installation einiger benötigter Pakete für die kompilierung des cgminer
sudo apt-get install build-essential autoconf libtool libcurl4-openssl-dev libncurses5-dev pkg-config libudev-dev
cgminer kompilieren vorbereiten
cd cgminer
./autogen.sh
./configure --enable-opencl --enable-scrypt

folgende Zeilen sollten nach dem confiugure auftauchen:
OpenCL……………: FOUND. GPU mining support enabled
scrypt……………: Enabled
ADL………………: SDK found, GPU monitoring support enabled

cgminer kompilieren

make
Testen ob der cgminer  läuft 
Es ist empfehlenswert ihn mit einigen Umgebungsvariablen zu starten. Am besten mit einem Start-Script wie dem folgenden.
#!/bin/bash
export DISPLAY=:0
export GPU_MAX_ALLOC_PERCENT=100
export GPU_USE_SYNC_OBJECTS=1
./cgminer -n