xrandrを介してマルチモニタ設定に新しい解像度を追加する

xrandrを介してマルチモニタ設定に新しい解像度を追加する

最大値が異なる2つのモニターがあります。解像度(2560×1440および1920×1080)。 Windowsでは、両方のモニターに対して最大解像度を設定できますが、Linux(manjaro、独自のnvidiaドライバ、xrandr 1.5)では、より大きなモニターの解像度は2048 x 1152に制限されます。 xrandrを使ってカスタム解像度を追加する方法についていくつかの質問/スレッド/記事を読んだが、それらのどれも私には役に立たなかった。私の質問は次のとおりです。

xrandrの出力:

Screen 0: minimum 8 x 8, current 3968 x 1152, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 disconnected (normal left inverted right x axis y axis)
DVI-I-2 connected 1920x1080+2048+0 (normal left inverted right x axis y axis) 478mm x 269mm
   1920x1080     60.00*+
   ... skipped few lines .... 
   640x480       75.00    72.81    59.94  
HDMI-0 connected primary 2048x1152+0+0 (normal left inverted right x axis y axis) 553mm x 311mm
   2048x1152     60.00*+
   ... skipped few lines ...                                                                              
   640x480       75.00    59.94    59.93                                                                      
DVI-I-3 disconnected (normal left inverted right x axis y axis)

cvtを使用して新しいカスタム解像度を作成します。

$ cvt 2560 1440 60
# 2560x1440 59.96 Hz (CVT 3.69M9) hsync: 89.52 kHz; pclk: 312.25 MHz
Modeline "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

今新しい結果を作りたいです。

xrandr --newmode 2560x1440_60.00 312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

これでxrandrの出力は次のようになります。

Screen 0: minimum 8 x 8, current 3968 x 1152, maximum 16384 x 16384                                           
DVI-I-0 disconnected (normal left inverted right x axis y axis)                                               
DVI-I-1 disconnected (normal left inverted right x axis y axis)                                               
DVI-I-2 connected 1920x1080+2048+0 (normal left inverted right x axis y axis) 478mm x 269mm                   
   1920x1080     60.00*+                                                                                      
   ... skipped few lines ...                                                             
   640x480       75.00    72.81    59.94                                                                      
HDMI-0 connected primary 2048x1152+0+0 (normal left inverted right x axis y axis) 553mm x 311mm               
   2048x1152     60.00*+                                                                                      
   ... skipped few lines ...  
   640x480       75.00    59.94    59.93  
DVI-I-3 disconnected (normal left inverted right x axis y axis)
  2560x1440_60.00 (0x313) 312.250MHz -HSync +VSync
        h: width  2560 start 2752 end 3024 total 3488 skew    0 clock  89.52KHz
        v: height 1440 start 1443 end 1448 total 1493           clock  59.96Hz

この解像度をHDMI-0出力に追加しようとすると、次のエラーが発生します。

$ xrandr --addmode HDMI-0 2560x1440_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:  33
  Current serial number in output stream:  34

以前は、この方法を使用して他のコンピュータ(ノートブック+外部モニタ、両方とも同じ解像度)で必要に応じて問題なくモニタを設定できました。どんなアドバイスでも本当に感謝します。

答え1

nVidiaドライバには問題があっても厳格なEDIDポリシーがあります。

  • EDIDを無視し、グラフィックアダプタがサポートするすべての解像度から選択するxorgオプションがあります。次のいずれかを使用します。

    Option "UseEDID" "boolean"
    Option "ModeValidation" "NoEdidModes"
    

    一部の機能は無視される場合があります。

    Option "UseEDIDFreqs" "FALSE"
    Option "IgnoreEDIDChecksum" "<con-1>, <con-2>"
    

    または、高度なEDID検証調整については、サポートされている値への参照を確認してください。

    Option "ModeValidation" "string"
    
  • また、変更されたEDIDコピーを挿入するオプションもあります。警告:これは危険であり、すべてのモニターが耐久性を持つように設計されているわけではありません。

    Option "CustomEDID" "<con-1>:</pathto/edid1.bin>; <con-2>:</pathto/edid2.bin>"
    

引用:

メモ:

ただし、EDIDデータを取得したことを確認するには、次のようにします。

xrandr --verbose

関連情報