Miner du Monero sous Gnu/Linux avec un GPU Nvidia

Rédigé par citizenz - - 10 commentaires

CEKOIDON ?
Wikipedia nous dit que "Monero (XMR) est une crypto-monnaie open source axée sur la vie privée et la décentralisation créée en avril 2014.
Contrairement à de nombreuses crypto-monnaies dérivées de Bitcoin, Monero est basée sur le protocole CryptoNote et possède une différence algorithmique importante quant à l'obscurcissement de la chaîne de bloc.
Monero bénéficie du soutien continu de sa communauté et son architecture de code modulaire a été salué par Wladimir J. van der Laan, un responsable du Bitcoin Core.
La capitalisation du Monero est passée de 3,7 millions de dollars (3 déc. 2015) à plus de 170 millions de dollars (3 sept. 2016), avant de retomber aux alentours de 60 millions deux mois plus tard (3 nov. 2016)..."

En 2016, le journal Le Monde éditait même un article élogieux sur Monéro. En appuyant sur le côté Libre et opensource de cette crypto-monnaie, le journal ne peut s'empécher de néanmoins qualifier Monéro de "objet geek" où "pour créer un portefeuille sécurisé sur son ordinateur, il faut savoir taper des lignes de code...".

On peut même lire dans ce même article du Monde qu'un "spéculateur" parisien pense que "le bitcoin sera la valeur sûre, comme l’or, et le monero sera le cash anonyme.".
Un autre, un peu plus "éméché" ou taquin... allant même jusqu'à dire en copiant Pierre Desproges : "Moi ce que j'aime chez Bitcoin, c'est le Monéro de Ravel !". Bref ! ...

Je vous en remets aux centaines d'articles écrits... et bien écrits, mieux que moi et qui parlent des crypto-monnaies, des avantages, des inconvénients, etc.

HOUSTON ... ON A UN PROBLEME ...
Il parrait que toutes ces petites crypto-monnaies se "minent" avec des cartes graphiques à puces AMD. Seulement voila : moi j'ai une carte graphique à base de Nvidia et pas top récente (GTX 760).
Après pas mal de recherches pour essayer de comprendre un peu tout ce petit monde, voila le résultat : ça mine plutôt pas mal avec ccminer-cryptonight. Voila donc ci-dessous, en détails, comment installer la bête sous Linux (Ubuntu et Debian-like).

PILOTES
Préalable : installer les pilotes nvidia proprio.

INSTALLATION DE CUDA
Installation de CUDA et de toutes les dépendances (Vérifiez la dernière version de cuda-repo sur http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/) :
$ cd /home/$USER
$ mkdir Downloads
$ cd Downloads/
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ sudo apt update
$ sudo apt install cuda

EDITION .BASHRC DE ROOT
Editez le .bashrc de root et ajoutez ces lignes à la fin du fichier :
$ sudo vi /root/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-8.0/bin:$PATH

REBOOT
... On reboot !

INSTALLATION CCMINER-CRYPTONIGHT
Installez toutes les dépendances:
$ sudo apt install libcurl4-openssl-dev git build-essential libssl-dev
$ sudo apt install autotools-dev autoconf libcurl3 libcurl4-gnutls-dev

Téléchargez, compilez et installer l'appli de minage GPU Monero "ccminer-cryptonight" en utilisant les commandes suivantes :
$ cd Downloads/
$ git clone https://github.com/tsiv/ccminer-cryptonight
$ cd ccminer-cryptonight/
$ ./autogen.sh
$ ./configure
$ sudo su
# make
# make install
# exit

ON DEMARRE !
Mais avant de commencer il vous faut un "Wallet" (portefeuille) Monero qui est en fait une sorte d'adresse (super longue !)
Pour plus de facilité, rendez-vous sur mymonero.com puis cliquez sur "Create an account".
Descendez dans la page et repérez la partie "Your private login key". Notez cette phrase à rallonge dans un fichier puis copier-coller-la dans le cadre juste en dessous "Confirm your private login key".
Vous aurez juste après accès à votre compte où vous retrouverez :
- Account Address (Public) : c'est votre adresse monero (wallet) que vous utiliserez dans la config de l'appli qui va miner.
- View Key (Private)
- Spend Key (Private)
Mettez tout ça de coté dans un fichier que vou garderez préciseusement.

