xrandrを使用して検出されない解像度を設定する

xrandrを使用して検出されない解像度を設定する

Debian 10でHDMI-VGAアダプタを使用してSamsung SyncMaster 226 NWモニタを実行しようとしています。 GPUは、独自のNvidiaドライババージョン440.64を搭載したRTX 2060 Superです。

Linuxで利用可能であると検出される唯一の解像度は、1280×720、1024×768、800×600、および640×480です。

しかし、実際の基本解像度は1680×1050で、Windowsデュアルブート時に設定して使用できる。

xrandrカスタム解像度の追加を使用した後、まずモデル行を生成するためにcvt使用しました。 xrandrの新しいスキーマを生成するために使用されるコマンドは次のとおりです。

xrandr --newmode "1680×1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

その後、Runがxrandr返されます。

Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
   1024x768      60.00*+  60.00  
   1280x720      60.00  
   800x600       60.32  
   640x480       59.94  
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
USB-C-0 disconnected (normal left inverted right x axis y axis)
  1680x1050_60.00 (0x1e4) 146.250MHz -HSync +VSync
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
        v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz

しかし、使用しようとすると

xrandr --addmode HDMI-0 "1680×1050_60.00"`

間違い

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  43
  Current serial number in output stream:  44

帰ってきた。使用

xrandr --output HDMI-0 --mode "1680×1050_60.00"

返品

xrandr:パターン1680x1050_60.00 `がエラーとして見つかりません。

出力解像度を1680×1050に正しく設定するには?

ベストアンサー1

ちょうど同じ問題を解決するのに2〜3時間を過ごしました。あまりにも迷惑なので、xrandrは新しいnvidiaドライバとまったく機能しないようです。今、多くの狂乱と狂気の終わりについに解決策を見つけました。それがあなたにも効果があることを願っています。

「nvidia-settings」ターミナルを起動し、「Xサーバーディスプレイの設定」に切り替えたら、下部の「X設定ファイルに保存」ボタンをクリックし、「プレビュー表示」をクリックします。次に、このプレビューで「Section "Monitor」.....EndSection"ブロックに移動して、後で使用できるように保存します。これがxorg.confでモニタ設定を見つけた方法です。他の方法もありますが、NVIDIAユーザーにとっては、この方法は非常に安全で便利です。

次に、解像度に合った「Modeline」を取得するには、端末に次のように入力します。

cvt 1680x1050

後で使用できるように出力を保存します。

さて、これをすべてxorg.confファイルに追加するだけです(例:/etc/X11/xorg.conf.d/10-monitor.conf(少なくとも私のディストリビューションへのパス))。モニターセクションやモデル行がないので、モニターセクションとモデル行の例を提供します(希望/検出されていない解像度は1920×1080です)。

Section "Monitor"
  Identifier "Monitor1"
  VendorName     "Unknown"
  ModelName      "Acer B246HL"
  HorizSync       30.0 - 80.0
  VertRefresh     55.0 - 76.0
  Option         "DPMS"
  Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
EndSection

Section "Device"
  Identifier "Card0"
  Driver "nvidia"
  Option "HDMI-0" "Monitor1"
EndSection

Section "Screen"
  Identifier "Screen0"
  Device "Card0"
  Monitor "Monitor1"
  DefaultDepth 24
  SubSection "Display"
    Depth 24
    Modes "1920x1080_60.00"
  EndSubSection
EndSection

したがって、「モニター」セクションでは最初の行(識別子)のみを保持し、残りはnvidia設定に保存したものに置き換え、最後の行はcvtコマンドの出力です。機器セクションが役に立ちます。画面セクションの「mode」行をモード名に変更すると、「1680x1050_60.00」モードと同じになることがあります。

私のデバイスセクションに「BusID "PCI:39:0:0"」行もありますが、必要ないようです。しかし、「X -configure」(xorgは実行してはいけません)を実行してその行を取得しました。 BusIDは生成されたxorg.conf.newになければなりません。奇妙なことは、私の場合はlspciのBusIDと同じではないということです。

また、私と同じように複数のモニタを実行するには、識別子 "Monitor2"などを使用して新しいモニタセクションを追加し、デバイスセクションにそれに応じて "Option "HDMI-1" "Monitor2"を追加し、最後に "モニタ "Monitor2""と同じ画面セクションにモニターを追加します。

私の場合、奇妙なことは、3つの同じモニタがあり、そのうちの1つがnvidia-modesetで認識されないことです。 EDIDに関連するエラーは、次のように見つけることができます。

dmesg | grep EDID

おすすめ記事