FAQ Technique > Tutoriels

[TUTO] BOINC@SBC (Raspberry Pi, etc...)

(1/90) > >>

Oncle Bob:
BOINC sur Single-board Computer

 
Un Rasberry Pi 1 B avec un lolcat. Ça, c'est pour que vous ne quittiez pas tout de suite le topic.

Qu'est-ce qu'un SBC ? C'est un ordinateur, généralement de faible puissance et de faible coût, dont tous les composants tiennent sur le même PCB (c'est à dire la même carte). Ceux-ci sont en général pourvu de System-on-Chip (puce qui regroupe CPU et GPU) de type ARM, qu'on retrouve principalement dans les tablettes et les smartphones.

Intérêts

- Faible coût à l'achat
- Faible consommation (2 à 4W pour la plupart des modèles)
      - Faible coût de fonctionnement
      - Faible chauffe (possibilité de dissipation passive et inaudible)
      - Alimenté en 5V pour la plupart (comme les chargeurs de tablettes/smartphones et les ports USB)
- Possibilité de fonctionnement "Headless" (sans écran)
- Possibilité de les laisser tourner 24/7 sans trop s'en préoccuper.
- "Disque dur" sous forme de carte (micro)SD peu coûteuse et facile à switcher pour tester différentes choses.
- Faible taille, facile à dissimuler.


Inconvénients

- Faible puissance de calcul.
- Si un élément grille on perd la machine complète.
- Pas de possibilité d'évolution.
- Pas de tri et tests poussés des puces comme pour du x86.
- Besoin d'un switch si vous en avez plusieurs, chaque SBC ayant besoin d'un accès internet (via Ethernet ou dongles Wifi USB). Les SBC modernes sont pratiquement tous équipés de wifi.
- Tous les projets n'ont pas d'application ARM.
- Pas très WAF complient :D
- Quand on en veut un, on en veut 100 :D


Comparatif des SBC existants
https://web.archive.org/web/20190917150451/https://en.wikipedia.org/wiki/List_of_single-board_computers (Septembre 2019, la page a disparu depuis février 2020 car impossible à tenir de manière à la fois claire et exhaustive)


Quelques modèles intéressants pour le crunch


- Les Raspberry Pi existent en différentes versions. Nous passeront rapidement sur les modèles A et A+ dénués de port Ethernet et sur les B et B+ qui, s'ils sont équipés en Ethernet, ont le même SoC incluant un vieux CPU ARMv6 anémique et monocore. Le modèle 2, lui, est équipé d'un ARMv7 quad-core, d'un GB de RAM et d'un port Ethernet.

Avantage : Communauté étendue et active. Inconvénients : un peu cher par rapport à ses concurrents direct (40 euros).

Bench : 441 floating point MIPS (Whetstone) per CPU / 1704 integer MIPS (Dhrystone) per CPU
- OC à 1 GHz : 491/1895