Et c'est partit pour le minage de Monero avec un GPU nvidia ! Surveillez quand même votre carte avec nvidia-smi ou autre appli, notamment niveau température.

Je vous conseille pour plus de facilité de créer un fichier start.sh dans le dossier ccminer-cryptonight. Ce fichier start.sh

Ce fichier contiendra ce genre de ligne:
#exemple pour minergate
./ccminer -a cryptonight -o stratum+tcp://xmr.pool.minergate.com:45560 -u -p x

#Exemple pour nanopool :
./ccminer -q -o stratum+tcp://xmr-eu1.nanopool.org:14444 -u monadresseXMRquiesttreslongue.worker/ -p x

Image ci-dessus : 211,98 H/s c'est maigre... mais c'est un début ! :D

N'oubliez pas de rendre le fichier start.sh exécutable :
$ chmod +x start.sh

... Et roulez jeunesse !

Monitorer sa carte graphique nvidia sous Gnu/Linux : le ventilateur

Rédigé par citizenz - - 3 commentaires

2ème article sur le monitoring du matériel sous Gnu/Linux.

Après avoir passé en revue quelques applis fort sympatiques qui permettent d'avoir un aperçu assez précis, je me penche un peu plus en détails sur la carte graphique, et plus particulièrement sur la carte Nvidia GTX 760. J'imagine que la plupart des cartes nvidia GTX xxx (et autres ?) réagiront de la même manière et les infos données ci-après seront également valables.

Je reviens premièrement et rapidement sur : nvidia-smi. Cette appli en ligne de commande permet d'avoir pas mal d'infos sur la carte graphique (voir article précédent). La documentation officielle vous fournit également pas mal de détails sur l'art et la manière d'utiliser les différentes options de mesure, de contrôle, ...

Le cas du/des ventilateur(s)

Si vous installez les pilotes propriétaires nvidia, vous pouvez également installer (à moins que cela ne soit déjà fait avec le pilote nvidia) l'application nvidia-settings qui vous permettra d'avoir accès facilement aux détails de la carte. Et notamment dans la partie "Thermal settings" aux infos sur la température, le ventilateur (RPM, % speed, ...).

Mais vous ne pouvez pas contrôler la vitesse du ventilo. Comment faire donc si vous avez une appli gourmande en ressources (mining ?) qui vous fait monter en flèche la température (72 °C sur la copie d'écran ci-dessous : minage de Monéro):

Regardez : le pourcentage du ventilo reste bloqué à 43 %. Il doit y avoir un moyen de "débloquer" le ventilo pour augmenter les RPM et et donc refroidire d'avantage la carte, quitte à avoir un peu plus de bruit...

Et bien en fait c'est super simple. Une commande magique aura suffit à faire apparaitre une petite case à cocher dans la partie Thermal settings" de nvidia-settings avec également un accès à une "réglette" qui permet d'ajuster manuellement le poucentage de RPM du ventilo.

Placez-vous dans :

cd /etc/X11

 Puis tapez :

sudo nvidia-xconfig --cool-bits=4

Cette commande va insérer une option (Option "Coolbits" "4") dans votre xorg.conf (section Screens).

Rebootez votre ordi et une fois redémarrez, relancez nvidia-settings, rendez-vous dans la partie Thermal settings et VOILA ! :

Sous la partie "Fan Information", un nouveau cadre est apparu avec une case (Enable GPU Fan Settings) et la fameuse "réglette".

Cochez la case ce qui va vous permettre d'avoir accès à la réglette et d'ajuster le pourcentage de RPM de votre ventilo de carte graphique.

Faites un essai : montez le poucentage à 80 % par exemple, n'oubliez pas de cliquer sur "Apply" et vous entendrez votre ventilo de carte qui va commencer à s'agiter fortement.

Dès que vous n'avez plus besoin du ventilo, décochez la case et tout revient "à la normale".

Cette config n'est pas disponible, évidemment, en ligne de commande. Pour un accès extérieur au PC, avec Teamviewer par exemple, cela devient vitre problématique si votre carte est proche des 100 %. Il restera tellement peu de "puissance graphique" que ça risque de pas mal freezer...

Si vous avez d'autres astuces, des infos, pour régler la carte en ligne de commande, je suis preneur ...

Monitorer son matériel sous Gnu/Linux

Rédigé par citizenz - - 4 commentaires

Dimanche : j'ai tout fait cramer. En ces jours de forte chaleur précoce (un p'tit 36 °C des familles fin mai, c'est pas banal en bourgogne nivernaise ...)
J'ai reçu du nouveau matos hier (!) et je dois bien dire que je suis un peu tendu niveau température du nouveau système que j'essaie de "monitorer" dans tous les sens...

Pour le moment, c'est du grand bonheur en comparaison de mon ancien CPU (AMD Phenom 2 x6). Mon nouveau Intel I5 7500 ne dépasse pas 42 °C en burn (j'ai fait pas mal de tests).
Certainement, le watercooling installé y fait pour beaucoup (Cooler master - Master Liquid 240).
Par exemple, ma carte graphique que j'ai récupéré de mon ancien ordi (MSI GTX 760) montait à 81 °C en "burn". Elle est à 66 °C en burn actuellement.
Le nouveau boitier (Be quiet! Pure base 600) permet une meilleure circulation de la chaleur : ventilo de 140 devant, ventilo de 120 derrière.

