AsicMiner σε CentOS server

51nHUrI4khL._SX385_Πριν από λίγο καιρό προμηθεύτηκα ένα ASICMiner Block Erupter από το eBay. Πρόκειται για μια πολύ απλή συσκευή η οποία βοηθάει στο mining για bitcoins. Όχι ότι θα βγάλει ποτέ λεφτά (πλέον για να βγάλει κανείς λεφτά με bitcoing mining πρέπει να κάνει πολύ μεγάλες επενδύσεις, αφού η δυσκολία είναι τεράστια), αλλά έχει πλάκα σαν χόμπι, και μέσω ebay βρίσκεις τέτοιες συσκευές γύρω στα 20 ευρώ το κομμάτι.

Αφού το δοκίμασα μερικές μέρες στα Windows με το cgminer, ήρθε η ώρα να μετακομίσει στον server του ενυδρείου.

Η εγκατάσταση ήταν υπερβολικά εύκολη. Έβαλα το stick σε μια από τις θύρες του netbook, και έδωσα τις παρακάτω εντολές:

yum install libcurl-devel libudev-devel

(απαραίτητα πακέτα για να γίνει μετά το compile)

cd /root
git clone https://github.com/ckolivas/cgminer
cd cgminer
./autogen.sh
./configure --enable-icarus
make install

και τρέχει με την εντολή cgminer. Τόσο απλά.

Από εκεί και πέρα, για να μην ασχολούμαι καθόλου μαζί του, έπρεπε να το μετατρέψω σε service ώστε να τρέχει μόνο του. Αρχικά, από το ίδιο το cgminer αποθηκεύουμε τα settings που έχουμε επιλέξει στο αρχείο /etc/cgminer.conf.

Μετά δίνουμε: vim /etc/init.d/cgminer για να δημιουργήσουμε ένα script για το service και μέσα paste:

#!/bin/sh
#
# cgminer Mine bitcoins using cgminer
#
# chkconfig: 345 20 80
# description: Starts and stops cgminer to mine for \
# bitcoins
### BEGIN INIT INFO
# Provides: cgminer
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Bitcoin miner
# Description: Mine bitcoins using cgminer
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec="/usr/local/bin/cgminer"
prog="cgminer"
config="/etc/cgminer.conf"
args=" --config /etc/cgminer.conf"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
start() {
 [ -x $exec ] || exit 5
 [ -f $config ] || exit 6
 echo -n $"Starting $prog: "
 # if not running, start it up here, usually something like "daemon $exec"
 daemon $exec $args
 retval=$?
 echo
 [ $retval -eq 0 ] && touch $lockfile
 return $retval
}
stop() {
 echo -n $"Stopping $prog: "
 # stop it here, often "killproc $prog"
 killproc $prog
 retval=$?
 echo
 [ $retval -eq 0 ] && rm -f $lockfile
 return $retval
}
restart() {
 stop
 start
}
reload() {
 restart
}
force_reload() {
 restart
}
rh_status() {
 # run checks to determine if the service is running or use generic status
 status $prog
}
rh_status_q() {
 rh_status >/dev/null 2>&1
}
case "$1" in
 start)
 rh_status_q && exit 0
 $1
 ;;
 stop)
 rh_status_q || exit 0
 $1
 ;;
 restart)
 $1
 ;;
 reload)
 rh_status_q || exit 7
 $1
 ;;
 force-reload)
 force_reload
 ;;
 status)
 rh_status
 ;;
 condrestart|try-restart)
 rh_status_q || exit 0
 restart
 ;;
 *)
 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
 exit 2
esac
exit $?

Αλλάζουμε permission με chmod 0755 /etc/init.d/cgminer  και το service μας είναι έτοιμο. Θα έλεγα καλά κέρδη, αλλά δεν… οπότε, καλή διασκέδαση 😀