Accueil > Informatique > Ma Pi-Box reprend du service

Ma Pi-Box reprend du service


Mon tout premier Raspberry Pi, un modèle B, m’a longtemps servi de lecteur multimédia, branché sur la télévision. Pour le protéger un peu, je lui ai offert un boîtier, la Pi-Box.

Avec le temps, c’est devenu un peu court, en termes de puissance, et ma nouvelle box internet a pris le relais, merci la fibre. Confier mon réseau personnel à la box d’un opérateur ne me plaît pas plus que ça, mais en attendant d’avoir un vrai routeur contrôlable par mes soins, j’ai confié à cette vénérable Pi-Box la mission de prendre en compte une partie du problème.

Kesako Pi-Box ?

C’est un simple mais confortable boîtier en plastique qui abrite, outre ma Raspberry Pi, une alimentation bien propre et un hub à quatre ports USB. Les prises vidéo, son, et réseau sont reportées sur l’arrière du boîtier, tandis que la carte SD est déportée en façade.

La face arrière, de gauche à droite : l’interrupteur d’alimentation, les sorties vidéo et son au format coax, la prise HDMI, la prise d’alimentation, quatre ports USB et une prise réseau au format RJ-45.

Un voyant d’alimentation en façade complète le tout. L’un des ports USB de la Raspberry Pi est utilisé par le Hub du boîtier ; le second reste libre. Le refroidissement est entièrement passif mais je n’ai jamais constaté de surchauffe.

En « haut » du boîtier, le PCB de la Pi-Box. En centre ma Raspberry Pi modèle 1B. La majeure partie des ports est routée vers le PCB de la Pi-Box, en haut. Le lecteur de carte SD est déporté sur l’avant.

Sans être le grand vide, la place est loin d’être comptée dans ce boîtier, et il devrait être possible d’ajouter au moins un périphériques USB.

Très bien, alors que faire de ce bidule ?

Première mission : un serveur DNS

J’ai découvert il y a quelques mois le projet « Pi-Hole« . Il s’agit d’installer sur un Raspberry Pi un serveur DNS un peu spécifique. Outre remplacer le DNS de mon FAI, il permet de filtrer – entre autres – les publicités.

Les bloqueurs de publicités utilisé par les navigateurs web fonctionnent assez bien, mais certains sites les détectent et refusent d’afficher quoi que ce soit dans ces conditions. Avec Pi-Hole, le problème disparaît, et les publicités sont remplacés par des zone vides. Mieux, en indiquant à la box internet d’utiliser la Pi-Hole comme serveur DNS, ce sont toutes les machines du réseau qui en profitent.

Pi-Hole fournit d’autres services comme le DHCP, mais je ne les ai pour le moment pas encore activés.

Installation de Pi-Hole

Rien de bien compliqué, il suffit de suivre les instructions du site du projet. Celui-ci est en anglais, mais il existe des tutos en français, comme ici par exemple.

Après avoir répondu à quelques questions, l’installation se termine et il suffit de redémarrer le Raspberry pour profiter d’internet (presque) sans publicités, et les site indésirables sont automatiquement filtrés.

Sous le capot, c’est évidemment un peu moins simple, mais la configuration peut être modifiée via un navigateur internet. Petit plus, des statistiques peuvent être activées et consultées, toujours via un navigateur internet.

Première amélioration : allonger la durée de vie de la carte SD

Le système d’exploitation de la Raspberry Pi est stocké sur une carte SD. Pi-Hole tourne sur Linux, qui est assez bavard et alimente moult fichiers de logs. Dans ces conditions, une carte SD ne dure habituellement pas des années.

Une solution serait de supprimer l’écriture des logs, mais on y perdrait en fonctionnalité, par exemple pour analyser un problème système ou une intrusion. La distribution que j’utilise, Raspbian Lite, est assez légère en mémoire. On peut donc en prélever une partie pour y créer un disque virtuel sur lequel les fichiers de log seront stockés. Pour que rien ne se perde lorsque le Raspberry est éteint, les logs seront périodiquement copiés sur la carte SD. Ainsi, celle-ci finira bien par succomber, mais beaucoup plus tard.

Pour la mise en place, il suffit de suivre les tutos disponibles, comme celui-ci ou celui-là. Le second lien a ma préférence.

Seconde amélioration : un bouton d’arrêt et un bouton reset

La Pi-Box comporte un interrupteur d’alimentation, mais l’utiliser sans précaution risque fort de mettre le système de fichier en vrac. La Raspberry ne prévoit rien pour l’éviter. Aussi, il va falloir ruser un peu.

Un script lancé au démarrage du système surveille l’appui sur un switch connecté sur deux broches « GPIO » du Raspberry. Là encore, de multiples tutos sont disponibles. Celui-ci fonctionne très bien. Lorsque ce switch est activé, le script lance la procédure d’arrêt propre de Linux, et lorsque le système est arrêté, on peut couper l’alimentation électrique, ou redémarrer via un bouton reset.

L’ajout d’un bouton reset est plus simple, mais demande de souder deux pins sur la carte du Raspberry Pi, et c’est la mise en contact de ces deux pins via un switch qui provoque le reset. Pas de panique pour la soudure des pins, c’est très facile et il est presque impossible de se louper. Encore un tuto ? Allez, c’est par-là.

J’ai choisi de positionner le bouton reset et le bouton d’arrêt sur la façade avant de la pi box, entre la LED d’alimentation et le port SD. Pour me faciliter les choses, j’ai installé deux boutons sur une plaquette de prototypage, et quatre pins mâles pour les relier aux GPIO et aux pins de reset via des câbles de type Dupont, mais il est également possible de recycler les boutons de façade d’un ordinateur de bureau, ce qui évite en partie d’avoir recours au fer à souder.

Les boutons d’arrêt et de reset sur leur plaquette. Juste derrière, la LED RGB et ses connecteurs.

Troisième amélioration : une LED d’activité

La Raspberry comporte des LEDs d’état, mais celles-ci ne sont plus visibles une fois la Pi-Box refermée. Il faut donc trouver un moyen de savoir si le système d’exploitation est actif ou non.

Par ailleurs, il peut arriver que la Raspberry Pi se bloque, ou qu’un programme utilise toute la bande passante du CPU. Dans ce cas, une fois la Pi-Box refermée, rien n’indique qu’il y a un problème.

Ici encore, j’en suis passé par un tuto. A l’arrivée un script un peu remanié et un petit montage. Le montage consiste à relier aux GPIO de la Raspberry trois LEDs de couleurs différentes, ou une LED RGB. Un script se charge de modifier régulièrement les couleurs allumées ou éteintes.

A l’arrêt du système, le script est automatiquement stoppé et les LEDs apparaissent alors fixes, ce qui indique qu’on peut couper l’alimentation ou appuyer sur le bouton reset.

Petit test in situ.En haut à droite la plaquette supportant les boutons de reset et d’arrêt.
Tout contre le boîtier, la LED RGB allumée plein phare apparaît blanche.

Installation en façade

Une mèche à bois, un peu d’adhésif de masquage et de colle chaude suffisent. Pour le perçage, on peut se contenter de pré-percer à l’aide d’un trombone chauffé au briquet (attention les doigts), puis élargir au diamètre voulu.

L’emplacement de la LED RGB est déjà percé à gauche. L’emplacement des deux boutons est repéré sur le ruban adhésif.
Les perçages ont été nettoyés à l’aide d’un scalpel.
La LED RGB (en avant plan, désolé pour le flou) et les boutons sont en place. Quelques fils de colle chaude restent à nettoyer.
Les fils du bouton d’arrêt et de la LED RGB sont maintenus en place par les connecteur audio et composite du Raspberry Pi.
Les fils du bouton reset passent derrière la nappe du lecteur de carte SD.
La LED RGB est fixée par un blob de colle, en attendant mieux.
La Pi-Box est refermée, prête à l’emploi… même si un petit nettoyage s’impose.
Les nombreuses ouïes d’aération permettent un refroidissement efficace malgré l’absence d’un ventilateur.

Remerciements

Un grand merci aux auteurs des très nombreux tutoriels que j’ai parcourus ou utilisés pour cette réalisation. Il n’y a rien de bien compliqué, mais ça m’a fait gagner un temps précieux.

Prochaines modifications

Telle qu’elle est, ma Pi-Box/Pi-Hole fonctionne très bien, mais j’envisage quelques ajouts et modifications :

  • Ajouter une horloge RTC sauvegardée pour conserver l’heure si aucune connexion internet n’est possible
  • Activer le DHCP de Pi-Hole en remplacement de celui de ma box internet
  • Ajouter un « LCD Proc » (un tuto ici), pour afficher l’état du système, en plus des LEDS d’activité.
  • Améliorer l’intégration des scripts dans systemd. Ça fonctionne tel quel, mais j’ai bidouillé sur la base des tutos utilisés, et une mise au carré s’impose.
  • Remplacer la LED RGB (je me suis trompé de type cathode/anode commune)
  • Éliminer le gros blob de colle et fixer proprement la LED RGB

Publicités
Catégories :Informatique Étiquettes : ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

%d blogueurs aiment cette page :