Как вручную настроить монитор в CentOS7, подключенный через KVM?


9

У меня свежая настольная установка CentOS7 с Gnome 3.

Мне нужно использовать эту машину с KVM, но по какой-то причине CentOS7 не может обнаружить мой монитор через KVM, который у меня есть, поэтому по умолчанию используется значение «Неизвестный дисплей» с разрешением 1024x768 (все обнаруживается и работает при более высоких разрешениях, если я подключаю монитор напрямую в систему).

Как я могу вручную настроить вещи, чтобы я мог использовать большие разрешения?

Я попытался редактировать monitors.xmlс новым разрешением, но после перезагрузки CentOS7 отклонил изменение, сказав, что не может обнаружить, и вернулся к разрешению 1024x768.

Ответы:


14

Я нашел основу решения здесь: /ubuntu/186288/how-to-detect-and-configure-an-output-with-xrandr

В современных дистрибутивах Linux, включая CentOS, библиотека xrandr отвечает за такие вещи, как разрешение экрана, поворот и так далее. Поскольку ваша система не обнаруживает автоматически, вы должны вручную сообщить ей, в каком режиме работает ваш монитор.

У меня была такая же проблема с KVM, и пример выходных данных с моего компьютера:

Шаг 1:

Найдите название вашего порта. Это будет что-то вроде VGA1, HDMI1 или около того. Вы можете найти его в /var/log/Xorg.0.log или использовать утилиту 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)

Мой KVM подключен к порту VGA, который называется VGA1. Поскольку KVM блокирует автоопределение, xrandr видел только разрешение 1024x768.

Шаг 2:

Расскажите xrandr о новом режиме. Режимы - это просто строки, к которым прикреплены параметры отображения видео.

Шаг 2.1

Найдите параметры дисплея, которые вам нужны. Я хотел 1600x900 при 60 Гц:

> 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

Шаг 2.2

Создайте новый режим с помощью xrandr, используя значения из команды gtf:

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

Первый параметр - это имя нового режима - вы можете назвать его как угодно, просто используйте то же имя в последующих шагах.

Шаг 3

Скажите xrandr, что VGA1 понимает режим, называемый 1600x900:

> xrandr --addmode VGA1 1600x900

Шаг 4

Скажите xrandr, чтобы перейти в новый режим.

> xrandr --output VGA1 --mode 1600x900

Примечание: если вы допустили ошибку и ваш монитор фактически не понимает новый режим, вы получите пустой экран!

Если вы получаете пустой экран, вы можете восстановить, слепо набрав:

> xrandr --output VGA1 --mode 1024x768

Другой способ - подключиться с другого компьютера через SSH и выполнить эту команду через SSH вместо консоли.

Шаг 5

Создайте сценарий, который автоматизирует команды newmode, addmode и output, так как они не будут сохранены при перезагрузке.


1
Это место - редкая жемчужина информации об использовании xrandr. Тысяча голосов, сэр.
Пол

1
У меня тоже сработало. На CentOS 7.
Мохаммед Ясен

2
Отличный ответ. Но теперь, где я могу поместить команды так, чтобы это стало значением по умолчанию при запуске?
Mivk

@SteliosAdamantidis Да. Обратите внимание на шаг 5, который должен решить эту проблему.
Кевин Кин

1

У меня была примерно такая же ситуация, и приведенный выше ответ является одним из наиболее полных объяснений того, как это исправить, но мне пришлось пройти еще один уровень, чтобы мой 32-дюймовый Samsung рендерился с разрешением 2560x1440.

gtf - это метод, использованный выше для получения таймингов, который работает в основном, но я бы не дал мне режим, который бы соответствовал 2560x1440. Я использовал программу cvt с ключом -r (необходим для этого и не подходит для crt, только устройства, которые могут жить без гашения).

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

Этот режим синхронизации, используемый вместо информации, предоставленной gtf, работал как шарм. Я все еще хотел бы, чтобы это можно было «запечь» в X11системе, но я создал сценарий для создания, добавления, а затем переключения в режим, чтобы он отлично работал.

И мои стареющие глаза любят огромный монитор. Ничто не превосходит, как избыток ...

(Скрипт для режима добавления и переключения следует)

 #!/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"

1

Я согласен, что это почти решение проблемы. Это поместило мой экран в правильное разрешение.

$ 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

Однако с двумя основными черными колонками на левой и правой стороне экрана. Я думаю, что-то за кадром.

Поэтому мне пришлось собрать некоторые значения, полученные при загрузке с 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)

Поэтому после замены значений cvt значениями Xorg.0.log я получил правильную компоновку экрана.

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

0

Потратив пару драгоценных часов, пробуя вышеуказанное и другие «решения», я столкнулся с этим:

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


Поскольку ссылки имеют тенденцию устаревать и умирать, ответы только на ссылки здесь не считаются очень полезными. Возможно, вы могли бы подробно рассказать о том, что вы на самом деле сделали, чтобы решить проблему, в своем ответе, но все же указали на ресурсы, которые помогли вам на этом пути. Таким образом, люди, использующие этот сайт, увидят ответ напрямую, даже если другая ссылка исчезнет.
Эрик Ренуф
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.