Ads Blocker Image Powered by Code Help Pro

Bloqueur de publicités détecté

Si vous voulez soutenir mon travail, merci de désactiver votre bloqueur de publicités.

Afin de rendre votre expérience de lecture agréable, aucune publicité intrusive ne viendra en superposition de mes articles.

Bonjour à tous. Aujourd’hui je vais vous montrer comment tester l’alimentation de votre Raspberry PI. Je possède depuis quelques temps un Raspberry PI et je me suis toujours posé la question si ce dernier recevait le bon voltage.

Un Raspberry PI peut tout à fait fonctionner en sous-voltage, mais le processeur sera bridée en performances.

J’ai trouvé sur internet un script permettant de faire un ‘stress test‘ et de voir si le processeur se bride lors de sa montée en fréquence.

Avant de commencer, ce script est compatible avec tous les modèles de Raspberry PI car il se base sur le composant ‘get_throttled‘ qui remonte différents codes d’erreurs qui indiquent l’état du système en temps réel.

Préparation de la machine

Avant de mettre en place le script, il faut s’assurer que le paquet sysbench soit bien installé :

sudo apt-get install sysbench

Mise en place du Script

Maintenant, nous allons créer notre script (dans mon cas il sera crée dans le dossier scripts) :

sudo nano /home/pi/scripts/test_pi.sh

Puis ajoutez les lignes suivantes :

#!/bin/bash
function throttleCodeMask {
  perl -e "printf \"%s\", $1 & $2 ? \"$3\" : \"$4\""
}

# Rendre le code limité lisible
#
# Voir la documentation de la méthode 'get_throttled' sur: https://www.raspberrypi.org/documentation/raspbian/applications/vcgencmd.md
#

function throttledToText {
  throttledCode=$1
  throttleCodeMask $throttledCode 0x80000 "Limite de température matérielle ateinte, " ""
  throttleCodeMask $throttledCode 0x40000 "Un étranglement s'est produit, " ""
  throttleCodeMask $throttledCode 0x20000 "La fréquence ARM est limitée, " ""
  throttleCodeMask $throttledCode 0x10000 "une sous-tension s'est produite, " ""
  throttleCodeMask $throttledCode 0x8 "Limite de température matérielle active, " ""
  throttleCodeMask $throttledCode 0x4 "Etranglement en cours, " ""
  throttleCodeMask $throttledCode 0x2 "Fréquence ARM limitée, " ""
  throttleCodeMask $throttledCode 0x1 "Sous-tension détectée, " ""
}

# Couper Sysbench si il est interrompu
trap 'kill -HUP 0' EXIT
sysbench --test=cpu --cpu-max-prime=10000000 --num-threads=4 run > /dev/null &
maxfreq=$(( $(awk '{printf ("%0.0f",$1/1000); }' < /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq) -15 ))

# Lecture des informations système, les afficher et boucler
while true; do
  temp=$(vcgencmd measure_temp | cut -f2 -d=)
  real_clock_speed=$(vcgencmd measure_clock arm | awk -F"=" '{printf ("%0.0f", $2 / 1000000); }' )
  sys_clock_speed=$(awk '{printf ("%0.0f",$1/1000); }' </sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq)
  voltage=$(vcgencmd measure_volts | cut -f2 -d= | sed 's/000//')
  throttled_text=$(throttledToText $(vcgencmd get_throttled | cut -f2 -d=))
  echo "$temp $sys_clock_speed / $real_clock_speed MHz $voltage - $throttled_text"
  sleep 5
done

Pour enregistrer, faites CTRL X puis O

Afin de rendre le script exécutable faites la commande suivante :

sudo chmod u+x /home/pi/scripts/test_pi.sh

Puis exécutez le script :

cd scripts/
./test_pi.sh

Fonctionnement du script

Si votre Raspberry PI est correctement alimenté (alimentation stable et câble de qualité), après avoir exécuté le script, vous devriez obtenir quelque chose comme :

45.6'C 1400 / 600 MHz 1.3813V - 
55.3'C 1400 / 1400 MHz 1.3813V - 
58.0'C 1400 / 1400 MHz 1.3813V -
60.2'C 1400 / 1400 MHz 1.3813V -
60.2'C 1400 / 1400 MHz 1.3813V -
61.1'C 1400 / 1400 MHz 1.3813V -
61.1'C 1400 / 1400 MHz 1.3813V -
60.8'C 1400 / 1400 MHz 1.3813V -

Si votre alimentation ne peut pas fournir une alimentation stable ou si le câble n’est pas assez bon, vous devriez obtenir quelque chose comme : 

39.7'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
48.3'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
52.1'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
54.8'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
55.8'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
56.4'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
57.5'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
58.0'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,
59.6'C 1400 / 1400 MHz 1.3875V - Un étranglement s'est produit, une sous-tension s'est produite,

Cet article totalise 1 050 vues 👍 Merci pour votre visite! 🙂

Rejoignez-nous sur mon tout nouveau serveur Discord, pour échanger entre passionnés !

Catégories : UNIX/Linux

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *