Inoltro del terminal linux da port seriale a TCP con socat

Sto lavorando sulla piattaforma ARM embedded, Slackware. Sto utilizzando il modem Java G24 che è configurato per inoltrare i dati tra le porte /dev/ttyS1 e /dev/ttyACM0 , in modo che tutto ciò che accade su una di queste porte è poi visibile dall'altro. Voglio impostare il terminal su una di queste porte, /dev/ttyS1 e inoltrare l'altra port /dev/ACM0 alla port TCP, in modo da poter accedere da un'altra macchina via LAN.

Prima di tutto, ho configurato /etc/inittab :

 s2:12345:respawn:/sbin/agetty -L ttyS1 115200 vt100 

Poi sto cercando di usare socat con il seguente command:

socat -d -d -d TCP-l:2020,reuseaddr,fork /dev/ttyACM0,raw,nonblock,waitlock="/var/run/ttyACM0.lock",b115200,echo=1,icanon=1,crnl

Poi sto cercando di connettersi con telnet 192.168.1.222 2020 da un'altra macchina, il risultato non è abbastanza buono, vedo dal lato client che il terminal chiede l'accesso, ma poi c'è una risposta immediata che non ho digitato in: ^M^M^M … ecc., il terminal risponde che l'accesso è errato e poi ancora e ancora la stessa cosa.

So che ^M significa cartello di return, ma non sono sicuro di come risolvere il problema. Ho provato diverse configurazioni di socat, ma nessuno di loro ha funzionato correttamente.

  • La maggior parte dei comandi a lungo termine ha subito ucciso su Amazon EC2 (Ubuntu 10.04)
  • Come scoprire il tipo di virtualizzazione di un VPS di Linux?
  • Monitorare lo stato RAID tramite il terminal (CentOS 5)
  • Selezionare il block su una console Linux?
  • mysql non printingre seleziona l'output al terminal
  • Chiudere il terminal con una session SSH aperta
  • Posso creare un account amministrativo nascosto tramite il terminal su OSX?
  • console virsh e dimensione tty
  • One Solution collect form web for “Inoltro del terminal linux da port seriale a TCP con socat”

    Dopo poche ore di ricerca intensiva e sperimentazione di molteplici opzioni, sono venuto con una soluzione.

    Prima di tutto, ho dovuto abilitare il terminal aggiungendo la linea:

    ttyS1

    nel file /etc/securetty .

    Senza questo non è ansible accedere al terminal in /dev/ttyS1 .

    In secondo luogo, ho testato diverse configurazioni socat e le seguenti operazioni di command:

    /usr/local/bin/socat tcp-l:2020,reuseaddr,fork,crlf file:/dev/ttyACM0,echo=0,b115200,raw,crnl,icanon=1

    Tuttavia, questa soluzione non è perfetta. Terminale interrompe la linea dopo each prompt dei comandi in modo che l'input utente sia digitato nella row successiva. Inoltre, dopo l'esecuzione di each command appare un prompt di command vuoto (come se avessi inserito il command vuoto subito dopo quello in cui ero veramente inserito).

    Suppongo che dovrei configurare correttamente /dev/ttyACM0 con stty, ma sto ancora cercando l'argomento.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.