Como posso alterar as linhas e colunas do TTY?

3

This is a question about Linux running on a Compulab device named Utilite Pro, but I think it is worth the price to ask this question here to get it solved for any platform (if possible).

Eu costumava trabalhar com ConSpy , um maravilhoso programa controle remoto para o texto TTY consoles de modo .
Se eu inicializar meu Utilite no Ubuntu 12.04 com cabo HDMI conectado à minha tela inicial de 720p, posso me conectar remotamente a qualquer TTY, por exemplo, o primeiro TTY:

# conspy 1

Mas se eu desconectar o cabo e reinicializar:

luis@utilite-desktop:~$ sudo conspy 1
conspy: screen too large.  I only handle up to 200x80.

Parece que a resolução sobe para 1080p e, portanto, as colunas / linhas no modo de texto TTY são muito grandes para o ConSpy gerenciá-las.

Mesmos resultados com o Kali v1.0.9.

Para o que eu li, parece (incrivelmente, mas é verdade) que o Linux tem problemas terríveis para alterar a resolução do modo de texto.
Todos os métodos que eu encontrei requerem para modificações do GRUB , mas o Utilite usa U-Boot ao invés do GRUB, e é muito enigmático para eu gerenciar (nunca falo sobre o risco de salvar dados em flash).

Não existe nenhum método mais simples para alterar a resolução de texto TTY (isto é: linhas e colunas)?

Eu tentei:

# nano /etc/rc.local

... e, em seguida, adicionando:

stty cols 83 rows 40

Mas os resultados permanecem os mesmos.

    
por Sopalajo de Arrierez 08.09.2015 / 01:54

1 resposta

3

Não está claro qual é a dimensão do buffer de texto muito grande para o ConSpy ( stty --all ou algo assim não é fornecido), portanto, as recomendações sobre o número de linhas de texto e o código seguem.

Existem diferentes parâmetros sobre uma consola TUI:

  • modo vídeo (ou seja, quantas linhas de varredura × largura da tela (em pontos));
  • quantas caixas de caracteres existem (por exemplo, linhas de texto × cpl).

Geralmente:
linhas de texto = linhas de varredura / altura do caractere
cpl = largura da tela (em pontos) / largura do caractere
A altura e a largura dos caracteres estão em pontos. Divisão é inteiro, onde o restante é descartado.

Para diminuir o número de linhas de texto, carregue uma fonte com maior altura de caracteres. Para diminuir o cpl (caracteres por linha), carregue uma fonte com largura de caractere 12 ou mais. Por exemplo:

 setfont /usr/share/consolefonts/Uni3-TerminusBold24x12.psf.gz

(embora o IMHO Terminus seja feio em muitos aspectos).

No Ubuntu, um script /etc/init/console-setup.conf personalizado pode ser fabricado para ser executado na inicialização. Ou seja, em vez de

exec loadkeys /etc/console-setup/cached.kmap.gz

um pode escrever

script
    setfont /usr/share/consolefonts/Uni3-TerminusBold24x12.psf.gz
    loadkeys /etc/console-setup/cached.kmap.gz
end script

Observe que o cache.kmap.gz é uma (mapa de teclas) e não interfere nas fontes. Não é necessário executar setfont a partir de "console-setup.conf". Por causa do significado do termo "console" essa escolha parece lógica.
Atualização: /etc/init/console-font.conf tarefa no Ubuntu.

Ou leia este material no AskUbuntu , talvez vai encontrar algo de uso.

A maioria das recomendações acima considera o driver framebuffer ( fbdev ) ativado. Além disso, nesse caso, o comando fbset sem argumentos (ou sudo fbset de um shell de usuário) relata a geometria do modo de vídeo atual, como: geometry screen_width scan_lines

Em modo hardware VGA , obsoleto em Linuxes modernos, a largura máxima de caracteres é 9. Assim, pode-se diminuir o cpl (caracteres por linha) apenas habilitando uma largura de tela não padrão (diminuída), portanto, um modo não padrão com frequência de clock de pixel reduzida. Nem sempre é possível e seguro.

Mais uma observação sobre linhas de texto × cpl em consoles virtuais do Linux. Estes valores podem ser obtidos com sudo od -t u1 -N 2 /dev/vcsa
O primeiro número decimal é linhas de texto e o segundo iscpl. Veja vcs (4) e od (1) para explicações sobre como funciona.

    
por 11.09.2015 / 01:23

Tags