Usando socat para conexão serial bruta

O objetivo é conectar-se a umembedded dispositivo usandoserial interface. Até agora, eu usei:

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

E funciona excelente, mas descobri que existem algumas opções durantesystem boot que exigem que você pressione uma única tecla sem pressionarenterereadline falha lá. Então, minha ideia era vincular ottyS2 paracons0, mas descobri vários problemas, como a incapacidade de sair (ctr+c, ctr+q ctr+] e até mesmoesc não funciona),backspace edelete não funcionam, as letras são digitadas duas vezes etc. Então, após algumas tentativas e erros, eu vim com isso:

socat /dev/cons0,raw,echo=0,crnl /dev/ttyS2,raw,echo=0,escape=0x03,crnl
raw nos dois lados permite uma únicakey press para acionar umboot optionecho=0 nos dois lados evitakey press duplicaçãocrnl nos dois lados evitarenter key press duplicaçãoescape=0x03 me permitequit a coisa pressionandoctr+c

O problema é que, quando parei, meucons0 está tudo fodido, como se de alguma forma preservasseraw,echo=0,crnl configurações. Sei que esse problema provavelmente é muito específico para o meu cenário, mas só preciso de uma maneira simples de enviar pressionamentos de teclas para serial, como faria computty (que não está disponível na minha plataforma). estou usandosocat porque é extremamente leve, não requer bibliotecas adicionais e porque os comandos mostrados fazem parte do script maior que usaexpect.

Todas as idéias e sugestões são muito apreciadas.

questionAnswers(2)

yourAnswerToTheQuestion