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

7

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

Eu preciso usar esta máquina com um KVM, mas por algum motivo o CentOS7 não consegue detectar meu monitor através do KVM que tenho, então ele é padronizado como "Unknown Display" em uma resolução de 1024x768 (tudo detecta e funciona em resoluções maiores se eu conectar monitor diretamente ao sistema).

Como posso configurar manualmente as coisas para que eu possa usar resoluções maiores?

Eu tentei editar monitors.xml com uma nova resolução, mas após a reinicialização, o CentOS7 rejeitou a alteração, dizendo que não era possível detectar, e voltou para 1024x768.

    
por Dave 23.11.2015 / 17:08

3 respostas

10

Encontrei a base da solução aqui: link

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 é autodetectado, você precisa informá-lo manualmente sobre o modo do seu monitor.

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

Etapa 1:

Encontre o nome da sua porta. Isso será algo como VGA1, HDMI1 ou algo assim. Você talvez possa encontrá-lo em /var/log/Xorg.0.log, ou você 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 só viu a resolução de 1024x768.

Etapa 2:

Diga ao xrandr sobre o novo modo. Os modos são simplesmente strings que têm parâmetros de exibição de vídeo anexados a eles.

Etapa 2.1

Encontre os parâmetros de exibição de que você precisa. 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 realmente chamá-lo como quiser, apenas use o mesmo nome nas etapas seguintes.

Etapa 3

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

> xrandr --addmode VGA1 1600x900

Etapa 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 entende realmente o novo modo, você receberá uma tela em branco!

Se você receber uma tela em branco, provavelmente poderá recuperá-la digitando cegamente:

> xrandr --output VGA1 --mode 1024x768

Outra maneira é se conectar 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.

    
por 07.01.2016 / 01:41
0

Depois de passar algumas horas preciosas experimentando as "soluções" acima e outras, corri para isso:

link

    
por 10.10.2016 / 11:59
0

Eu tinha mais ou menos a mesma situação, e a resposta acima é uma das explicações mais completas de como consertar isso, mas eu tive que ir mais um nível para obter meu 32 "Samsung para renderizar em 2560x1440.

gtf é o método usado acima para obter os timings, o que funciona na maioria das vezes, mas eu não iria conseguir um modo que fosse para o 2560x1440. Eu usei o programa cvt, com o switch -r (necessário para isso, e não é adequado para o crt, apenas dispositivos que podem viver sem o blanking).

~% 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

Este modo de temporização, usado no lugar da informação acima dada pelo gtf, funcionou como um encanto. Eu ainda gostaria de poder fazer isso ficar "cozido" no sistema X11 , mas eu fiz o script para criar, adicionar e, em seguida, mudar para o modo, por isso funciona muito bem.

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

(Script para fazer o modo adicionar e mudar depois)

 #!/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"
    
por 21.09.2017 / 21:30