Mit socat für rohe serielle Verbindung

Das Ziel ist es, eine Verbindung zu einem @ herzustelleembedded Gerät mitserial Schnittstelle. Bisher habe ich verwendet:

stty -F /dev/ttyS2 115200 cs8 ixoff
socat readline,history=/etc/socat.history /dev/ttyS2,raw,echo=0

Und es funktioniert ausgezeichnet, aber dann habe ich festgestellt, dass es während @ einige Optionen gibsystem boot, bei dem Sie eine einzelne Taste drücken müssen, ohne @ zu drückenter, undreadline schlägt dort fehl. Also war meine Idee, das @ zu bindttyS2 zucons0, aber dann entdeckte ich mehrere Probleme, wie die Unfähigkeit zu beenden ctr+c, ctr+q ctr+] und sogaresc funktioniert nicht),backspace unddelete funktioniert nicht, Buchstaben werden zweimal getippt usw. Nach einigem Ausprobieren habe ich mir das einfallen lassen:

socat /dev/cons0,raw,echo=0,crnl /dev/ttyS2,raw,echo=0,escape=0x03,crnl
raw auf beiden Seiten erlaubt ein einzelneskey press um ein @ auszulösboot optionecho=0 auf beiden Seiten verhindertkey press Verdoppelungcrnl auf beiden Seiten verhindernenter key press Verdoppelungescape=0x03 erlaubt mirquit die Sache durch Drücken vonctr+c

Das Problem ist, wenn ich aufhöre, meincons0 ist alles verrückt, als hätte es irgendwie das @ bewahraw,echo=0,crnl die Einstellungen. Ich weiß, dass dieses Problem für mein Szenario wahrscheinlich zu spezifisch ist, aber ich brauche nur eine einfache Methode, um Tastenanschläge wie bei @ seriell zu sendeputty (was auf meiner Plattform nicht verfügbar ist). Ich benutzesocat weil es extrem leicht ist, keine zusätzlichen Bibliotheken erfordert und weil die angezeigten Befehle Teil des übergeordneten Skripts sind, das @ verwendexpect.

Alle Ideen und Vorschläge werden sehr geschätzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage