Redhat linux terminal de saída de lixo ao usar o telnet

0

Estou usando o terminal redhat-linux para conectar a um dispositivo roteador por meio de 'telnet'.

Enquanto o dispositivo inicializa, os caracteres são impressos na forma de lixo, que é a seguinte,

No terminal, se eu clicar no menu 'Terminal' - > 'Reset', então está sendo alterado para a ordem alfabética adequada.

Existe alguma maneira de prevenir isso?

Eu tentei definir a codificação do terminal como UTF-8 nas opções de menu. Mas ainda é o mesmo problema.

    
por Dinesh 04.06.2014 / 11:19

1 resposta

0

Você afirmou que esta saída acontece quando o dispositivo está em BOOTING, certo?

A partir da saída, parece que seu terminal está recebendo uma sequência CTRL - N , também conhecida como SHIFT-OUT (< strong> SO ), virando seu conjunto de caracteres para o conjunto de caracteres Alternate ( G1 ). É por isso que a reinicialização do terminal restaura a legibilidade para você. (alguns anos ... você será capaz de ler esse jargão!) Você deve ser capaz de voltar ao charset padrão ( G0 ) enviando uma CTRL - O (Oooh, não zero) ( SHIFT-IN ( SI )).

echo ^V^O   # or something similar would suffice.

Existem outras possibilidades, mas menos prováveis, veja aqui para um artigo decente sobre o que acontece e o que pode ser feito para restaurar as coisas sem enlouquecer.

Basicamente, seu roteador está enviando um caracter SO , provavelmente não intencionalmente, mas talvez como ruído de linha ou lixo eletrônico durante a seqüência de inicialização. ({shrug} poderia ser intencional, para embaralhar a saída para impedir lookie-loos ... mas provavelmente não)

Estou procurando uma solução para evitar a mudança para o Alt-CharSet ... Eu volto ...

EDITAR:

Uma referência do terminal vt100 mostra como redefinir o conjunto de caracteres alternativos ( G1 ) para um dos vários conjuntos possíveis, talvez possamos definir o conjunto G1 ( SO ) como o mesmo que o conjunto G0 ( SI )?

echo -e "\e(B"  # sets G0 to USASCII
echo -e "\e)B"  # sets G1 to USASCII (default is "\e)0" (zero))

ou, como um comando:

echo -e "\e(B\e)B"

Isso deve redefinir seu charset G1 para ser legível a partir desse ponto. Naturalmente, isso impede qualquer tentativa de desenhar gráficos de linhas legais. Vadio. Mas ... funcionaria.

alias telnet-router='echo -en "\e(B\e)B"; telnet mr_router; echo -en "\e(B\e)0"'

Defina G0 / G1, invoque o telnet, defina G0 / G1 para os padrões novamente.

Claro, pode-se simplesmente não visualizar a saída de inicialização, evitando assim o problema completamente ... desvie o olhar!

    
por 04.06.2014 / 20:15