Raspberry PI : Comment miner des Bitcoins avec des clés de minage ASIC USB

asic-usb-miner-blackNous allons voir dans ce billet comment miner des Bitcoins à l’aide d’un Raspberry PI, du logiciel cgminer (version 3.1.1) et de clefs de minage ASIC USB. Cette configuration est très largement utilisé par les mineurs de Bitcoin car elle permet un meilleur ratio entre le coût électrique et le gain de Bitcoin enregistré.

Comme nous allons utiliser un Raspberry Pi fraichement installé, il va falloir utiliser la version 3.1.1 du programme cgminer car les versions plus récentes ne sont pas compatible (elles fonctionnent mal). Pour rendre ce tutoriel accessible au plus grand nombre, je vais quand même donner les instructions d’installation pour la dernière version. Mais j’insiste bien sur le fait que les utilisateurs de Raspberry Pi doivent utiliser la version 3.1.1.

Avant de continuer, sachez que cgminer ne gère pas certaines clés de minage. Par exemple les clés Antminer ne fonctionnent pas avec cgminer. Il faut peut être vous orienter vers bfgminer et heureusement j’ai fait un tutoriel pour ça !

Installation des paquets nécessaires

Avant de poursuivre, il va falloir installer un certain nombre de composant permettant la compilation du programme sur votre Raspberry. Tout s’installe avec la ligne de commande ci-dessous.

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

Détecter les clés de minage

Une fois l’installation fini, redémarrez le Raspberry PI (je ne sais plus si c’est obligatoire…) puis essayez de brancher vos clés ASIC USB. Pour voir si elles sont disponible, vous pouvez exécuter en tant que root la commande suivante.

