Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

La console série de ma passerelle Pi affiche des codes d'échappement au lieu des couleurs et htop est un désastre

La console série de ma passerelle Pi affiche des codes d'échappement au lieu des couleurs et htop est un désastre

Résolu 6 5

Traduit de English par IA ·

Me revoilà (la personne avec l’ammoniac du poulailler). Le Pi du poulailler fonctionne désormais comme une petite passerelle : il lit le capteur de NH3 et deux sondes de température, puis publie vers Hermetry. Le Wi-Fi dans le cabanon est très mauvais, donc quand il coupe je branche un câble USB-TTL CP2102 sur l’UART GPIO du Pi et j’utilise PuTTY sur mon ordinateur portable à 115200.La connexion fonctionne, mais mon script de passerelle affiche des lignes de log colorées et, sur la liaison série, j’obtiens des choses comme :

^[[32mINFO^[[0m published nh3_ppm=9.1
^[[33mWARN^[[0m wifi reconnect (3)

Et htop affiche n’importe quoi et revient à la ligne à 80 colonnes, même avec la fenêtre PuTTY maximisée. En SSH, les deux rendent parfaitement. La liaison série est-elle simplement limitée comme ça ?

♥ 0

Traduit de English par IA ·

Et si tu essayais picocom au lieu de PuTTY ? J’ai toujours trouvé PuTTY bizarre sur le port série.

♥ 1

Traduit de English par IA ·

Même chose avec picocom depuis mon poste Linux, j’ai essayé.

♥ 0

Traduit de English par IA ·

Le problème vient du côté Pi, pas du programme de terminal. Deux éléments manquent à une connexion série que SSH fournit gratuitement.Le type de terminal : SSH transmet votre TERM (xterm-256color depuis PuTTY). Le getty série définit TERM à vt220, qui n’a pas de couleurs ; les programmes qui vérifient TERM reviennent donc à un mode de secours ou affichent des codes bruts. Vérifiez avec echo $TERM.La taille de la fenêtre : la ligne série n’a aucun moyen d’indiquer au Pi la taille de votre fenêtre, donc il suppose 80×24 et ne change jamais.J’ai mis ceci dans ~/.bashrc sur chaque machine à laquelle je me connecte en console :

case "$(tty)" in
  /dev/ttyS0|/dev/ttyAMA0|/dev/serial0)
    export TERM=xterm-256color
    stty rows 50 cols 160      # match your PuTTY window
    ;;
esac

Si vous installez le paquet xterm, vous pouvez taper resize au lieu de coder la taille en dur : il interroge le terminal et la définit.Les couleurs de votre script devraient alors fonctionner, à condition que la bibliothèque de journalisation vérifie TERM.

Solution acceptée♥ 8

Traduit de English par IA ·

Remarque : le même script écrit aussi dans journald lorsqu’il tourne en tant que service, et les codes couleur dans le journal sont gênants. La plupart des bibliothèques de journalisation permettent de désactiver la couleur lorsque stdout n’est pas un tty.

Timestamps in UTC or it didn't happen.
♥ 0

Traduit de English par IA ·

+1 pour le snippet bashrc, c’est pareil sur nos passerelles. J’ajouterais aussi export LANG=C.UTF-8 là-dedans si les caractères de dessin de boîte se cassent dans htop.

♥ 1

Traduit de English par IA ·

TERM était bien vt220. Avec le bloc bashrc, on a maintenant les couleurs et htop en pleine largeur sur la liaison série. J’ai aussi ajouté le conseil d’Eric : le service tourne sans couleur, ainsi le journal reste propre. Merci à tous !

♥ 0
7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager