Raspberry Pi για Bitcoin mining (και όχι μόνο)

Posted by Admin on

Αγόρασα για κάποιες δοκιμές μου ένα Raspberry Pi και θέλησα να το φτιάξω ώστε να γίνει μηχάνημα για Bitcoin Mining. Ευκολάκι;

Αρχικά χρειαζόμαστε (τα υλικά που χρησιμοποίησα εγώ)
Ένα Raspberry Pi Model B+
Μια MicroSD κάρτα (8GB)
Έναν Wireless Nano USB αντάπτορα (ο συγκεκριμένος λειτουργεί χωρίς την ανάγκη τοποθέτησης του σε κάποιο powered hub)
Την τελευταία έκδοση του Raspbian

Επίσης
Έναν CAR CHARGER 12V - USB 5V
Ένα USB HUB, το οποίο θα πρέπει να είναι με τροφοδοτικό. Εγώ επειδή ήθελα να μην τροφοδοτείται τίποτα από την πρίζα, αλλά να παίρνει ρεύμα από το ηλιακό πάνελ, πήρα ένα απλό hub και το έβαλα με αυτήν την κατασκευή, η οποία μπορεί και τροφοδοτεί πολύ καλά τα USB Stick Miners.

Αρχικά θα πρέπει να στήσουμε το Raspberry Pi. Καλό είναι να το βάλουμε σε μία θήκη, ώστε να μην χτυπιέται. Συνδέουμε τα απαραίτητα, αλλά
θα πρέπει να εγκαταστήσουμε το λειτουργικό στην MicroSD. Για να γίνει αυτό, μεταφέρουμε το image του Rasbian σε έναν υπολογιστή (το δοκίμασα σε Linux) και συνδέουμε την MicroSD. Όταν την αναγνωρίσει ο υπολογιστής, πηγαίνουμε αριστερά στην λίστα υλικού και πατάμε "umount" στην κάρτα μας. Έπειτα τρέχουμε ένα παράθυρο τερματικού και βάζουμε τις εντολές:

sudo dd if=/media/BACKUPS/2014-09-09-wheezy-raspbian.img of=/dev/mmcblk0 bs=4M

Και περιμένουμε να τελειώσει. Για να βλέπουμε την πρόοδο, ανοίγουμε ένα νέο παράθυρο τερματικού (χωρίς να πειράξουμε το ήδη ανοιγμένο) και βάζουμε την παρακάτω εντολή κάθε φορά που θέλουμε να ελέγχουμε την πορεία της εγγραφής. Σημειώστε ότι η αναφορά θα φαίνεται στο πρώτο παράθυρο, άσχετα αν εμείς την βάζουμε στο νέο.

sudo pkill -USR1 -n -x dd

Όταν τελειώσει, βγάζουμε την κάρτα μας και την βάζουμε στο Raspberry Pi, το συνδέουμε με το ρεύμα και περιμένουμε να μπουτάρει. Βάζουμε τις επιλογές που θέλουμε και όταν τελειώσουμε, θα δούμε την επιφάνεια εργασίας.

Ωστόσο το Raspberry Pi δεν μπορεί να αναγνωρίσει ακόμη τον WiFi αντάπτορα και έτσι δεν έχουμε σύνδεση στο internet. Θα πρέπει να το συνδέσουμε με ένα καλώδιο δικτύου και αφού έχουμε πρόσβαση στο internet, ανοίγουμε ένα παράθυρο τερματικού και βάζουμε τις παρακάτω εντολές:

Αρχικά θα πρέπει να αναβαθμίσουμε το Raspberry στην τελευταία έκδοση του firmware του.
rpi-update

Αν εμφανίσει μήνυμα ότι δεν υπάρχει η εντολή, θα πρέπει να την εγκαταστήσουμε και μετά να την τρέξουμε, οπότε γράφουμε:
sudo apt-get install rpi-update

Τώρα θα πρέπει να βεβαιωθούμε ότι η αναβάθμιση πέτυχε. Έτσι γράφουμε:

uname -a

Σε εμένα εμφάνισε ότι αναβαθμίστηκε στην έκδοση 3.12.33+ #724 (έχει σημασία η ακριβής έκδοση).

Τώρα δίνουμε τις εντολές:

sudo apt-get upgrade
sudo apt-get update
sudo reboot

