Para habilitar um console serial no Linux, usa-se getty
(geralmente, sua variante agetty
). Este binário recebe como argumento, entre outros, o valor com o qual inicializar a variável TERM .
No Debian, com Sys V init, o padrão era vt100 . Com systemd, o padrão costumava ser vt102 , e hoje em dia é vt220 .
Depois de brincar um pouco com máquinas virtuais QEMU e virt-viewer
, além de virsh console
comando, notei algumas coisas:
- Com vt100 ,
ls --color
exibe cores, masvim
o realce de sintaxe não funciona - com vt102 ou vt220 , nenhum deles exibe cores
- Somente com a variável TERM definida como linux , faça ambos
ls
evim
use cores
Portanto, acho que, independentemente do "suporte de cores" real, cada aplicativo analisa a variável TERM e age de acordo, o que explicaria as diferenças observadas acima.
Depois de ler o COMO FAZER do Console Serial , entendo que o valor da variável 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 , o TERM deve ser definido como linux apenas com terminais virtuais reais (em oposição aos seriais). Por outro lado, o Wiki do Arch Linux não parece se importar (veja as /etc/inittab
linhas que ele propõe).
Então minhas perguntas são:
Em um caso geral, o que acontece se a variável TERM for definida como linux em um console conectado a um terminal menos capaz, 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), posso definir a variável TERM como linux em um console serial "virtual" em uma VM QEMU, à qual me conectarei por meio de virt-viewer
ou virsh console
?
A
TERM
configuração informa ao programa aplicativo quais recursos o terminal com o qual ele está se comunicando possui e como utilizar esses recursos (normalmente por meio de uma biblioteca como ncurses). Em linguagem simples: informa quais sequências de controle (escape sequences) deve enviar para mover o cursor pela tela, para mudar a cor do texto, como apagar uma região da tela, quais sequências as teclas de função transmitem, etc. esses recursos podem estar ausentes, como suporte a cores.A maioria dos tipos de terminal em uso hoje está de alguma forma relacionada ao "avô" dos "ttys de vidro", o DEC VT100. É por isso que os tipos de terminal são geralmente intercambiáveis, portanto, definir o tipo errado geralmente resulta em uma configuração que funciona principalmente, mas com algumas falhas.
Então, para responder às perguntas "qual devo usar" e "o que acontece se eu usar a configuração errada"? Algumas sequências de controle podem ser incompatíveis, ou seja, o programa envia sequências de movimento do cursor diferentes daquelas que o emulador de terminal espera. Ou o suporte de cores está ausente. (Aliás, 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á problema em experimentar para ver qual configuração funciona melhor. Não há problema em usar "linux" se funcionar para você.