Page 1 sur 3

[TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : mar. 9 janv. 2018 12:05
par dyox
Bonjour,

Ce n'est pas un tuto mais plutôt une prise de connaissance. Maintenant, c'est simple, extrêmement simple et les tutos que l'on peut voir sur le net sont désuets !

Il suffit de mettre dans le config.txt : dtoverlay=gpio-shutdown

On appuie sur un BP (branché sur les pins 5 et 6) pour éteindre et on rappuie pour redémarrer. Un seul mot, efficace !!

Plus d'info dans le /overlays/README :

Code : Tout sélectionner

Name:   gpio-shutdown
Info:   Initiates a shutdown when GPIO pin changes. The given GPIO pin
        is configured as an input key that generates KEY_POWER events.
        This event is handled by systemd-logind by initiating a
        shutdown. Systemd versions older than 225 need an udev rule
        enable listening to the input device:

                ACTION!="REMOVE", SUBSYSTEM=="input", KERNEL=="event*", \
                        SUBSYSTEMS=="platform", DRIVERS=="gpio-keys", \
                        ATTRS{keys}=="116", TAG+="power-switch"

        This overlay only handles shutdown. After shutdown, the system
        can be powered up again by driving GPIO3 low. The default
        configuration uses GPIO3 with a pullup, so if you connect a
        button between GPIO3 and GND (pin 5 and 6 on the 40-pin header),
        you get a shutdown and power-up button.
Load:   dtoverlay=gpio-shutdown,<param>=<val>
Params: gpio_pin                GPIO pin to trigger on (default 3)

        active_low              When this is 1 (active low), a falling
                                edge generates a key down event and a
                                rising edge generates a key up event.
                                When this is 0 (active high), this is
                                reversed. The default is 1 (active low).

        gpio_pull               Desired pull-up/down state (off, down, up)
                                Default is "up".

                                Note that the default pin (GPIO3) has an
                                external pullup.
Pour ceux qui veulent modifier le comportement et savent recompiler : https://github.com/raspberrypi/linux/co ... 75bb64f8de

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : mar. 9 janv. 2018 13:46
par Manfraid
Bon a savoir, va falloir que je teste ça un jour

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : mar. 9 janv. 2018 14:02
par nexen
heuuu, je ne vois que pour le shutdown ... je ne pense pas que tu rallume un Pi avec ça vu que ton GPIO n'est pas en attente ....

J'ai du mal à voir comment il relance le pi avec ce bouton si ça fonctionne ...

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : mar. 9 janv. 2018 20:08
par dyox
nexen a écrit :heuuu, je ne vois que pour le shutdown ... je ne pense pas que tu rallume un Pi avec ça vu que ton GPIO n'est pas en attente ....

J'ai du mal à voir comment il relance le pi avec ce bouton si ça fonctionne ...
Et pourtant c'est testé et approuvé !

Vous vous doutez bien que je ne vais pas faire un tuto sans vérifier :mrgreen: :ugeek: :ugeek:

Et je ne parle pas du bouton à souder sur la carte à l'emplacement RUN qui sert à reset/run le BCM. (trop dangeureux, le reset peut corrompre la SD)

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : mer. 31 janv. 2018 11:37
par Le Ptit Nicolas
Pour ma part, j'ai suivi ce tuto pour rajouter un bouton de shutdown/reboot :
http://hardware-libre.fr/2014/03/raspbe ... -bouton-2/

Mais ton tuto a l'air beaucoup plus simple !!! Je vais m'empresser de le tester...

Par contre, c'est valable avec quelle distrib ? Car à première vue, je n'ai pas de fichier config.txt ni de répertoire overlays

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : mer. 31 janv. 2018 13:15
par dyox
C'est pour Raspian.
Le config.txt est dans la 1ère partition et celle-ci est montée au démarrage dans /boot/

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : mer. 31 janv. 2018 14:28
par Le Ptit Nicolas
dyox a écrit :C'est pour Raspian.
Le config.txt est dans la 1ère partition et celle-ci est montée au démarrage dans /boot/
Yes, j'ai trouvé, merci beaucoup ! ;)
Je vais tester la manip sur une Krydbox (dérivée d'un raspbian)

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : lun. 12 févr. 2018 17:20
par Le Ptit Nicolas
Après avoir modifié le fichier config.txt, j'arrive bien à rallumer le Pi en connectant temporairement la Pin 5 à la masse, mais par contre, je n'arrive pas à provoquer le shutdown...? :cry:

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : jeu. 9 août 2018 16:43
par thierry_95
Bonjour.
Je viens de tester la manip (merci à dyox pour le lien) pour faire un marche/arrêt sur ma TSF, et ça marche. Enfin ça peut marcher, mais ça dépend ... :?
J'm'explique ...
J'utilise un convertisseur analogique numérique pour récupérer l'état d'un potentiomètre. Il fonctionne en I2C. Comme j'avais utilisé le pin 5 (SCL), j'ai débranché le convertisseur avant de faire le test. Et, comme le ptit nicolas avant moi, j'arrive bien à allumer le Pi mais pas à l'éteindre.
Mais ... :idea:
Ben oui, vous avez compris.

J'ai désactivé le support I2C dans raspi-config, et après un reboot, la manip fonctionne correctement : un bouton poussoir entre les pins 5 et 6 permet d'allumer et d'éteindre mon Pi 2.

J'ai peut-être fait avancer le schmilblick, mais ça me laisse deux problèmes.
Le premier, c'est que j'ai besoin du I2C pour mon convertisseur.
Le deuxième, c'est que j'ai l'intention de récupérer l'interrupteur marche/arrêt de ma TSF, et la manip ne fonctionne pas avec un interrupteur : il faut un poussoir.

Pour le problème poussoir vs inter, j'ai trouvé un article de Fredi DigitalGamig qui explique comment allumer/éteindre une recalbox à partir d'un inter ou d'un poussoir, branchés entre les pins 5 et 6. Le paramétrage est différent entre poussoir et inter. Il y a donc peut-être de quoi régler le problème en modifiant les "overlays".
Mais, même si j'y arrive, ça ne va pas régler mon problème de compatibilité I2C ... :(

Re: [TUTO] Ajout d'un Bouton Poussoir pour arrêter/redémarrer

Posté : jeu. 9 août 2018 17:20
par dyox
Bonjour,

Comme j'avais précisé, linké et comme c'est signalé, on peut tout changer dans le comportement. Si le GPIO 3 ne vous plait pas, changez-le pour le 25 (borne 22), il est "neutre" et est à côté de la masse (borne 20).

Je vais faite maintenant un test et avec une résistance en série.
dtoverlay=gpio-shutdown,<param>=<val>
ce qui donne : dtoverlay=gpio-shutdown,gpio_pin=25,active_low=1,gpio_pull=up

je teste et j'éditerai ce message.

[EDIT] Avec une RPiv1, avec les options par défaut, cela fonctionnent mais avec le GPIO25, cela s'éteint bien mais ne se rallume pas !
[EDIT2] Même comportement avec le GPIO17. Par contre une fois éteint, je l'ai remis sur GPIO3 puis un appui et elle se rallume ; mais ne se re-éteint pas, même en remettant sur GPIO17.
Après différents essais, il faut câbler le gpio que l'on veut (qui sera actif au shutdown) + le GPIO3 pour le redémarrage !