Όταν τελειώσει με την επανεκκίνηση, πηγαίνουμε εδώ και βλέπουμε τους αντίστοιχους drivers για κάθε έκδοση του firmware. Έπειτα, ανοίγουμε ένα παράθυρο τερματικού και δίνουμε τις εντολές (προσέξτε τα μαυρισμένα σημεία, θα πρέπει να είναι αυτά από την έκδοση του firmware):
wget https://dl.dropboxusercontent.com/u/80256631/8188eu-20141107.tar.gz
tar -zxvf 8188eu-20141107.tar.gz
sudo install -p -m 724 8188eu.ko /lib/modules/3.12.33+/kernel/drivers/net/wireless
sudo insmod /lib/modules/3.12.33+/kernel/drivers/net/wireless/8188eu.ko
sudo depmod -a
sudo reboot

Όταν τελειώσει με την επανεκκίνηση, θα μπορεί πλέων το Raspberry να συνδεθεί στο internet και ασύρματα. Ένα κομμάτι έχει τελειώσει.
Εδώ έχετε ένα πλήρες λειτουργικό Raspberry Pi και μπορείτε να το χρησιμοποιήσετε παντού. Αν τώρα θέλετε να το χρησιμοποιήσετε για mining, κάνουμε τα παρακάτω, ώστε να εγκατασταθεί το CGminer (διαβάστε και εδώ). Σε ένα παράθυρο τερματικού, βάζουμε τις παρακάτω εντολές (σημειώστε ότι κάνει κάμποση ώρα για να τελειώσει):

sudo apt-get install build-essential libusb-1.0-0-dev libusb-1.0-0 libcurl4-openssl-dev libncurses5-dev libudev-dev
git clone https://github.com/ckolivas/cgminer
cd cgminer
./autogen.sh
./configure --enable-bitfury
make
make install

Για να τρέξει το CGminer, βάζουμε την παρακάτω εντολή, όπου αλλάζουμε τις απαραίτητες ρυθμίσεις:

sudo cgminer -o <pool url> -u <username> -p <password>

Για να απενεργοποιήσουμε το τερματικό να μπει σε κατάσταση sleep, επειδή δεν θα γίνεται κάτι για κάμποση ώρα (άσχετα αν λειτουργούν τα USB Sticks), δίνουμε την παρακάτω εντολή:

sudo nano /etc/kbd/config

Και εκεί αλλάζουμε τις παρακάτω επιλογές:

Το POWERDOWN_TIME=30 θα γίνει POWERDOWN_TIME=0
Το BLANK_TIME=30 θα γίνει BLANK_TIME=0

Σώστε το αρχείο με control-o και βγείτε με control-x.

Για να απενεργοποιήσουμε την λειτουργία sleep του Raspberry, δίνουμε την εντολή:

sudo nano /etc/X11/xinit/xinitrc

Και στο τέλος, προσθέτουμε τα παρακάτω:
xset s off # don't activate screensaver
xset -dpms # disable DPMS (Energy Star) features.
xset s noblank # don't blank the video device

Επίσης σώστε το αρχείο με control-o και βγείτε με control-x.

Τώρα, για να τρέχει αυτόματα το CGminer κάθε φορά που ξεκινά το Raspberry, στο τερματικό δίνουμε την εντολή:

sudo nano /etc/xdg/lxsession/LXDE/autostart

και στο τέλος προσθέτουμε:

@/usr/bin/lxterminal --geometry=90x35 -e cgminer -o <pool url> -u <username> -p <password>

Αποθηκεύουμε τις αλλαγές και κάνουμε επανεκκίνηση. Αν όλα πήγαν καλά, όταν θα τρέξει το λειτουργικό, θα ξεκινήσει και το CGminer χωρίς να χρειαστεί κάτι άλλο.

Τώρα, σε περίπτωση που θελήσετε να το συνδέσετε σε ένα ηλιακό πάνελ (ή σε κάποια άλλη πηγή, πχ μπαταρία), θα πρέπει η πηγή να είναι τουλάχιστον 12V. Συνδέουμε στην τροφοδοσία τον Car changer, ώστε να μας δώσει τα 5v για να τροφοδοτήσουμε το Raspberry και συνδέουμε και το hub. Το hub θα πρέπει να παίρνει το δικό του ρεύμα και να μην το δώσουμε και αυτό από το Car changer, ώστε να μην παρατηρηθεί πτώση της τάσης στα USB Stick Miners. Έτσι το σύστημα θα μπορεί να λειτουργεί μόνο με μπαταρία/ηλιακό πάνελ. Στην παρακάτω εικόνα μπορείτε να δείτε το όλο σύστημα να παίρνει ρεύμα από μια μπαταρία.