Как вручную настроить монитор в 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"
Schatzi
источник
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

il60304
источник
Поскольку ссылки имеют тенденцию устаревать и умирать, ответы только на ссылки здесь не считаются очень полезными. Возможно, вы могли бы подробно рассказать о том, что вы на самом деле сделали, чтобы решить проблему, в своем ответе, но все же указали на ресурсы, которые помогли вам на этом пути. Таким образом, люди, использующие этот сайт, увидят ответ напрямую, даже если другая ссылка исчезнет.
Эрик Ренуф