Gostaria de usar meu antigo terminal VT420 como console do sistema. Adicionar portas RS232 e configurar serial-getty
não é um problema, mas: Durante anos, quase todas as distribuições Linux têm usado UTF-8 como conjunto de caracteres padrão, enquanto o VT fala apenas Latin-1 (ISO 8859-1) e o antigo DEC conjunto de caracteres multinacionais.
Então: O que posso fazer para serial-getty
usar um dos conjuntos de caracteres suportados pelo terminal? Existe uma solução fácil de implementar para isso? Minhas distros atuais são:
- OpenSuSE Salto 15.6
- OpenWRT, versão atual
Observe que o VT420 permite definir caracteres personalizados (bitmap), mas isso é um trabalho árduo.
getty não define conjuntos de caracteres. Os programas que você executa geram os bytes que desejam, e a maioria deles usa o sistema de localidade libc para determinar qual codificação ou conjunto de caracteres você deseja usar – em resumo, suas variáveis
LANG
ou de ambiente.LC_CTYPE
(Veja a página de manual nl_langinfo(3) para mais detalhes.)Por exemplo, tendo
LANG=en_US.utf8
ouC.UTF-8
indica que os programas devem gerar UTF-8, enquanto plainen_US
geralmente é definido para usar ISO-8859-1.Dependendo da distribuição, localidades extras podem estar disponíveis
locale -a
por padrão ou você pode precisar compilá-las editando/etc/locale.gen
ou alguma outra mágica específica da distro (dpkg-reconfigure locales, eselect locale, etc), ou - se você estiver executando um Musl -distro baseada – eles podem não estar disponíveis. (AC
localidade é sempre incorporada, mas define ASCII de 7 bits, não ISO-8859.)Depois de ter a localidade en_US na
locale -a
lista, exporteLC_CTYPE=en_US
para substituir qualquer LANG que você normalmente possui e executelocale charmap
para verificar os resultados. (O idioma escolhido realmente não importa muito, pois LC_CTYPE influencia apenas o conjunto de caracteres e nada mais; por exemplo, os formatos de data ainda serão baseados no seu LANG.)Normalmente, o LANG é definido através do PAM (pam_env) ou através do /etc/profile do shell de login – novamente dependendo da distribuição – mas ajustes específicos do tty como esse provavelmente são melhor feitos em seu ~/.profile ou mesmo em seu ~/.bashrc.
Nem todos os programas respeitam o conjunto de caracteres de localidade; alguns sempre geram UTF-8. Nesses casos, você pode precisar tentar a
luit
ferramenta "proxy" que vem com o Xterm (embora normalmente tenha o propósito exatamente oposto – converte para UTF-8), ou tentar obtertmux
ouscreen
fazer a conversão.