Neu: Die KI-Firewall überwacht die gesamte Plattform und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Serielle Konsole zu meinem Pi-Gateway zeigt Escape-Codes statt Farben, und htop ist ein Durcheinander

Serielle Konsole zu meinem Pi-Gateway zeigt Escape-Codes statt Farben, und htop ist ein Durcheinander

Gelöst 6 5

Von English mit KI übersetzt ·

Ich schon wieder (der mit dem Ammoniak im Hühnerstall). Der Stall-Pi läuft jetzt als kleines Gateway: Er liest den NH3-Sensor und zwei Temperaturfühler aus und veröffentlicht die Daten bei Hermetry. Das WLAN im Schuppen ist miserabel, deshalb stecke ich bei Verbindungsabbrüchen ein CP2102-USB-TTL-Kabel an die GPIO-UART des Pi und nutze PuTTY auf meinem Laptop mit 115200.Die Anmeldung funktioniert, aber mein Gateway-Skript gibt farbige Logzeilen aus, und über die serielle Verbindung sehe ich Dinge wie:

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

Und htop zeichnet Müll und bricht bei 80 Spalten um, selbst bei maximiertem PuTTY-Fenster. Über SSH sieht beides perfekt aus. Ist die serielle Verbindung einfach so eingeschränkt?

♥ 0

Von English mit KI übersetzt ·

Probier picocom statt PuTTY? Ich fand PuTTY bei seriellen Verbindungen immer seltsam.

♥ 1

Von English mit KI übersetzt ·

Dasselbe Problem tritt auch in picocom auf meiner Linux-Kiste auf, habe ich ausprobiert.

♥ 0

Von English mit KI übersetzt ·

Es liegt an der Pi-Seite, nicht am Terminalprogramm. Bei einer seriellen Anmeldung fehlen zwei Dinge, die SSH dir kostenlos mitliefert.Der Terminaltyp: SSH übergibt deinen TERM-Wert (xterm-256color von PuTTY). Das serielle getty setzt TERM auf vt220, das keine Farben kennt, daher fallen Programme, die TERM prüfen, zurück oder geben Rohcodes aus. Prüfe es mit echo $TERM.Die Fenstergröße: Die serielle Leitung hat keine Möglichkeit, dem Pi die Größe deines Fensters mitzuteilen. Deshalb nimmt er 80×24 an und ändert das nie.Ich habe das auf jedem Gerät, auf das ich seriell zugreife, in ~/.bashrc eingetragen:

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

Wenn du das Paket xterm installierst, kannst du statt der fest codierten Größe resize eingeben. Das fragt das Terminal ab und setzt die Werte.Die Farben deines Skripts sollten dann funktionieren, sofern die Logging-Bibliothek TERM prüft.

Akzeptierte Lösung♥ 8

Von English mit KI übersetzt ·

Nebenbemerkung: Dasselbe Skript schreibt auch in journald, wenn es als Dienst läuft, und Farbcodes im Journal sind lästig. Die meisten Logging-Bibliotheken erlauben es, die Farbe abzuschalten, wenn stdout kein tty ist.

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

Von English mit KI übersetzt ·

+1 zum bashrc-Snippet, bei unseren Gateways genauso. Ich würde dort auch export LANG=C.UTF-8 hinzufügen, falls in htop Rahmenzeichen kaputtgehen.

♥ 1

Von English mit KI übersetzt ·

TERM war exakt vt220. Mit dem bashrc-Block gibt es jetzt Farben und ein htop in voller Breite über die serielle Verbindung. Außerdem habe ich Erics Tipp umgesetzt, der Dienst läuft ohne Farbe, damit das Journal sauber bleibt. Danke an alle!

♥ 0
Ansicht von 7 Beiträgen – 1 bis 7 (von insgesamt 7)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.

Mitdiskutieren

Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

Teilen