HowTo : comment overclocker votre carte Raspberry PI ?

Introduction

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 !

Coup de coeur : nouvelle carte Soekris : net6501

Soekris vient de lancer une nouvelle carte : la net6501 ! Nous sommes dans le monde de l’embarqué : petites cartes, peu de puissance, et surtout faible consommation.

J’utilise dans mes projets télécoms ces petites cartes consommant très peu d’énergie mais offrant de grandes possibilités. J’ai eu la chance de découvrir la petite de dernière de Soekris, un des fabricants renommés par la qualité de ces cartes.

Cette carte est la plus puissante que Soekris n’ait jamais sortie. Elle intègre un processeur Atom de la série E6xx, de la mémoire (jusqu’à 2Go), 4 ports giga mais aussi, 1 port miniPCI Express, 2 ports PCI Express et c’est l’originalité de la carte, la possibilité d’intégrer un FPGA Xilinx. Elle embarque aussi le nécessaire afin de monitorer comme il se doit sa carte : température, puissance, ventilateur, batterie .

Et le prix : la carte vaut moins de 300 $, ce qui est raisonnable vu la qualité et les fonctionnalités.

Caractéristiques détaillées

  • 600 Mhz to 1.6 Ghz Intel Atom E6xx single chip processor with EG20T companion chip
  • 512 to 2048 Mbyte DDR2-SDRAM, soldered on board
  • 8 Mbit BIOS/BOOT Flash
  • Internal Low Profile USB socket, bootable
  • 2x SATA 3 Gbit interfaces with +5V and +12V power header
  • 4x Intel 82574IT Gigabit Ethernet ports, Auto-MDIX RJ-45, protected to 700W/40A Surge
  • 2x Serial ports, DB9 and 10 pins internal header
  • USB 2.0 interface, 2x internal, 1x external port, bootable
  • Power LED, Disk LED, Error LED, Status LED, Network LED’s
  • 1 Full Mini-PCI Express shared with mSATA socket.
  • 1 USB only Mini-PCI Express shared with mSATA socket
  • 2x PCI Express Slots, right angle
  • 16 bit general purpose I/O, 24 pins header, connected to FPGA
  • Temperature and voltage monitor, fan controller
  • Light Management Microcontroller
  • Board size 5.7″ x 5.8″
  • Power using external power supply is 6-25V DC, max 30 Watt, protected with TVS
  • NiMH battery backup connector with charge and monitoring
  • Option for 5V supply using internal connector
  • Operating temperature 0-60 °C

Conclusion

Cette carte très performante ouvre de grande perspective avec un budget maîtrisé. Ses domaines d’applications sont très larges, de firewall (avec des projets comme monowall), de serveurs VPN, d’enregistreur de communications (en l’équipant d’une carte T2 sangoma et d’un soft adapté) ou de serveur de téléphonie avec Astlinux.