CGMiner 4.11.1 auf Raspberry Pi

Hard und Software
GekkoScience 2pac USB Miner
Raspberry Py 2
Lüfter / Kühlung für Miner

Voraussetzungen
Vorinstalliertes Raspian (Debian) auf SD-Karte mit ssh-Zugang.

Installation nach https://www.bitshopper.de/support/anleitungen/2pac/2pac-inbetriebnahme-linux-raspberry-pi/

Raspian aktualisieren

sudo apt-get update
sudo apt-get upgrade -y

Zusätzliche Pakete
Zusätzliche Pakete installieren um die Abhängigkeiten von CGminer aufzulösen:

sudo apt-get install -y build-essential git autoconf automake libtool pkg-config libcurl4-openssl-dev libudev-dev libusb-1.0-0-dev libncurses5-dev

build-essential – Compiler und Compile Werkzeuge
git – Source Code repository
autoconf – für den Build aus GIT nötig
automake – für frn Build aus GIT nötig
libtool pkg-config – shared library Zugriff für CGMine
pkg-config – Für Build und Kompilierung benötigt
libcurl4-openssl-dev – http connectivity für CGMiner
libudev-dev – USB support für CGMiner
libusb-1.0-0-dev – USB support für CGMiner
libncurses5-dev –  Textbasiertes User Interface für CGMiner

CGMiner aus GIT klonen
Verzeichnis erstellen wo der CGMiner rein soll
git clone klont von github den aktuellen cgminer.

mkdir -p mining/2pac 
cd mining/2pac
sudo git clone https://github.com/vthoang/cgminer.git

CGMiner kompilieren
Der Parameter –enable-gekko aktiviert die GekkoScience Treiber für Compac und 2Pac Miner.

cd cgminer

sudo CFLAGS="-O2" ./autogen.sh --enable-gekko
sudo make -j 2

Binary testen
Das erzeugte Binary testen. Mit der Option -n werden alle angeschlossenen USB-Miner angezeigt.

./cgminer -n

Weitere Komandozeilenparameter sind z.B.
-D = Debug-Ausgabe aktivieren
-E =
-m =
-n = Alle USB-Geräte anzeigen
-P =
-Q =
-q = Protokollausgabe deaktivieren, Status und Fehler anzeigen
-U = URL
-V = Version anzeigen
-s =
-T =
-O = Benutzername:Passwort
-c = Konfigurationsdatei die geladen werden soll
-h = Hilfe

Inbetriebnahme
Betrieb bis 150MHZ mit Lüfter / Kühlung machbar. Ohne nur bis 100MHZ.

Leistung in GH/s = 0.11 * MHz

cd ~/mining/2pac/cgminer
sudo ./cgminer -o stratum+tcp://stratum.braiins.com:3333 -u hargil.BTC_01 -p anything123 --suggest-diff 32 --gekko-2pac-freq 100

-o = Pooldaten
-u = Benutzername Pool
-p = Passwort Pool

–gekko-2pac-freq =
–suggest-diff = Miner-Schwierigkeit

CG-Miner mit Konfigurationsdatei

Konfigurationsdatei
Anlegen und erstellen einer Konfigurationsdatei.

-> Verzeichnis erstellen
-> in das neue Verzeichnis wechseln
-> cgminer.conf erstellen

mkdir -p /home/pi/mining/2pac/config
cd /home/pi/mining/2pac/config
sudo nano cgminer.conf

https://www.lurkmore.com/view/Cgminer.conf#:~:text=cgminer.conf%20is%20the%20default%20configuration%20file%20for%20the,cgminer.conf%20is%20the%20best%20way%20to%20run%20cgminer.

{
"pools" : [
	{
		"url" : "stratum+tcp://stratum.braiins.com:3333",
		"user" : "hargil.BTC_01",
		"pass" : "anything123"
	}
]
,
"gekko-2pac-freq" : "125",
"kernel-path" : "/usr/local/bin"
}

CGMiner mit Konfigurationsdatei starten

sudo ./cgminer -c /home/pi/mining/2pac/config/cgminer.conf

Autostart

Autostart
Starten von CGMiner beim Systemstart / Autostart

Als erstes muss im Verzeichnis /etc/init.d/ ein Skript erstellt werden, mittels welchem der CGMiner gestartet wird.

sudo nano /etc/init.d/CGMiner
#! /bin/sh
### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
 
case "$1" in
    start)
        echo "CGMiner wird gestartet"
        # Starte den CGMiner Programm
        /home/pi/mining/2pac/cgminer/cgminer -c /home/pi/mining/2pac/config/cgminer.conf
        
        # Eine weitere Möglichkeit den Miner zu starten
        # screen -d -m -S cgminer sudo /home/pi/mining/2pac/cgminer/cgminer -c /home/pi/mining/2pac/config/cgminer.conf
        # -d
        # -m
        # -S
        ;;

    stop)
        echo "CGMiner wird beendet"
        # Beende Programm
        killall cgminer
        ;;
    *)
        echo "Benutzt: /etc/init.d/CGMiner {start|stop}"
        exit 1
        ;;
