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

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

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

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

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

Я нашел базу решения здесь: https://askubuntu.com/questions/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 только видел разрешение 1024×768.

Шаг 2:

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

Шаг 2.1.

Найдите необходимые параметры отображения. Я хотел 1600×900 @ 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 понимает режим 1600×900:

 > xrandr --addmode VGA1 1600x900 

Шаг 4

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

 > xrandr --output VGA1 --mode 1600x900 

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

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

 > xrandr --output VGA1 --mode 1024x768 

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

Шаг 5

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

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

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

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

gtf – это метод, использованный выше, чтобы получить тайминги, которые работают в основном, но я бы не получил режим, который был бы для 2560×1440. Я использовал программу 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"