web-dev-qa-db-ja.com

LinuxでOptimusを使用した拡張デスクトップ

私が経験している問題は、デスクトップを拡張することです。また、1台のモニターをすべての画面のビューポート全体にパンします。

これは私が扱っているものです:

Dell XPS L702X

Sudo lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF106M [GeForce GT 550M] (rev a1)

LinuxでOptimusに問題が発生したのはこれが初めてではありませんが(ロングショットではありません)、最近別の画面を購入したので、代わりにその画面に拡張したいと思います。動作するmDPを介して内部ディスプレイをセカンダリディスプレイで拡張する前。

セットアップ:

左側のモニターは、Intelカードによって制御されるmDPポートに接続されています。モニターの右側は、nVidiaカードによって制御されるHDMIポートに接続されています。

Arch wikiからデフォルトのxorg.confがあります(私のために働いたセットアップのみ):

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
    Option "AllowEmptyInitialConfiguration"
EndSection

私は現在nvidiaドライバーを持っています364.19-2インストール済み。

Xrandr出力(過度の解像度出力から削除)

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
HDMI-0 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm panning 3840x1080+0+0
   1920x1080     60.00*+  59.94    50.00    60.00    50.04  
LVDS-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.01 +  40.01  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  50.00    59.94  
DP-1 disconnected (normal left inverted right x axis y axis)
  1920x1080 (0x2b8) 148.500MHz +HSync +VSync
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  67.50KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  60.00Hz
  1920x1080 (0x2ba) 148.500MHz +HSync +VSync
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  56.25KHz
        v: height 1080 start 1084 end 1089 total 1125           clock  50.00Hz

問題

KDEコントロールパネルの左側にモニターmDPがあり、右側にモニターHDMIがある場合、マウスが画面の右側に留まっていて、左側の画面に移動できません。

KDEコントロールパネルの右側にモニターmDPがあり、左側にHDMIがある場合、マウスを右に動かすことができますが、モニターHDMIがmDP出力まで水平方向にスクロールするため、出力が複製されます。マウスで左に移動すると、デスクトップの左側がスクロールして戻ります。 xrandrの出力がこの動作を説明していると思いますが、これはmDPではなくHDMIに接続された右側のモニターで発生します。

1
Xorifelse

この問題に苦労した後、私はついに問題を解決しました。

これが発生する理由は、IntelカードがnVidiaカードのシンクプロバイダーとして機能するためです。つまり、すべての画面がそこでキャプチャされ、再度送信されます。これにより、xrandrは1080p画面で5760x1080をレンダリングできないのと同じように動作しました。

そのため、システムを修正する代わりにだまして、問題を解決しました。私はこのスクリプトでそうしましたが、その考えを信用することはできません。

xrandr --output HDMI-1 --mode 1920x1080 --pos 0x0 --panning 5760x1080+0+0/0x0+0+0/0/0/-3840/0
xrandr --output HDMI-0 --mode 1920x1080 --pos 1920x0 --panning 5760x1080+0+0/0x0+0+0/-1920/0/-1920/0
xrandr --output LVDS-1 --mode 1920x1080 --pos 3840x0 --panning 5760x1080+0+0/0x0+0+0/-3840/0/0/0

ソース

モニターの接続と解像度に合わせて値を変更しました。次に行ったのは、システムの起動時に実行されるbashファイルを作成して、接続されているモニターを判別し、そこからxrandrコマンドを手動で実行することです。他のモニターを外してノートブックを持っていくと便利です。

0
Xorifelse