esac
 
exit 0

Rechte zuweisen

sudo chmod 755 /etc/init.d/CGMiner

Script testen

sudo /etc/init.d/CGMiner start

Scriptaufruf in die Autostartdatei eintragen

sudo update-rc.d CGMiner defaults

sudo update-rc.d -f CGMiner remove
sudo nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# CGMiner starten
/etc/init.d/CGMiner start

exit 0

Screen

https://wiki.ubuntuusers.de/Screen/

sudo apt-get install screen

screen – Startet den Fenstermanager

-c dateinameKonfigurationsfile laden
-ddetach
-h lineshistoryAnzahl der History-Linien die angezeigt werden.
– ls [match]
-listlistwie -ls
– m ignor $STY variable, do create a new screen session
– r [session]resumeReatach to a detached screen process
-S sitzungStartet eine neue Sitzung mit dem Namen „sitzung“
-t titleSet title (window’s name)
-vversionZeigt die Programmversion an
-wipe [match]
-x„attach“ mit einem nicht „detacht“ Screen (multi display mode)
–helpZeigt einen Hilfebildschirm an
Komandozeilenparameter
0 – 9Springt zum Terminal mit der entsprechenden Nummer; die Nummerierung beginnt bei 0
^B bbreak
CclearErstellt ein neues, leeres Fenster (terminal)
:colon
copy
^D ddetachTrennen der Verbindung zur aktuellen Sitzung, Sitzung läuft im Hintergrund weiter
^Vdisgraph
*display
:dumptermcap
Ffit
^F fflow
^Ifocus
hhardcopy
?helpÜbersicht über Tastaturkürzel / Online-Hilfe
{ }history
iinfo
K kkillBeendet den Screen
^M mlastmsg
,license
HlogSchreibt die Ausgaben des Terminals in ein Logfile mit Namen screenlog.<nummer>; als Nummer wird die Nummer des virtuellen Terminals angehängt. Die Wiederholung des Kommandos beendet das Mitschneiden.
Llogin
ameta
Mmonitor
nnextwechselt in das nächste virtuelle Terminal
Nnumber
Qonly
^Aother
Bpow-break
Dpow-detach
Ppreviouswechselt ins vorige virtuelle Terminal
\quitBeendet das Programm
<readbuf
^L lredisplay
Xremove
=removebuf
Zreset
^C cscreenErstellt ein neues, leeres Fenster (terminal)
select
_silence
Ssplit
^Z zsuspend
^T ttimeZeigt die aktuelle Systemzeit an
AtitleTerminalbezeichnung umbenennen
^Gvbel
vversionZeigt die Programmversion an
Wwidth
^R rwrap
>writebuf
^S sxoff
^Q qxon
Wechseln zwischen den einzelnen Fenstere einer Sitzung
windwoslistBlendet eine Liste der Terminals ein; mit den Pfeiltasten navigieren Sie in der Liste, mit [Eingabe] wechseln Sie zum Fenster unter der Markierung.
WBlendet für ein paar Sekunden eine Statuszeile am unteren Fensterrand ein, welche die Anzahl der geöffneten Fenster (und deren Namen) anzeigt.
Tastaturkürzel von Screen

Testen ob der CGMiner läuft

mit top, htop oder ps

CGminer 4.12.1 GekkoScience

Beschreibt die Installation von CGminer 4.12.1 GekkoScience auf einem Raspberry Pi 2. Beim CGminer 4.12.1 von „wareck“ handelt es sich um eine speziell für die USB Miner Compac, 2pac, Newpac und CompacF angepasste Version.

Weitere Informationen gibt es bei github.

Hard und Software
GekkoScience CompacF USB Miner
Raspberry Pi 2
Lüfter / Kühlung für Miner

Voraussetzungen
Vorinstalliertes und aktualisiertes Raspian (Debian stretch) auf SD-Karte mit ssh-Zugang.

Zusätzliche Pakete
Zusätzliche Pakete installieren um die Abhängigkeiten von CGminer aufzulösen:

sudo apt-get install build-essential git autoconf automake libtool pkg-config libcurl4-openssl-dev libudev-dev libjansson-dev libncurses5-dev libusb-1.0-0-dev zlib1g-dev -y

build-essential – Compiler und Compile Werkzeuge
git – Source Code repository
autoconf – für den Build aus GIT nötig
automake – für frn Build aus GIT nötig
libtool pkg-config – shared library Zugriff für CGMine
pkg-config – Für Build und Kompilierung benötigt
libcurl4-openssl-dev – http connectivity für CGMiner
libudev-dev – USB support für CGMiner
libjansson-dev – C-Bibliothek für JSON-Daten
libncurses5-dev –  Textbasiertes User Interface für CGMiner
libusb-1.0-0-dev – USB support für CGMiner
zlib1g-dev – Kompressionsbibliothek

CGMiner aus GIT klonen
git clone klont von github den aktuellen CGminer-gekko.

