IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

(Imp)Possibilité d'éteindre brutalement un Raspberry Pi ou un BeagleBone


Sujet :

Embarqué

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut (Imp)Possibilité d'éteindre brutalement un Raspberry Pi ou un BeagleBone
    Bonjour à toutes et tous.

    Je travaille actuellement sur deux projets différents, l'un utilisant un Raspberry Pi et l'autre une carte BeagleBone Black, tous deux sous Linux (debian-based). Pour les éteindre, j'utilise sagement la commande car on m'a toujours appris qu'une extinction brutale risque de poser des problèmes.
    Je vois les conséquences de l'extinction brutale aujourd'hui puisque malgré mes explications et mes recommandations répétées, je bosse avec des gens qui trouvent intelligent d'éteindre le Raspberry Pi à l'arrache en débranchant la prise. Résultat : Linux corrompu, kernel panic au démarrage, obligé de tout réinstaller (en plus d'être emmerdé pour présenter le produit à des clients).

    Aujourd'hui, mon chef vient de me demander s'il existe la possibilité d'éteindre le Raspberry Pi ou le BeagleBone directement (en coupant l'alimentation) et de manière sûre, prétextant que sur le projet de la BeagleBone on utilisait un PC/104 avant et qu'on pouvait éteindre l'appareil sèchement sans problème.
    Je ne sais pas trop quoi lui répondre. Ma conviction première est que contrairement à ce qu'il croit l'extinction brutale n'est pas sans risque et qu'il n'existe pas d'alternative permettant de faire ça sans risque. Sauf que je ne sais pas comment le lui expliquer et je ne suis pas non plus certain à 100% qu'il n'existe pas de telle alternative (à part certains RAID, peut-être, mais ça ne s'applique pas à notre cas).

    Merci par avance pour votre aide.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Quel est le but de la manip ? De pouvoir facilement éteindre une carte sans avoir à taper une commande ? Si oui, une manip comme ça pourrait faire l'affaire : https://www.element14.com/community/...raspberry-pi-b Si le but est de permettre aux gens de les éteindre à l'arrache sans risque, c'est une autre histoire et je ne m'y connais pas assez en Linux pour te conseiller D'ailleurs, vu le lien précédent et vu celui-ci (https://raspberrypi.stackexchange.co...y-raspberry-pi), j'ai des doutes sur la faisabilité. Il me faut pas non plus se méprendre : ce n'est pas parce que vous n'avez jamais eu de problème sur vos anciennes cartes que c'était safe de le faire ! J'ai déjà branché / débranché un Raspberry Pi sans problème, et pourtant tu dis toi-même que c'est risqué.

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    Tu peux aussi adapter le système des onduleurs de secours utilisé sur de gros serveurs : en cas de coupure d'alimentation principale, l'alimentation de secours prend le relais et un message est envoyé au serveur pour qu'il déclenche le shutdown en sécurité.
    Dans ton cas, une petite batterie pour l'alimentation et la surveillance du changement d'état d'une broche du GPIO comme message au processeur feraient peut-être l'affaire.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    Citation Envoyé par watchinofoye Voir le message
    Aujourd'hui, mon chef vient de me demander s'il existe la possibilité d'éteindre le Raspberry Pi ou le BeagleBone directement (en coupant l'alimentation) et de manière sûre
    En coupant l'alimentation sauvagement on est sur de rien mais c'est surtout parce que ce cas de figure n'est pas géré. Imagine si on coupe le courant au moment où Linux écrit dans la carte mémoire !? En réalité c'est ça qui cause des plantages au démarrage.

    al1_24, a donné la solution : surveiller l'alimentation et si elle chute on éteint proprement. La durée de l'extinction propre est assurée par une batterie ou gros condensateur. Dans certain cas les condensateurs de lissage des alimentations à découpage suffisent à maintenir l'alimentation aval pendant quelques secondes après la coupure de courant et cela suffit à couper proprement le système.

    Citation Envoyé par watchinofoye Voir le message
    prétextant que sur le projet de la BeagleBone on utilisait un PC/104 avant et qu'on pouvait éteindre l'appareil sèchement sans problème.
    Je ne connais pas bien le PC/104 mais il est possible que les coupures de courant soient détectées.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #5
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    Merci pour vos réponses. Ça confirme ce que je pensais et ça m'aide à poser des mots sur ce qui m'embêtait.

    Sans en dire trop, la BeagleBone doit servir à gérer... une alimentation (et pas une petite). J'ai pu constater que, lorsqu'on débranche la prise, il existe un courant résiduel qui baisse progressivement, mais j'ignore si ça suffira à alimenter la BeagleBone le temps de l'éteindre proprement mais au pire je peux en parler avec l'ingénieur électronicien pour apporter des modifications pour rendre ça possible. C'est d'ailleurs ce que j'avais en tête : faire en sorte qu'à l'extinction de l'alimentation, on donne systématiquement l'ordre à la BeagleBone de s'éteindre - j'ai déjà vu cette possibilité sur Raspberry Pi avec l'écran PiTFT d'Adafruit.

    Ce qui m'embête c'est que j'ai bien l'impression que le chef veut absolument une extinction directe et sans délai, et j'aimerais lui faire comprendre que non il n'existe pas de version de Linux alternatif permettant ça... Il va falloir que je lui explique que si ça fonctionnait jusque-là avec le PC/104 c'est très certainement parce que ce genre de matériel gère visiblement assez bien les coupures de courant mais que ce n'est pas pour autant un cas d'utilisation normale...
    Aussi, je pense que ce qui est arrivé au Raspberry Pi est surtout causé par le fait que son Linux est situé sur une carte SD et que visiblement ce support gère TRÈS mal les coupures brutales (j'ai déjà eu une carte bloquée en lecture seule à cause de ça). Pour la BeagleBone Black, garder Linux sur la carte SD n'est pas stable, le Linux finit par se corrompre je ne sais trop comment, donc j'ai opté pour l'écriture sur l'eMMC embarqué sur la BeagleBone Black (Révision C). Mais j'ignore si c'est vraiment plus ou moins robuste que le support SD ou si ça ne change rien.

  6. #6
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Citation Envoyé par watchinofoye Voir le message
    J'ai pu constater que, lorsqu'on débranche la prise, il existe un courant résiduel qui baisse progressivement, mais j'ignore si ça suffira à alimenter la BeagleBone le temps de l'éteindre proprement mais au pire je peux en parler avec l'ingénieur électronicien pour apporter des modifications pour rendre ça possible. C'est d'ailleurs ce que j'avais en tête : faire en sorte qu'à l'extinction de l'alimentation, on donne systématiquement l'ordre à la BeagleBone de s'éteindre - j'ai déjà vu cette possibilité sur Raspberry Pi avec l'écran PiTFT d'Adafruit.
    C'est bien cette voix qu'il faut explorer.
    Ça peut aussi se régler a moindre coût (avec une batterie comme le suggère al1_24) et j'ai l'impression que BeagleBone Black a déjà tout ce qu'il faut de prévu pour gérer cette fonctionnalité.

    Demande l'avis de ton collègue électronicien car pour moi la gestion de l'alimentation de ton BeagleBone Black http://beagleboard.org/static/beagle...e/BONE_SCH.pdf

    Nom : Capture35.png
Affichages : 1524
Taille : 43,2 Ko

    Se fait au travers du composant TPS65217 http://www.ti.com/lit/ds/symlink/tps65217.pdf

    Nom : Capture34.png
Affichages : 1509
Taille : 44,9 Ko

    Il offre la possibilité d'avoir 3 sources d'énergie différentes :
    1. Adaptateur secteur
    2. USB
    3. Batterie

    Et dans la cas de la batterie, le TPS65217 se comporte aussi comme un chargeur. En cas de coupure d'alimentation, si il y a une batterie chargée alors c'est elle qui prendra le relais. J'imagine que le système d'exploitation reconnait d'une manière où d'une autre qu'on est sur une batterie (un peu comme lorsque tu es sur un PC portable est que tu débranches la prise, Linux le détecte et modifie l'icone dans la barre des tâches)

    Citation Envoyé par watchinofoye Voir le message
    Ce qui m'embête c'est que j'ai bien l'impression que le chef veut absolument une extinction directe et sans délai, et j'aimerais lui faire comprendre que non il n'existe pas de version de Linux alternatif permettant ça... Il va falloir que je lui explique que si ça fonctionnait jusque-là avec le PC/104 c'est très certainement parce que ce genre de matériel gère visiblement assez bien les coupures de courant mais que ce n'est pas pour autant un cas d'utilisation normale...
    Aussi, je pense que ce qui est arrivé au Raspberry Pi est surtout causé par le fait que son Linux est situé sur une carte SD et que visiblement ce support gère TRÈS mal les coupures brutales (j'ai déjà eu une carte bloquée en lecture seule à cause de ça). Pour la BeagleBone Black, garder Linux sur la carte SD n'est pas stable, le Linux finit par se corrompre je ne sais trop comment, donc j'ai opté pour l'écriture sur l'eMMC embarqué sur la BeagleBone Black (Révision C). Mais j'ignore si c'est vraiment plus ou moins robuste que le support SD ou si ça ne change rien.
    En effet couper le courant sauvagement n'est pas un cas normal d'utilisation et même si tu fais tourner ton OS sur la eMMC, ça ne changera rien puisque si tu coupes le courant au moment où le processeur est entrain d'écrire alors les données sont simplement corrompues. Ça paraît pourtant logique ! Ton chef a qu'a télécharger une application sur son smartphone et pendant cette opération, il n'a qu'a retirer sa batterie et voir ce qui se passe lorsqu'il l'a remet et redémarre son téléphone (aucun doute que ça va merdouiller alors sur un téléphone et dans le cadre d'un téléchargement d'application ce n'est pas bien grave mais chez un client avec un process qui tourne derrière le produit ça peut être une tout autre histoire)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Citation Envoyé par watchinofoye Voir le message
    J'ai pu constater que, lorsqu'on débranche la prise, il existe un courant résiduel qui baisse progressivement, mais j'ignore si ça suffira à alimenter la BeagleBone le temps de l'éteindre proprement
    Il faut quand même vérifier un point : les utilisateurs débranche l'alimentation à quel niveau ? Au niveau de la prise murale ou au niveau de la carte ? Je penche donc pour l'option de la batterie qui te garantie un peu d'énergie quel que soit le niveau où la coupure a lieu.

  8. #8
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    Oui BeagleBone permet l'utilisation d'un bouton Power, et même d'un bouton Reset en sus. Ils sont d'ailleurs présents par défaut sur la carte normalement. Ce n'est clairement pas un souci et c'était même assez aisé de lui expliquer ça. C'est la solution que je privilégierais si ça ne tenait qu'à moi.
    Des dires de l'ingélectronicien, on a affaire à des utilisateurs qui préfèrent débrancher la prise pour éteindre l'alimentation. Ce qui ne l'empêche pas de trouver ça stupide, cela dit.

    Après une longue discussion avec le chef, qui a confirmé ce que je redoutais quant à ses exigences, j'ai presque fini par lui faire entendre raison, même s'il reste absolument convaincu qu'il y a forcément un moyen d’éteindre l'appareil à l'arrache sans risque. Je lui ai donc proposé la solution de rajouter un relais et une batterie pour détecter la coupure de courant et donner assez de jus au BeagleBone pour qu'il s'éteigne correctement.

    Une autre approche, que je trouve un peu discutable : on n'a pas réellement besoin du Linux. Si on l'utilise c'est parce que c'est la solution la plus simple de prime abord, pour développer la solution de façon expérimentale, mais si ça rajoute surtout des contraintes de ce genre, je m'interroge sur la possibilité et la pertinence de programmer la BeagleBone en Bare Metal plutôt que via Linux. Est-ce que ça changerait vraiment la donne ?

  9. #9
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Il est clair que pour une utilisation "pro" le fait de débrancher la prise ne doit pas nécessiter
    l'intervention d'un technicien pour tout réinstaller

    je pense également que la meilleure option est la batterie de secours pour une extinction propre
    S'il y a un affichage, ne pas hésiter à prévenir que l'arrêt ne s'est pas exécuté correctement,
    et des risques si la batterie venait à se décharger.

  10. #10
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Citation Envoyé par watchinofoye Voir le message
    Une autre approche, que je trouve un peu discutable : on n'a pas réellement besoin du Linux. Si on l'utilise c'est parce que c'est la solution la plus simple de prime abord, pour développer la solution de façon expérimentale, mais si ça rajoute surtout des contraintes de ce genre, je m'interroge sur la possibilité et la pertinence de programmer la BeagleBone en Bare Metal plutôt que via Linux. Est-ce que ça changerait vraiment la donne ?
    Oui ça changerait les choses puisque d'après moi, c'est l'OS qui trinque lors d'un débranchement sauvage et pas l'application. En plus, si tu n'as pas d'OS, tout le système d'extinction devient beaucoup plus rapide.

    Par contre, programmer le processeur SITARA directement tu as déjà ouvert la doc ? 5000 pages ! Franchement si tu sais par quel bout prendre le truc, s'il te plaît fait nous partager.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  11. #11
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    Par contre, programmer le processeur SITARA directement tu as déjà ouvert la doc ? 5000 pages ! Franchement si tu sais par quel bout prendre le truc, s'il te plaît fait nous partager.
    C'est typique des processeurs ARM d'avoir un manuel de référence indigeste. Heureusement, il n'est pas toujours nécessaire de se farcir l'intégralité de ce document-là. Généralement on se concentre sur le chapitre dédié au(x) module(s) du processeur qui nous concernent pour le travail en cours et on utilise ce que le constructeur fournit comme outils et comme exemples pour démarrer rapidement.

    Sur ce processeur-là, les infos que j'ai pu trouver redirigent vers le StarterWare de TI : http://processors.wiki.ti.com/index...._AM335x_Portal (catégorie StarterWare). Leur IDE, CodeComposer Studio, permet visiblement de programmer le processeur assez facilement (et il intègre ARM GCC Linaro en plus de leur compilateur, je trouve ça cool).

    Ce qui m'emmerde c'est que le JTAG n'est pas intégré par défaut sur le BeagleBone Black (contrairement à la première BeagleBone). Heureusement, il "suffit" de faire des modifs sur la carte : http://elinux.org/Beagleboard:Beagle...#Optional_JTAG

    Pour l'instant je dois mettre ce projet-là en pause pour un autre plus prioritaire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Possibilite de replication partielle ?
    Par Mupps dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/03/2004, 15h54
  2. Recherche d'une possibilite
    Par Alexnancy dans le forum Langage SQL
    Réponses: 8
    Dernier message: 29/01/2004, 23h46
  3. Arrêter une Thread brutalement!
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 21h29
  4. Les possibilité que C++ offre par rapport à Pascal Objet
    Par Riko dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 01/02/2003, 21h38
  5. quels sont les possibilitées???
    Par lolo-d dans le forum OpenGL
    Réponses: 11
    Dernier message: 16/05/2002, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo