KVM経由で接続されたCentOS7でモニターを手動で構成する方法


9

Gnome 3を搭載したCentOS7をデスクトップに新しくインストールしました。

私はこのマシンをKVMで使用する必要がありますが、何らかの理由でCentOS7は私が持っているKVMを介してモニターを検出できないため、1024x768の解像度では「不明なディスプレイ」にデフォルト設定されます(モニターを直接接続すると、すべてがより高い解像度で検出して機能しますシステムに)。

より大きな解像度を使用できるように手動で構成するにはどうすればよいですか?

monitors.xml新しい解像度で編集してみましたが、再起動するとCentOS7は変更を拒否し、検出できないと言って1024x768に戻しました。

回答:


14

私はここにソリューションのベースを見つけました:https : //askubuntu.com/questions/186288/how-to-detect-and-configure-an-output-with-xrandr

CentOSを含む最新のLinuxディストリビューションでは、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はVGA1と呼ばれるVGAポートに接続されています。KVMは自動検出をブロックするため、xrandrは1024x768の解像度しか見ませんでした。

ステップ2:

新しいモードについてxrandrに伝えます。モードは、ビデオ表示パラメータが付加された単なる文字列です。

ステップ2.1

必要な表示パラメータを見つけます。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

ステップ2.2

gtfコマンドの値を使用して、xrandrで新しいモードを作成します。

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

最初のパラメータは新しいモードの名前です。実際には、好きな名前を付けることができます。後続の手順では同じ名前を使用します。

ステップ3

VGA1が1600x900と呼ばれるモードを理解することをxrandrに伝えます。

> 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の場合
Mohammad Yaseen 2017年

2
すばらしい答えです。しかし、起動時にデフォルトになるように、コマンドをどこに配置できますか?
mivk 2018

@SteliosAdamantidisはい。その問題を処理するステップ5に注意してください。
Kevin Keane

1

ほぼ同じ状況で、上記の回答はこれを修正する方法についてのより完全な説明の1つですが、32インチのSamsungを2560x1440でレンダリングするには、さらに1レベル上げる必要がありました。

gtfは、タイミングを取得するために上記で使用した方法であり、ほとんど機能しますが、2560x1440に対応するモードを取得できません。私は-rスイッチを付けてcvtプログラムを使用しました(これには必要であり、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

ただし、画面の左側と右側の両方に2つの主要な黒い列があります。なんらかのオーバースキャンだと思います。

そのため、起動時にxorg.logから取得した値をgrepする必要がありました。

$ 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


リンクは古くなって死ぬ傾向があるため、リンクのみの回答は、ここではあまり役に立ちません。おそらく、答えの中で問題を解決するために実際に行った処理について詳細に説明しながら、途中で役立つリソースを参照することもできます。そうすれば、他のリンクが消えたとしても、このサイトを使用している人々は答えを直接見ることができます。
Eric Renouf、2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.