HowTo : comment overclocker votre carte Raspberry PI ?

Mathias WOLFF published on
4 min, 772 words

Categories: VoIP

Vous adorez votre carte Raspberry mais vous trouvez qu'elle manque un peu de pêche pour certains projets, notamment multimédia ? je vais vous guider afin de doper (légalement, on est pas dans le cyclisme :-) ) votre Raspberry.

Les étapes de l'overclocking

Pour cela, nous avons 3 étapes (quand même !) à suivre :

  1. ajouter un radiateur à notre carte
  2. mettre à jour notre distribution
  3. paramétrage

Choix du radiateur

Il faut en effet ajouter un radiateur, car en augmentant les fréquences et les tensions, le chip va émettre plus de chaleur qu'il va falloir dissiper. Il faut bien avoir en tête, que le vieillissement d'un composant électronique s'accélère très fortement avec l'augmentation de sa chaleur (et l'augmentation n'est pas linéaire). Il existe plusieurs modèles (je ne les ai pas testé, il faudrait avoir des specs plus détaillées pour comparer les performances). Sur Kubii.fr, on trouve un dissipateur en céramique (Réf. : 1892471 - 2,51 €TTC, sur kibuck.fr), on trouve un kit de 3 dissipateurs pour 1,49 €TTC, et enfin, un superbe boitier intégrant 3 dissipateurs sur le site de Adafruit à 74,95 $ (ah oui, ce n'est pas donné !)

Mise à jour du système

Maintenant que votre carte est bien protégée de l'excès de chaleur, il est essentiel de mettre à jour votre firmware. Pour cela, il faut lancer la commande :

sudo rpi-update

Si aucune erreur n'est détectée, vous devez redémarrer afin d'activer le nouveau firmware.

Paramétrage

Passons à l'étape d'overclocking. Il est possible de modifier les fréquences du microprocesseur, de la mémoire ainsi que du processeur graphique. Afin de modifier ces valeurs, il faut éditer le fichier config.txt qui se trouve dans /boot . Ce fichier est lu par le GPU avant l'initialisation du processeur ARM.

sudo nano /boot/config.txt

A noter, que sous la distribution Rasbian, il est possible de modifier ces paramètres directement en tapant sudo raspi-config et ceci sans perte de garantie. Pour ceux qui fonctionne sur une autre distribution n'intégrant pas encore cette fonctionnalité, il faut modifier les variables suivantes :

force_turbo=0

en passant la variable à 1, on désactive le mode "turbo", c'est à dire la possibilité au système d'adapter les fréquences en fonction de la charge et de la température. A part des applications très spécifiques, ce n'est pas recommandé, car en plus d'accélérer le vieillissement, on augmente la consommation électrique. Passons aux variables permettant de régler les fréquences :

  • arm_freq : fréquence du processeur ARM en MHz. Défaut : 700.
  • core_freq : fréquence du GPU en MHz. Défaut: 250.
  • sdram_freq : fréquence de la mémoire SDRAM en MHz. Défaut : 400.

Il est aussi possible de définir des valeurs minimum :

  • arm_freq_min : valeur min de arm_freq utilisée pour la gestion dynamique de la fréquence. Défaut : 700
  • core_freq_min : valeur min de core_freq utilisée pour la gestion dynamique de la fréquence. Défaut : 250
  • sdram_freq_min : valeur min de sdram_freq utilisée pour la gestion dynamique de la fréquence. Défaut : 400

Attention, avant de choisir vos fréquences, il est important de comprendre qu'elles sont liées entre elles. Le processeur GPU core, h264, v3d and isp partage la même PLL, ainsi les fréquences sont liées. Il est aussi possible de changer la tension, mais dans ce cas la garantie saute (d'autres éléments peuvent faire sauter la garantie, attention) ! Après avoir modifié le fichier, redémarrer afin que les nouveaux paramètres soient bien pris en compte.

Vérifications d'usage

Maintenant, il possible de vérifier en ligne de commande, différentes données :

  • Fréquence du processeur ARM : /opt/vc/bin/vcgencmd measure_clock arm
  • Fréquence du core : /opt/vc/bin/vcgencmd measure_clock core
  • Température du chip BCM2835 : /opt/vc/bin/vcgencmd measure_temp
  • Tensions core et mémoire : vcgencmd measure_volts core (remplacer core par sdram_c, sdram_i et sdram_p pour les données de la mémoire)

Allez, je vous donne un petit script afin de voir les données en une seule commande :

#!/bin/sh echo Core `/usr/bin/vcgencmd measure_temp` echo Core `/usr/bin/vcgencmd measure_volts` echo sdram phy `/usr/bin/vcgencmd measure_volts sdram_p` echo sdram i/o `/usr/bin/vcgencmd measure_volts sdram_i` echo sdram controller `/usr/bin/vcgencmd measure_volts sdram_c` echo Arm `/usr/bin/vcgencmd measure_clock arm` echo Core `/usr/bin/vcgencmd measure_clock core` echo v3d `/usr/bin/vcgencmd measure_clock v3d`

Conclusion

On peut encore booster sa carte avec divers paramètres, en désactivant certaines fonctions si elles ne sont pas utiles comme par exemple, l'USB, permettant de récupérer 10% de puissance complémentaire au processeur ARM. Il faut avant tout bien définir ses besoins, et régler aux petits oignons votre superbe Raspberry. Good hack !