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

Proposer ou rechercher un tutoriel concernant le Raspberry Pi

Modérateur : Francois

dyox
Raspinaute
Messages : 443
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

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

Message par dyox » mar. 9 janv. 2018 12:05

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
Débutant sous RPi / linux
[Pour bien commencer] Pour les nouveaux acquéreurs de Raspberry Pi (liste de liens utiles)

Avatar du membre
Manfraid
Modérateur
Messages : 1386
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

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

Message par Manfraid » mar. 9 janv. 2018 13:46

Bon a savoir, va falloir que je teste ça un jour
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

nexen
Raspinaute
Messages : 173
Enregistré le : lun. 29 sept. 2014 13:58

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

Message par nexen » mar. 9 janv. 2018 14:02

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 ...

dyox
Raspinaute
Messages : 443
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

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

Message par dyox » mar. 9 janv. 2018 20:08

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)
Débutant sous RPi / linux
[Pour bien commencer] Pour les nouveaux acquéreurs de Raspberry Pi (liste de liens utiles)

Le Ptit Nicolas
Messages : 34
Enregistré le : lun. 22 janv. 2018 11:04

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

Message par Le Ptit Nicolas » mer. 31 janv. 2018 11:37

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

dyox
Raspinaute
Messages : 443
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

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

Message par dyox » mer. 31 janv. 2018 13:15

C'est pour Raspian.
Le config.txt est dans la 1ère partition et celle-ci est montée au démarrage dans /boot/
Débutant sous RPi / linux
[Pour bien commencer] Pour les nouveaux acquéreurs de Raspberry Pi (liste de liens utiles)

Le Ptit Nicolas
Messages : 34
Enregistré le : lun. 22 janv. 2018 11:04

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

Message par Le Ptit Nicolas » mer. 31 janv. 2018 14:28

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)

Le Ptit Nicolas
Messages : 34
Enregistré le : lun. 22 janv. 2018 11:04

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

Message par Le Ptit Nicolas » lun. 12 févr. 2018 17:20

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:

thierry_95
Messages : 7
Enregistré le : mar. 31 juil. 2018 17:29
Localisation : France - 95

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

Message par thierry_95 » jeu. 9 août 2018 16:43

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 ... :(

dyox
Raspinaute
Messages : 443
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

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

Message par dyox » jeu. 9 août 2018 17:20

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 !
Modifié en dernier par dyox le jeu. 9 août 2018 18:46, modifié 1 fois.
Débutant sous RPi / linux
[Pour bien commencer] Pour les nouveaux acquéreurs de Raspberry Pi (liste de liens utiles)

Répondre

Retourner vers « Tutoriels »