sudo git clone https://github.com/wareck/cgminer-gekko.git

CGMiner kompilieren
Der Parameter –enable-gekko aktiviert die GekkoScience Treiber.

cd cgminer-gekko
sudo usermod -a -G dialout,plugdev $USER
sudo cp 01-cgminer.rules /etc/udev/rules.d/
sudo CFLAGS="-O2 -march=native" ./autogen.sh
sudo ./configure --enable-gekko
make
sudo make install

Binary testen
Das erzeugte Binary testen. Mit der Option -n werden alle angeschlossenen USB-Miner angezeigt.

./cgminer -n

Inbetriebnahme

sudo  ./cgminer -o stratum+tcp://stratum.braiins.com:3333 -u hargil.BTC_02 -p anything123 --suggest-diff 32 --gekko-compacf-freq 250

weitere mögliche Gekko-Parameter

  --gekko-compac-freq <clock>   Chip clock speed (MHz) default is 200 Mhz
  --gekko-2pac-freq <clock> Chip clock speed (Mhz) default is 150 Mhz 
  --gekko-newpac-freq <clock> Chip clock speed (Mhz) default is 150 Mhz
  --gekko-compacf-freq <clock>
  --gekko-r606-freq <clock> Set GekkoScience Terminus R606 frequency in MHz, range 50-900 (default: 550)
  --gekko-terminus-detect Detect GekkoScience Terminus BM1384
  --suggest-diff <value> Limit diff for starting mine default is 32

Raspberry PI – WLAN

Aufgabe:
Ich möchte am Raspberry PI 2 einen WLAN-USB-Stick betreiben. Dazu muss dieser eingerichtet werden

Herausfinden ob der/ein Stick angesteckt ist, funktioniert und um was für einen es sich handelt:

lsusb

-> Bus 001 Device 005: ID 057C:8401 AVM GmbH Fritz! MLAN N (Atheros AR9001U)

Mit folgendem suche ich ob ein entsprechender Treiber angeboten wird.

apt-cache search atheros

->firmware-atheros - Binary firmware for Atheros wireles cards

Die Firmware wird heruntergeladen und installiert.

 sudo apt-get install firmware-atheros 

Eine auflistung aller geladenen Module gibt es mit lsmod. Hier sollte der WLAN-Stick zu finden sein, zumindest der verwendete Chipsatz.

Die zur Verfügung stehenden WLAN-Netzwerke werden mit iwlist wlan0 scan aufgelistet.

Die SSID des Netzwerk welches verwendet werden soll muss nun in die etc/wpa.conf eingetragen werden. Dies geht mit sudo nano etc/wpa.conf

network={
ssid="YOUR-SSID"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="WPA-PASSWORD"}

In /etc/network/interfaces muss nun noch mit sudo nano /etc/network/interfaces
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf
eingetragen werden.

Mit ifconfig kann das ganze überprüft werden.

Raspberry Py – Bezeichnung Schnittstellen

Netzwerk-Schnittstelle für Ethernet und WLAN haben seit Raspbian Stretch andere Bezeichnungen. Also nicht mehr „eth0“ und „wlan0“, sondern „enx…“ und „wlx…“. Die betrifft allerdings nur über USB angeschlossene Schnittstellen. Die integrierte WLAN-Schnittstelle vom Raspberry Pi 3 B gehört nicht dazu.

Kernel-Parameter

Um zu den alten und gewohnten Bezeichnungen zurückzukehren fügt man einfach einen Kernel-Parameter hinzu, der beim Systemstart berücksichtigt wird. Hierzu muss man eine Konfigurationsdatei ergänzen.

sudo nano /boot/cmdline.txt

Am Ende der Zeile mit einem vorangestellten Leerzeichen einfügen:

net.ifnames=0

Speichern, schließen und System neu starten.

Raspberry PI – SSH

Mein Raspberry PI 2 soll als Bridge eingesetzt werden.

Hab ne neue SD-Karte 8GB mit dem SDFormater formatiert.

Dann hab ich das aktuelle Raspian-Image 2018-11-13-raspian-stretch-lite mit Win32DiskImager auf die SD-Karte geschrieben.

Auf der SD-Karte im Verzeichnis „boot“ eine leere Datei mit dem Namen „ssh“ erstellt. Damit wird einmalig der Zugriff per SSH möglich.

Raspberry angeschlossen und in der Fritzbox nachgeschaut ob er im Netzwerk ist – 192.168.1.130.

Nun kann mit der Software Putty auf den Raspberry per SSH zugegriffen werden.

Benutzer (login as): pi
Passwort: raspberry
Das Passwort kann mit sudo passwd geändert werden

Damit SSH dauerhaft zur Verfügung steht muss es aktiviert werden. die geht mit „sudo raspi-config“

UPDATEN
Nun soll der Raspberry mit „sudo apt-get update“ auf den aktuellen Stand gebracht werden.
Freier Speicherplatz wird mit
Mit „sudo apt-get upgrade“ werden die neuen Pakete installiert.

Raspberry neu starten mit „sudo reboot“