Como faço para imprimir uma resolução / frequência adequada no modo de texto?

2

[Divulgação completa: Eu fiz essa pergunta primeiro nos fóruns do Arch Linux e não obtive resposta]

Eu tenho um servidor que geralmente é executado sem cabeça. Ele não roda o X - apenas o CLI.

Este servidor costumava ter um grande CRT desajeitado que eu ligaria sempre que eu precisasse solucionar alguma coisa. Isso funcionou bem, mas o CRT (embora pequeno) pesa tanto quanto um sedan de tamanho médio. Recentemente eu tenho um pequeno painel LCD de segunda mão para substituí-lo.

O problema é que, quando eu conecto o LCD e o ligo, ele diz "O tempo de entrada atual não é suportado pela tela do monitor. Por favor mude o tempo de entrada para 1280x1024 @ 60Hz".

Se eu reiniciar o servidor (o que normalmente faço uma vez por ano, por isso não é uma solução ideal), o monitor funciona ... até que eu o desconecte. Então, quando eu o conecto de volta e o ligo, recebo a mesma mensagem novamente até que eu reinicie.

(Usar o DVI provavelmente resolveria esse problema, mas o servidor não tem uma porta DVI)

Como posso fazer com que o servidor produza vídeo 60Hz de tal forma que continue trabalhando nos ciclos de desconexão / conexão? Pontos de bônus serão concedidos por respostas que não requerem uma reinicialização!

Nathan
fonte

Respostas:

2

Você tem que usar o framebuffer.
Apenas edite /etc/grub.conf e adicione vga=794 até o final das linhas que começam com o kernel.

vga=793 1280x1024 de 15 bits a 60
vga=794 1680 bits 1280x1024 @ 60
vga=795 24 bits de 1280x1024 a 60

Dependendo da idade do monitor, talvez seja necessário tentar um dos outros códigos.
Desculpe, você terá que reiniciar até que ele funcione, então tudo bem.

MattPark
fonte
Isso realmente muda a frequência? Eu tenho um antigo chip de vídeo ATI (produto: fornecedor Rage XL PCI: Advanced Micro Devices, Inc. [AMD / ATI]) e eu acho que ele está enviando a 48Hz.
Erik Bennett
Faz apenas 4 anos desde que postei isso? Olhando para trás, não acho que isso define a frequência. Na minha experiência, os monitores mais novos terão qualquer taxa de atualização abaixo do máximo para a exibição. Existe uma boa documentação aqui: en.wikipedia.org/wiki/VESA_BIOS_Extensions
MattPark
Aposto que você nunca pensou que veria este post novamente. Funcionou, no entanto! Eu coloquei vga = 791 na linha de comando do grub e pelo menos eu consegui alguma coisa para trabalhar até que eu possa descobrir a combinação correta para este cartão / monitor (Samsung P2370HD). Obrigado novamente!
Erik Bennett
Doce! Eu não acho que você pode realmente quebrar alguma coisa com isso, e se você escolher a resolução errada você sempre pode entrar no menu grub na inicialização, editar a linha que tem as configurações de vga e tentar outra coisa.
MattPark
2

Em uma exibição surpreendente de competência, eu mesmo consertei isso!

Eu fiz isso:

  • Em / etc / default / grub
    • Definir GRUB_CMDLINE_LINUX_DEFAULT = "nomodeset"
    • Adicione a linha GRUB_TERMINAL = console
    • Adicione a linha GRUB_GFXPAYLOAD_LINUX = text
    • Remova a linha GRUB_GFXMODE
  • Execute novamente o grub-mkconfig -o /boot/grub/grub.cfg

A desvantagem é que eu obtenho um texto grande e volumoso com uma resolução não muito boa, em vez de um bom texto com framebuffer em uma resolução razoável. A vantagem é que funciona, ao contrário de qualquer um dos itens acima.

Nathan
fonte
1
Com uma excelente solução do +1, agora posso ver o que meu servidor está fazendo.
lepe
0

Você já tentou usar fbset? Usar isso para definir o modo de buffer de quadro correto deve funcionar.

Eu não usei muito o Arch desde que eles mudaram para o systemd, mas isso funcionou bem no passado.

user55325
fonte
Eu estou tendo dificuldade em tentar isso ... Eu digite 'fbset "1280x1024-60"', mas isso não parece realmente mudar nada, e isso não faz o monitor funcionar (estou digitando isso em um terminal ssh, se isso importa).
Nathan
Experimentar fbset -xres 1280 -yres 1024. Eu nunca tive que mudar os horários, mas man fbset irá dizer-lhe a sintaxe para fazer isso.
user55325
A página man é incrivelmente inútil ... Eu vejo uma seção sobre horários, mas eu suspeito que eu preciso ter uma licenciatura em engenharia elétrica apenas para entender essa seção ...
Nathan
0

Você pode tentar

 sudo udevadm trigger

Na página de manual do Arch udevadm:

disparador do udevadm [opções]

Solicitar eventos do dispositivo do kernel. Usado principalmente para reproduzir eventos no tempo de coldplug do sistema.

MariusMatutiae
fonte
Isso não parece resolver o problema
Nathan