Valores de variáveis do Suitables TERM para um console serial

1

Para ativar um console serial no Linux, usa-se getty (geralmente, sua variante agetty ). Este binário leva como argumento, entre outros, o valor para inicializar a variável TERM com.

No Debian, com o init do Sys V, o padrão era vt100 . Com o systemd, o padrão costumava ser vt102 e hoje em dia é vt220 .

Depois de jogar um pouco com máquinas virtuais QEMU e virt-viewer , bem como o comando virsh console , notei algumas coisas:

  • Com vt100 , ls --color exibe cores, mas o destaque da sintaxe de vim não funciona
  • com vt102 ou vt220 , nenhum deles exibe cores
  • Apenas com a variável TERM definida como linux , faça ls e vim usar cores

Então, acho que independentemente do "suporte de cor" real, cada aplicativo analisa a variável TERM e age de acordo, o que explicaria as diferenças observadas acima.

Depois de ler o Manual de Console Serial , eu entendo que o valor do < A variável strong> TERM deve depender do modelo real do terminal físico que seria conectado à porta serial, de acordo com suas capacidades.

Observe que, de acordo com o blog de Lennart Poettering , TERM deve ser definido para linux apenas com terminais virtuais reais (em oposição aos terminais seriais). Por outro lado, o Arch Linux 'Wiki não parece se importar (veja as linhas /etc/inittab que ele propõe) ).

Então, minhas perguntas são:

Em um caso geral, o que acontece se a variável TERM estiver definida como linux em um console conectado a um terminal com menos capacidade, como um DEC VT100, VT102 ou VT220, ou alguns emuladores de terminal de software RS-232 como minicom ou termite ?

Mais realisticamente (no meu caso particular), é aceitável definir a variável TERM como linux em um console serial "virtual" em uma VM do QEMU, para a qual Vou me conectar através de virt-viewer ou virsh console ?

    
por MoonSweep 09.04.2018 / 23:36

1 resposta

1

A configuração TERM informa ao programa de aplicativo quais recursos o terminal está se comunicando tem e como utilizar esses recursos (normalmente por meio de uma biblioteca como ncurses). Em português: diz quais seqüências de controle (seqüências de escape) deve enviar para mover o cursor para cima da tela, para alterar a cor do texto, como apagar uma região da tela, quais seqüências as teclas de função transmitem, etc. esses recursos podem estar faltando, como suporte a cores.

A maioria dos tipos de terminais em uso hoje está de alguma forma relacionada ao "grande papai" de "glass ttys", o DEC VT100. É por isso que os tipos de terminal são na maior parte intercambiáveis, então, configurar o tipo errado normalmente resulta em uma configuração mais ativa, mas com alguns problemas.

Então, para responder às perguntas "quais devo usar" e "o que acontece se eu usar a configuração errada"? Algumas sequências de controlo podem ser incompatíveis, isto é, o programa envia sequências de movimento do cursor que diferem daquelas que o emulador de terminal espera. Ou suporte a cores está faltando. (Btw. O VT100 original definitivamente não suportava cores ...) A configuração correta deve ser fornecida pela documentação do emulador de terminal, mas não há nenhum problema em experimentar para ver qual configuração funciona melhor. Não há problema em usar "linux" se funcionar para você.

    
por 10.04.2018 / 00:29