ls /dev/*USB*

Si elle retourne des entrées comme ci-dessous c’est bon signe.

/dev/ttyUSB0  /dev/ttyUSB1

Il ne vous reste plus qu’à valider en utilisant la commande suivante.

lsusb

Elle devrait vous retourner plusieurs lignes avec notament des lignes contenant ceci.

Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light

Création d’un utilisateur

Comme d’habitude sur Linux, nous allons créer un utilisateur qui servira exclusivement au minage des Bitcoins en exécutant le programme cgminer. La commande ci-dessous va vous permettre de créer le dossier de l’utilisateur ainsi que l’utilisateur avec tous les paramètres qu’il faut.

mkdir /home/bitcoin
useradd bitcoin --home /home/bitcoin --groups plugdev
chown -R bitcoin: /home/bitcoin

Pour ajouter le groupe plugdev à un utilisateur déjà existant il suffit d’exécuter la commande suivante.

sudo usermod -a -G plugdev <username>

Télécharger le programme

cgminer version 3.1.1

J’ai hébergé moi même les sources de la version 3.1.1 et vous pouvez donc les télécharger depuis ce mirroir ou si vous ne me faites pas confiance, rendez-vous sur le site officiel de cgminer pour prendre la version 3.1.1.

wget http://files.hawkcreation.com/bitcoin/cgminer-3.1.1.tar.bz2
tar -jxvf cgminer-3.1.1.tar.bz2

cgminer version latest

Pour prendre la dernière version de cgminer nous allons utiliser le dépot github officiel grâce à la ligne suivante.

git clone https://github.com/ckolivas/cgminer.git

Note : Si vous avez des problèmes de compilation car il y a un soucis avec le dépot, rendez-vous sur le site officiel pour télécharger la dernière version figé (ici la 3.9.0).

Compilation de cgminer

Que vous utilisiez l’une des deux versions ne changera pas cette étape, nous allons simplement compiler notre programme. Pour cela il faut se rendre dans le dossier où se trouve toutes les sources puis exécuter les scripts de compilation comme ci-dessous.

Compiler la version 3.1.1

cd cgminer-3.1.1
sh autogen.sh
./configure --enable-icarus --enable-bflsc
make

Si la compilation se fini bien, vous aurez un fichier exécutable appelé « cgminer« .

Compilation de la dernière version

cd cgminer
autoconf
automake
./configure --enable-icarus --enable-bflsc
make

Options de configuration

Voila les différents équipement en associé aux options.

–enable-avalon : Avalons
–enable-bflsc : Butterfly Labs
–enable-bitforce : BitForce FPGAs
–enable-bitfury : Bitfury
–enable-hashfast : Hashfast
–enable-icarus : Icarus bitstream FPGAs and Block Erupters
–enable-knc : Miners KNC
–enable-bab : BlackArrow Bitfury
–enable-klondike : Klondike
–enable-modminer : ModMiner FPGAs

Note : Worpress est vilain et au lieu de mettre deux symboles tiret comme ceci « – » il met ça « –« . Pendez donc à remettre bien deux tirets « du 6 » …

Fichier de configuration

Nous allons maintenant créer un fichier de configuration pour ajouter l’adresse de notre pool de minage et l’utilisateur associé. Notre configuration sera basique mais vous pourrez chercher plus d’information en vous rendant sur le README de GitHUB (Pour les 3.1.1 rendez-vous dans le fichier README présent avec les sources !).

Ouvront un nouveau fichier dans le dossier contenant l’exécutable compiler à l’instant.

nano /home/bitcoin/cgminer-3.1.1/cgminer.conf

Puis ajoutez le contenu ci-dessous en prenant bien garde à changer les valeurs souligné.

{
"pools" : [
        {
                "url" : "http://stratum.bitcoin.cz:3333",
                "user" : "Shadwk.public",
                "pass" : "x"
        }
]
,
        "expiry" : "120",
        "failover-only" : true,
        "hotplug" : "5",
        "log" : "5",
        "no-pool-disable" : true,
        "queue" : "10",
        "scan-time" : "60",
        "temp-hysteresis" : "3",
        "worktime" : true,
        "shares" : "0",
        "kernel-path" : "/usr/local/bin",
        "icarus-options" : "115200:1:1",
        "icarus-timing" : "3.0=100"
}

Aller plus loin : multipool

Si vous souhaitez aller plus loin, vous pouvez faire en sorte que cgminer soit configuré pour faire du multipool.

Cette fonctionnalité permet de renseigner plusieurs pools puis de définir une mode d’activité. Le mode d’activité de cgminer fonctionne en « failover » qui permet de passer d’un pool à l’autre lorsqu’une défaillance survient.

Launcher cgminer

Maintenant que la configuration est faite, nous allons créer un fichier shell qui va permettre de lancer notre programme sans avoir tous les paramètres à nous passer manuellement.

nano /home/bitcoin/cgminer-3.1.1/start.sh

Puis ajoutez les lignes suivante en adaptant suivant la situation.

cd /home/bitcoin/cgminer-3.1.1/
./cgminer  --icarus-options 115200:1:1 --icarus-timing 3.0=100 --config /home/bitcoin/cgminer-3.1.1/cgminer.conf

Pour résumer, ce script va lancer le minage sur toutes les clés disponible en utilisant le fichier de configuration que nous avons créé précédemment.

Pour commencer le minage et vérifier que tout fonctionne, il ne reste plus qu’à faire cette commande qui va lancer le script.

sh /home/bitcoin/cgminer-3.1.1/start.sh

Si tout ce passe bien, vous aurez après quelques secondes comme l’image ci-dessous. De plus, vos clés ne seront plus allumé en vert de manière fixe mais elles seront éteinte et clignoteront à chaque fois qu’elles trouveront un share valide.

cgminer-raspberry-pi

Lancer le minage au démarrage du Raspberry PI

Nous allons dans cette étape faire en sorte que cgminer soit relancé automatiquement à chaque fois que le Raspberry PI est redémarré. De cette façon nous n’aurons plus à nous soucier de le redémarrer à chaque fois manuellement. Notez que cette astuce vous permettra de rajouter plein de programmes en plus si vous en avez besoin.

Modifier le crontab

Pour commencer nous allons éditer le cron de l’utilisateur root. Pour cela, il faut vous loguer en tant que root puis ouvrir l’éditeur de cron.

su

Une fois votre mot de passe confirmé, vous aurez normalement un # juste à côté du curseur clignotant indiquant que vous êtes en root. Il ne vous reste plus qu’à ouvrir l’éditeur de cron.

crontab -e

Maintenant rendez-vous tout en bas pour rajouter la ligne suivante :

@reboot sh /root/reboot.sh

Création du script

La ligne ajouté dans le cron exécute un script qui n’existe pas pour le moment alors ouvront nano !

nano /root/reboot.sh

Puis ajoutez la ligne ci-dessous puis faites un CTRL + O puis ENTER puis CTRL + X. Cette combinaison de touche vous permet de sauvegarde vos modifications puis de fermer nano.

screen -dmS mining sudo -u bitcoin sh /home/bitcoin/cgminer-3.1.1/start.sh

La ligne que nous avons renseigné dans notre fichier se trouve plein de bonnes choses !

Pour commencer, nous créeons une screen avec pour nom « mining« . Dans cette screen nous allons exécuter un programme (notre script de lancement de cgminer) en tant qu’utilisateur bitcoin. Et voila maintenant vous pouvez oser l’audacieuse commande « reboot » pour voir si votre programme se relance.

Note : Dans les dernières version il faut lancer le minage en root. Je n’ai pas encore trouvé comment donner les bons droits à l’utilisateur pour éviter ce problème… Je modifierais lorsque j’aurais trouvé !

Dépannage

Si comme moi vous remarques que votre Raspberry Pi plante régulièrement sans raison, voici une astuce trouvé sur internet qui dans mon cas à solutionné le problème.

Commencez par vous mettre en utilisateur root et ouvrez le fichier suivant.

su
nano /boot/cmdline.txt

Maintenant rajoutez à la fin de la ligne le paramètre ci-dessous (pensez a mettre un espace avant !) puis enregistrez (CTRL + O) et fermez l’éditeur (CTRL + X).

slub_debug=FP

Il ne vous reste plus qu’à redémarrer le Raspberry Pi et vos problèmes seront fini !

Me remercier ?

Si cet article vous a été utile, n’hésite pas à me remercier en m’envoyant quelques miettes à cette adresse : 1ETKyErVGhcx4pbGiw847oD5h1Eu4SsFk8 et en attendant, bon minage à tous !

13 commentaires sur “Raspberry PI : Comment miner des Bitcoins avec des clés de minage ASIC USB”

  1. ça marche !! =D
    en effet, la version 3.9.0 marche très bien, j’ai juste eut un soucis lors de la compilation, un message d’erreur qui disait grosso modo que autoconf (ou automake, je ne sais plus) deconnais..
    mais ça n’empêche pas de fonctionner !

    Bon minage à vous tous ! ^^

  2. pour tout ceux qui ont un probleme il faut installer cgminer-3.9.0 et non le 3.1.1 voilà moi ca marche parfaitement mais c’est vrai que ce n’est pas clair, merci

  3. Ping : Raspberry PI : miner des Bitcoins avec des clés Antminer

  4. Bonjour,

    Je ne sais pas du tout comment il a résolu son problème… Essayez de démarrer cgminer en administrateur ou avec vous bien fait les étapes du début ?
    Dans tous les cas, bon courage.

    Romain

  5. Bonjours, j’ai exactement le meme problème que Jolona, quel à été la solution ?
    Merci beacoup pour une réponse éventuelle ^^

  6. Bonjour,

    Moi aussi j’ai eu des soucis avec la syntaxe JSON qui était valide mais pas supporté par cgminer… Dans mon cas c’était une virgule en trop dans la liste des pools.

    Le mieux est de repartir d’une version qui marche et refaire les modifications au pas à pas…

    Bon courage !

  7. Bonjour Romain,
    Merci pour ce tuto.
    J’ai pris dernière version de cgminer (la 3.9.0).
    Lorsque je lance le start.sh, j’obtiens l’erreur:
    ./cgminer: –config: JSON decode of file ‘/home/bitcoin/cgminer-3.9.0/cgminer.conf’ failed ‘[‘ or ‘{‘ expected near ‘’
    J’ai vérifier la validité json de cgminer.conf et elle est ok.

    Qu’est-ce j’ai loupé ?

    David.

  8. Bonjour,

    Le mieux est de prendre la dernière version de cgminer (la 3.9.0) qui fonctionne bien avec le raspberry pi.

    Il faudra que je rechange et que je retire toute la partie avec le 3.1.1…

    Pour infos, je n’arrive plus à démarrer cgminer sans être root. Je n’ai pas encore cherché la raison mais si quelqu’un à la solution qu’il n’hésite pas à faire tourner 😉

    Si tu as besoin d’aide n’hésite pas à me contacter par mail via la page « me contacter » 😛

  9. Bonjours Hawk,
    merci pour ce tutoriel très précis qui m’aide beaucoup, cependant j’ai un petit problème et je me dis que vous auriez peut-être la solution.

    Au moment de lancer cgminer (3.1.1), ce dernier me renvoi l’erreur « no devices detected », et du coup cela ne fonctionne pas.

  10. Bonjour Hawk,

    Si je comprends bien, vous avez installer 2 clefs de minage ASIC USB sur votre Rasperry Pie. Est-ce correcte ?

    Auriez-vous des sites à me recommander pour l’achat de clefs de minage ASIC USB en France ? ou dans un autre pays européen de préférence. ou à défaut USA ou Chine.

    Le coût réel de ce type de clef est-il vraiment d’une centaine environ ou est-ce moins coûteux ?

    Cdt.
    Pierro

Laisser un commentaire