/!\ Attention : si vous overclockez votre Raspberry Pi, sa consommation augmentera de même que son dégagement thermique. L'ajout de petits rads autocollants, bien que peu efficaces, ne peut guère lui faire de mal. On en trouve à tous les prix, perso j'utilise des chinois à 0,40 € le lot. Notez que ces petits dissipateurs sont autocollants, et non retirables (risques d’endommager la puce). Privilégiez aussi un boitier ouvert (perso j'utilise celui-ci) afin d'éviter une accumulation d'air chaud.

- Dans sa version 3, le Raspberry Pi embarque un ARMv8 (~20% plus performant qu'un v7 à fréquence égale) tournant à 1.2 GHz (contre 900 MHz pour le Rasp 2). En revanche, il semble souffrir de gros problèmes de surchauffe en utilisation lourde (comme le crunch :D), avec un SoC flirtant avec les 100°C ou bien étant contraint au throttle, c'est à dire automatiquement réduire sa fréquence (ici à 600 MHz) dans le but de se protéger. Je déconseille donc fortement son utilisation sans système de dissipation thermique efficace. Il est en revanche nativement pourvu de wifi et de Bluetooth, ce qui permettra une connexion plus simple que via le port Ethernet (qui est toujours présent en version Fast Ethernet).

- La version 3B+ est un ratage complet, elle consomme à mort et n'apporte pas grand chose. Passez votre chemin.

- Dans sa 4eme version (oui j'update ce post de temps à autre :o), le RPi 4... chauffe encore plus que le 3B+. Pour rappel, les consos mesurées en charge par Canard PC Hardware : 1,25A pouyr le 4, 1,23A pour le 3B+ et... seulement 0,6 pour le 2 v1.2 (sous 5V à chaque fois). Heureusement, des petits malins ont pondu un (micro)ventirad, le Blink Blink Ice, qui tourne avec un ventilo de 40 mm. fzs600 en a acheté un et obtient des températures convenables en crunch.
Niveau perf, on a ~25% de mieux que le 3B+ grâce à la RAM qui passe à la DDR4 et surtout au CPU qui propose 4 cœurs A72 contre 4*A53 sur les Rpi 3, le Rpi 3B+ étant ~48% plus performant que le Rpi 2 v1.2 (chiffres tirés de Canard PC Hardware n°42 (Oct-Nov 2019)).
A noter que le RPi 4 est disponible avec 1, 2 ou 4 Go de RAM.

* * *


- L'Orange Pi PC est équipé d'un Go de RAM et utilise un SoC Allwinner H3 dont l'ARMv7 est un quad-core cadencé à 1.54 GHz. Il faudra aussi impérativement l’équiper d'un radiateur car il chauffe beaucoup, la faute à un OC d'usine complètement délirant. Personnellement j'utilise un radiateur de 35*35 mm (légèrement limé à un endroit pour que ça passe), et l'OrangePi crunch @55°C pour une fréquence réglée à 1.20 GHz. Le rad que j'utilise fait 14 mm de haut. Pour les fixer, j'utilise de l'Arctic Silver Alumina Adhesive, qui est une colle ayant un bon transfert thermique. Une dose (~10 euros) permet de coller plusieurs radiateurs.

Avantage : faible prix (15$). Inconvénients : communauté plus petite que pour le Raspberry, quelques réglages à faire pour le remettre à la bonne fréquence, alimentation par jack 4*1.7 mm (même dimensions que pour la PSP de Sony).

Pour régler ce problème, nous allons utiliser un script écrit par bronco, un utilisateur d'Orange Pi PC, qui permet de remettre les fréquence@stock du CPU et de la RAM et échelonne la tension demandée en fonction de la fréquence du CPU. Un grand merci à lui, même s'il ne lira jamais ce post. [Dietpi inclue nativement ce script à partir de sa version 115].


--- Code: ---wget -O /usr/local/bin/fix-thermal-problems.sh "http://kaiser-edv.de/tmp/H9rWPf/fix-thermal-problems.sh"
chmod 755 /usr/local/bin/fix-thermal-problems.sh
/usr/local/bin/fix-thermal-problems.sh
--- Fin du code ---

Un message devrait vous signaler si le script a bien été installé et vous demander de rebooter.


--- Code: ---sudo reboot
--- Fin du code ---

Si vous souhaitez régler la fréquence manuellement, éditez le script et remplacez la valeur max_freq par celle de votre choix (voir les différentes valeurs (LV1, LV2...) disponibles en dessous de cette dernière) :


--- Code: ---sudo nano /usr/local/bin/fix-thermal-problems.sh
--- Fin du code ---

Bench : environ 500/2000 @1.20 GHz.

Le mien travaille 24/7@1.2 Ghz sur Enigma@home, voici sa "fiche" : http://www.enigmaathome.net/show_host_detail.php?hostid=168922

Conso typique en charge : ~0,5A sous 5V (soit 2,5W) pour un OPiPC1, ~1A sous 5V (soit ~5W) pour un OPiPC2.


Un cluster de 4 Orange Pi PC


* * *


L'Orange Pi One : Même processeur H3 que l'OPi PC, mais seulement 512 Mo de RAM et format de la carte plus petit.

Avantage : 30% moins cher que l'OPi PC (~9 euros). Inconvénient : Seulement 512 Mo de RAM, seconde puce RAM de l'autre côté du PCB.
/!\ Warning : Support inexistant pour le moment/!\

* * *


Le PINE64 est équipé de 512 à 2 GB de RAM et du même CPU que le Raspberry Pi 3, à savoir un ARMv8 A53, 64 bit (contre 32 pour les ARMv7) et environ 20% plus performant qu'un ARMv7 à fréquence égale.

Avantages : Faible prix (annoncé à 15$ pour un 512 Mo), CPU plus récent et performant que ses compétiteurs. Inconvénients : Seulement 512 Mo de RAM dans sa version la plus basique, Pas encore sorti !



* * *


Les TVBox Android


Il peut être tentant de se tourner vers les TVBox chinoises tournant sous Andoid. En effet, celles-ci viennent généralement avec un SoC quad ou octo-core Cortex A-53 (Amlogic série S905 ou S9*2, bien qu'on commence à trouver des modèle avec des SoC Rockchip) et ont déjà de la mémoire intégrée (en générale 16 Go), le tout pour une somme aux alentours de 25-30 euros chez votre revendeur asiatique favori. Best bargain ever ? Que nenni ! En réalité il s'avère que c'est une vraie purge de les gérer :

- Pas de MaJ de l'OS
- Potentiellement un petit tweak à faire pour avoir une appli si l'OS est un Android TV (BOINC ne sera alors pas au catalogue du GoogleStore)
- Pas de BOINCTasks
- Pas de SSH (sauf peut-être à installer une appli avec serveur SSH ?)

Ajoutez à cela que ces boxes ont tendances à perdre inopinément la connexion à intervalles plus ou moins régulier et qu'une fois que BOINC tourne il devient pratiquement impossible de naviguer dans l'OS, et vous comprendrez aisément qu'il vaut mieux aller vers une solution à base de Linux classique.

Source : J'ai eu une demi-douzaine de ces saletés :o




* * *
[*] Les projets dispos pour le Raspberry Pi

- Albert@Home
- Asteroidsd@home
- BitCoin Utopia
 -Collatz Conjecture
- Einstein@Home
- Enigma@Home
- FiND@Home
- Goofyxgrid@Home
- iThena
- LHC@Home
- MLC@Home
- MilkyWay@Home
- OProject@Home
- QuakeCatcherNetwork*
- Radioactive@Home*
- Rakesearch (appli en test)
- SETI@Home
- SETI@Home Bêta
- SubsetSum@Home
- T.Brada
- theSkyNetPOGS
- TN-Grid
- WEP-M+2 Project
- WUProp@Home
- yoyo@home - OGR28

* Nécessite du matériel supplémentaire.


--------

Topic dédié sur Hardware.fr
Forum de la communauté francophone du RPi

Oncle Bob:
Les cartes µSD
Utilisez uniquement (dans la mesure du possible) des cartes SANDISK, connues pour bien supporter un usage sur Raspberry Pi. Je vous conseille personnellement de prendre des Extreme de 16 Go, que l'on peut trouver pour à peine 10-12 14-15 euros. Si vous utilisez des Pi peu couteux, rabattez vous sur des Sandisk Ultra en 8 Go histoire de ne pas gréver le budget, ça tournera et ça vous coutera environ 5-6 euros.

Les OS
[*] Pour les Raspberry Pi, utilisez Raspbian.

[*]Pour les Orange Pi c'est un peu plus compliqué. Utilisez la Debian fournie par loboris et suivez les instructions d'installation. Pensez bien à finir par un
--- Code: ---sudo fs_resize
--- Fin du code ---
une fois l'installation faite afin d'étendre la partition sur la totalité de la carte SD.

Dans les deux cas, pensez ensuite à faire une update :


--- Code: ---sudo apt-get update
--- Fin du code ---

Un OS ultra léger : DietPi
Si vous destinez votre Pi uniquement à BOINC, autant ne pas inutilement gaspiller des ressources avec une interface graphique ou de l'espace disque avec des applis qui ne serviront jamais.

C'est là qu'entre en jeu DietPi, une Debian dédiée aux Pi très basique donc très légère, et aisément personnalisable avec des logiciels dédiés à ces appareils pour leurs usages les plus courants.

Téléchargez la version correspondante à votre Pi, et "gravez" la sur votre carte (mini)SD via Win32DiskImager si vous êtes sur Windows.
Si vous êtes sur Linux, utilisez la procédure suivante :


--- Citer ---- Trouvez votre carte (ex: /dev/sdb1) en utilisant blkid ou mount
- Vérifiez bien que vous avez le bon chemin dev pour votre carte SD (ex: /dev/sdb1)
- Démontez la carte et toutes ses partitions en utilisant umount /dev/sdb?
- Gravez l'image en utilisant dd if=/path/to/DietPi_vXX.img of=/dev/sdb
--- Fin de citation ---

Insérez votre carte dans votre Pi, connectez le à votre écran et à Internet via un câble Ethernet et branchez le Pi pour le démarrer.

A partir de maintenant, votre Pi sera configuré comme suit :

- Utilisateur : root
- Mot de passe : dietpi

Indiquez que vous ne l'utilisez pas sur HDD : Le Pi fonctionnera uniquement sur sa carte SD.

Redémarrez le en tapant sudo reboot, puis une fois re-connecté entrez dietpi-config

Un menu apparait, allez dans Autostart et sélectionnez Automatic Login : le pi se logguera tout seul en cas de redémarrage.

Une fois cela fait, vous pouvez installer PuTTy sur votre machine principale qui vous permettra d'accéder à vos machines distantes en lignes de commande.

Profitez-en pour renommer votre Pi, en remplaçant DietPi par le nom de votre choix :


--- Code: ---sudo nano /etc/hostname
sudo nano /etc/hosts
--- Fin du code ---

Une fois la modification faite, faites Ctrl+X pour enregistrer et entrez Y pour confirmer. Redémarrez ensuite votre Pi en tapant :


--- Code: ---sudo reboot
--- Fin du code ---

Repassez sur votre machine principale, notez l'IP de votre Pi (en consultant votre box par exemple : il suffit de taper 192.168.1.1 dans la barre d'adresse de votre navigateur internet). Je vous conseille vivement de passer votre Pi en IP Fixe pour facilitez sa gestion. Cela se trouve dans l'onglet DHCP.


Exemple d'une box Orange

Installer le client BOINC
Commençons par updater les sources :


--- Code: ---sudo apt-get update
--- Fin du code ---

Maintenant, l'installation du client proprement dit :

--- Code: ---sudo apt-get install boinc-client
--- Fin du code ---


Et rejoignons un manager. Pour cela, il va falloir créer un mot de passe pour notre client BOINC :

--- Code: ---cd /var/lib/boinc-client
sudo nano gui_rpc_auth.cfg
--- Fin du code ---


Il faut redémarrer le client BOINC. Soit en rebootant la machine, soit en entrant cette commande :

--- Code: ---sudo /etc/init.d/boinc-client restart
--- Fin du code ---

La jonction proprement dite :

--- Code: ---sudo boinccmd --host localhost --passwd PASSWORD-DU-GUI --join_acct_mgr ADRESSE-DU-MANAGER ADRESSE-MAIL PASSWORD-DU-MANAGER
--- Fin du code ---
Dans mon cas, la dernière ligne donne quelque chose comme sudo boinccmd --host localhost --passwd 123 --join_acct_mgr https://am.statseb.fr/ bob@mail.com oncle avec 123 ce que j'ai inscrit dans le fichier gui_rpc_auth, bob@mail.com mon adresse d'inscription sur le site de SAM et oncle le mot de passe que j'ai utilisé lors de mon inscription sur ce site.

Nous allons maintenant indiquer à BOINC de bosser en permanence et de rester connecté à Internet :


--- Code: ---sudo boinccmd --set_run_mode always
sudo boinccmd --set_network_mode always
--- Fin du code ---


Gérer ses Pi à distance
Le plus simple est de les gérer via BOINCTask. Pour éditer les fichiers gui_rpc_auth.cfg et remote_hosts.cfg, ouvrez un terminal. Entrez les codes suivants :


--- Code: ---sudo nano /etc/boinc-client/gui_rpc_auth.cfg
--- Fin du code ---
pour le mot de passe

--- Code: ---sudo nano /etc/boinc-client/remote_hosts.cfg
--- Fin du code ---
pour les adresses des machines depuis lesquelles vous voulez accéder à votre Pi (via BoincTask, par exemple).

Pensez à redémarrer votre client BOINC une fois ces modifications faites.

--- Code: ---sudo /etc/init.d/boinc-client restart
--- Fin du code ---


Gérer son pi avec l'interface graphique au lieu des lignes de commandes
On installe un server VNC sur le Pi qu'on veut contrôler à distance :


--- Code: ---sudo apt-get install tightvncserver
--- Fin du code ---

On lance TightVNCServer qui va demander d'établir un mot de passe (8 caractères maximum) qu'il faudra inscrire pour se connecter au Pi :


--- Code: ---tightvncserver
--- Fin du code ---

On crée un script pour lancer une session VNC :


--- Code: ---sudo nano svnc.sh
--- Fin du code ---

Et on y inscrit :


--- Code: ---#!/bin/sh
vncserver :1 -geometry 1920x1080 -depth 24 -dpi 96
--- Fin du code ---

Ctrl+X pour fermer, on enregistre.

On le rend executable :


--- Code: ---sudo chmod +x svnc.sh
--- Fin du code ---


Bon, maintenant on va lui dire de se lancer automatiquement dès que le Pi boot :o

On édite le fichier idoine :


--- Code: ---sudo nano /etc/profile
--- Fin du code ---

Et on inscrit tout en bas de ce fichier (dernière ligne, pour ceux qui ne suivraient pas :o) :


--- Code: ---. /home/pi/svnc.sh
--- Fin du code ---

On reboot :


--- Code: ---sudo reboot
--- Fin du code ---

Normalement, notre script devrait se lancer tout seul.

Pour accéder depuis un autre ordi, il faut installer sur ce dernier un logiciel VNC. Tightvnc est très bien : http://tightvnc.com/

Pour se connecter, il faudra inscrire adresse_ip_du_pi:1 dans remote host (pour moi c'est 192.168.1.69:1, je vous conseille au passage de passer votre Pi en IP fixe).


Si tout se déroule bien, il vous demandera le mot de passe qu'on a défini un peu plus haut, et si tout est ok vous voilà sur le bureau de votre Pi !



Envoyer des fichiers vers son Pi
VNC c'est bien joli, mais c'est pas fait pour transférer des fichiers. Dans notre cas, on sera par exemple amené à copier des fichiers d'applis optimisées pour BOINC.

Pour cela, nous allons utiliser le protocole SFTP (SSH File Transfert Protocol).

Téléchargez un logiciel permettant ce protocole, de préférence avec une interface graphique (plus simple à prendre en main). Perso, j'utilise FileZilla (qui est sous licence GNU GPL, les linuxiens apprécieront).

Une fois installé, lancez le et cliquez sur Fichier-> Gestionnaire de sites et choisissez Nouveau Site. Entrez l'adresse IP de votre Pi et choisissez le protocole SFTP, le type d'identification Normale, et entrez l'identifiant et le mot de passe de votre Pi  (rappel : par défaut Rasbian c'est pi//raspberry et pour Dietpi : root//dietpi).



Vous n'avez plus qu'à faire glisser les fichiers de votre PC (colonne de gauche) vers votre Pi (colonne de droite).

JeromeC:
==> ta mission, rassembler toutes les informations existantes sur le fofo dans ce topic, puis chercher la réponse à ta question et la mettre aussi dans ce topic, merci Bob ! :sun:

mcroger:
Bah ça doit être comme installer Boinc sur une distribution où il n'y a pas les packages: télécharger les sources, sudo make configure puis sudo make install.

Edit: c'est même présent dans les packages,
Voir ici http://burdeview.blogspot.fr/p/raspberry-pi-boinc-project-ive-created.html?m=1
Par contre, c'est uniquement pour le fun parce qu'il ne faut pas espérer faire des scores avec ça.

fzs600:
 :hello:

Pour ceux que cela intéresse il y a un forum : Forum de la communauté francophone de Raspberry PI. http://forum.raspfr.org/
Histoire de faire la promo de BOINC.  :D

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique