Como configurar manualmente um monitor no CentOS7, conectado via KVM?

9

Eu tenho uma nova instalação de desktop do CentOS7 com o Gnome 3.

Preciso usar esta máquina com um KVM, mas por alguma razão o CentOS7 não pode detectar meu monitor através do KVM que possuo, portanto, o padrão é "Tela Desconhecida" com uma resolução de 1024x768 (tudo detecta e funciona em resoluções mais altas se eu conectar o monitor diretamente para o sistema).

Como posso configurar manualmente as coisas para poder usar resoluções maiores?

Tentei editar monitors.xmlcom uma nova resolução, mas, após a reinicialização, o CentOS7 rejeitou a alteração, dizendo que não podia detectar, e voltou para 1024x768.

Dave
fonte

Respostas:

14

Encontrei a base da solução aqui: /ubuntu/186288/how-to-detect-and-configure-an-output-with-xrandr

Nas distribuições modernas do Linux, incluindo o CentOS, a biblioteca xrandr é responsável por coisas como resolução de tela, rotação e assim por diante. Como o seu sistema não detecta automaticamente, você deve informar manualmente sobre o modo em que seu monitor é capaz.

Eu tive o mesmo problema com um KVM e a saída de amostra é do meu computador:

Passo 1:

Encontre o nome da sua porta. Isso será algo como VGA1, HDMI1 ou mais. Você pode encontrá-lo em /var/log/Xorg.0.log ou pode usar o utilitário xrandr:

> xrandr
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00* 
   800x600       60.32    56.25  
   848x480       60.00  
   640x480       59.94  
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Meu KVM está conectado à porta VGA chamada VGA1. Como o KVM bloqueia a detecção automática, o xrandr viu apenas a resolução de 1024x768.

Passo 2:

Informe o xrandr sobre o novo modo. Os modos são simplesmente strings que possuem parâmetros de exibição de vídeo anexados a eles.

Etapa 2.1

Encontre os parâmetros de exibição necessários. Eu queria 1600x900 @ 60 Hz:

> gtf 1600 900 60 -x
# 1600x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 119.00 MHz
  Modeline "1600x900_60.00"  119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

Etapa 2.2

Crie o novo modo com xrandr usando os valores do comando gtf:

> xrandr --newmode "1600x900" 119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

O primeiro parâmetro é o nome do novo modo - você pode chamá-lo como quiser, basta usar o mesmo nome nas etapas subseqüentes.

etapa 3

Diga ao xrandr que o VGA1 entende o modo chamado 1600x900:

> xrandr --addmode VGA1 1600x900

Passo 4

Diga ao xrandr para mudar para o novo modo.

> xrandr --output VGA1 --mode 1600x900

Nota: se você cometeu um erro e seu monitor não entender o novo modo, você verá uma tela em branco!

Se você receber uma tela em branco, provavelmente poderá se recuperar digitando cegamente:

> xrandr --output VGA1 --mode 1024x768

Outra maneira de contornar isso é conectar-se a partir de outro computador via SSH e executar este comando via SSH em vez de no console.

Etapa 5

Crie um script que automatize os comandos newmode, addmode e output, pois eles não serão preservados durante uma reinicialização.

Kevin Keane
fonte
1
Isso está no local - uma jóia rara de informações sobre o uso do xrandr. Mil votos para você, senhor.
Paulo
1
Trabalhou para mim também. No CentOS 7.
Mohammad Yaseen
2
Ótima resposta. Mas agora, onde posso colocar os comandos para que ele se torne o padrão na inicialização?
Mvk
@SteliosAdamantidis Yes. Observe a etapa 5 que deve resolver esse problema.
Kevin Keane
1

Eu tive praticamente a mesma situação, e a resposta acima é uma das explicações mais completas de como resolver isso, mas eu tive que ir mais um nível para conseguir que minha Samsung de 32 "renderize em 2560x1440.

gtf é o método usado acima para obter os horários, que funciona principalmente, mas eu não gostaria de obter um modo semelhante ao de 2560x1440. Eu usei o programa cvt, com a opção -r (necessário para isso e não adequado para os crt's, apenas dispositivos que podem viver sem o apagamento).

~% cvt -r  2560 1440 60
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
Modeline "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync

Esse modo de temporização, usado no lugar das informações acima fornecidas pelo gtf, funcionou como um encanto. Eu ainda gostaria de poder fazer isso ficar "cozido" no X11sistema, mas criei o script para criar, adicionar e depois mudar para o modo, para que funcione perfeitamente.

E meus olhos envelhecidos adoram o enorme monitor. Nada excede como excesso ...

(Script para fazer o modo adicionar e alternar a seguir)

 #!/bin/bash
 # Used to get timing: cvt -r  2560 1440 60
xrandr --newmode  "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync
xrandr --addmode HDMI1 "25 60x1440R"
xrandr --output HDMI1 --mode "2560x1440R"
Schatzi
fonte
1

Concordo que esta é quase a solução. Isso colocou minha tela na resolução correta.

$ cvt 1920 1080 60
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

No entanto, com duas grandes colunas pretas nos lados esquerdo e direito da tela. Eu acho que algum tipo de overscan.

Então eu tive que grep alguns valores capturados durante a inicialização do xorg.log.

$ grep 1080 /var/log/Xorg.0.log
[  2316.000] (II) modeset(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)

Então, depois de substituir os valores cvt, pelos valores Xorg.0.log, obtive o layout de tela correto.

$ xrandr --newmode "1920x1080_60.00" 148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync
Niels Roskam
fonte
0

Depois de passar algumas horas preciosas tentando as acima e outras "soluções", eu me deparei com isso:

http://elrepo.org/tiki/kernel-ml

il60304
fonte
Como os links tendem a ficar obsoletos e morrem, as respostas somente para links não são consideradas muito úteis aqui. Talvez você possa entrar em detalhes sobre o que realmente fez para resolver o problema em sua resposta, enquanto ainda aponta para os recursos que o ajudaram no caminho. Dessa forma, as pessoas que usam este site verão a resposta diretamente, mesmo se o outro link desaparecer.
Eric Renouf 10/10