Bref ...

Voici les commandes et applis que j'utilise actuellement pour monitorer mon matériel, plus particumièrement la température :

Carte graphique : nvidia-smi
Nvidia-smi (System Management Interface) permet d'afficher pas mal d'infos sur la carte graphique.
J'affiche les infos de ma carte graphique Nvidia en "live" (température, ventilos, etc.) :

watch -n 0,1 nvidia-smi

Cela m'affiche toutes les secondes les infos de nvidia-smi.
En allant fouiller sur le site officiel, vous trouverez plein de commandes à rallonge pour comléter les informations recueillies, du style : 

nvidia-smi -i 0 -q -d MEMORY,UTILIZATION,POWER,CLOCK,COMPUTE
nvidia-smi -q -g 0 -d UTILIZATION -l

CPU : lm-sensors
Pour le CPU (et ses 4 cores), j'utilise le traditionnel lm-sensors qui vous trouverez sur quasiment toutes les distrib.
Sous Debian-like: apt install lm-sensors
Puis lancez : sensors-detect
Vous pouvez quasiment répondre Yes à chaque question ou suivre les recommandations de l'appli (le yes ou le no est en majuscule quand il s'agit de l'option par défaut).

Disque dur : hddtemp
Pour le/les disque(s) dur(s), encore une app bien connue : hddtemp.
Sous Debian-like : apt install hddtemp
Vous lancez hddtemp en lui fournissant simplement l'emplacement du disque à monitorer, par exemple :  hddtemp /dev/sda

Attention toutefois, je n'ai aucun retour d'info pour disque en /dev/sda qui est un SSD (Samsung) :

/dev/sda: Samsung SSD 840 Series :  pas de capteur

Mon disque en /dev/sdb (disque dur "classique") me renvoie quant à lui les bonnes infos :

/dev/sdb: ST31000524AS: 35°C

Disque dur : smartctl
Un peu moins connu (en ce qui me concerne en tout cas), smartctl permet d'afficher des infos détaillées sur les disques.
Sous Debian-like (Ubuntu en l'occurence) : apt install smartmontools
Vous pouvez également installer smart-notifier.

On "active" Smart sur le disque :

sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda

Puis on affiche les infos grace à la commande suivante :

smartctl -a /dev/sda

Voici un extrait des infos (longues !) qui me sont retournées :

smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-53-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 840 Series
Serial Number:    S19HNEAD503664K
LU WWN Device Id: 5 002538 55033ae22
Firmware Version: DXT08B0Q
User Capacity:    120 034 123 776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed May 31 09:46:33 2017 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
...

On peut aussi utiliser des combinaisons d'options comme :

smartctl -d ata -A /dev/sda | grep -i temperature

Ou même afficher des infos sur l'état actuel d'un disque :

smartctl -s on -a /dev/sda

Enfin, n'oubliez pas de lancer le daemon smartd qui n'est pas actiivé par défaut sous Ubuntu.
Éditez le fichier /etc/default/smartmontools et décommenter la ligne :

start_smartd=yes

... puis démarrez le service en tapant :

sudo /etc/init.d/smartmontools start
Fil RSS des articles de ce mot clé