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 option
echo=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.