Cette alimentation « intelligente » permet de démarrer mais surtout d’arrêter avec grâce (graceful shutdown
) tout ordinateur compatible avec FreeBSD et libgpio. C’est testé avec succès sur les cartes suivantes:
- Nanopi Neo
- Nanopi Neo Air
- Orange PI
- Raspberry PI B
- Raspberry Zero
- Raspberry PI 3
Comment ça marche?
Le fonctionnement est calqué sur ce que l’on trouve sur les PC traditionnels: A la connexion de l’alimentation, l’ordinateur mono-carte n’est pas alimenté (power-off), l’alimentation est mise en veille pour réduire la consommation. Il suffit d’appuyer sur le bouton pour le démarrer.
Si l’on ré-appuie sur le bouton dans les 3 secondes, l’alimentation est coupée immédiatement. Passé ce délai, il faut appuyer sur le bouton pendant 10 secondes pour forcer l’arrêt.
En fonctionnement normal, c’est à dire lorsque le système d’exploitation est actif, le service psud
contrôle tout appui sur le bouton pour déclencher un shutdown de la carte (ou toute autre commande spécifiée dans le fichier de configuration).
Configuration
Ci-dessous un exemple de configuration pour une carte Nano PI Neo
# psud configuration file # $Id$ /etc/psud.conf PSUD_PIN=3 # My configuration on NanoPI Neo PSUD_CMD="/sbin/shutdown -p now" PSUD_OPT="Dont Care" # Nothing special
La variable PSUD_PIN
indique sur quelle broche du GPIO est connecté le switch. La variable PSUD_CMD
contient la ligne de commande à exécuter. Enfin la variable PSUD_OPT
détermine le comportement.
Disponible sur github