2つのNVidiaビデオカードを搭載したマシンをセットアップしました。
$ lspci
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GT 740] (rev a1)
02:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 730] (rev a1)
その後、loginctl
を使用してGT 730をseat-1に割り当て、GT 740をそのままにして、seat0に割り当てたままにします。 seat0には2台のモニターがあり、seat-1には1台しかありません。
nouveau
XOrgドライバーを使用すると、両方のシートを使用できます。両方の座席にlightdm
ログイン画面が表示され、ログインが許可されます。
ここで2つの問題:
service lightdm restart
)を再起動することで修正できますが、明らかに両方のシートをログアウトするため、せいぜい不便です。dmesg | grep nouveau
は、nouveau 0000:01:00.0: fifo: SCHED_ERROR 08 []
やnouveau 0000:01:00.0: Xorg[1250]: channel 2 killed!
などのいくつかのメッセージを表示します独自のnvidiaドライバー(apt install nvidia-384
)をインストールすると、GT 740(2つのモニターを装備したseat0に割り当てられた)のみが使用可能になります。 GT 730のもう1つのディスプレイ(座席1に割り当てられ、1つのモニターが装備されています)は黒のままです。
しかし、利点は、私はseat0でこれ以上ロックアップを経験しなかったことです(そして明らかにseat-1でこれ以上ちらつきはありませんが、これは実際には改善ではありません;-))
また、ハードウェアドライバー設定アプリまたはコンソールのubuntu-drivers
を使用してドライバーに切り替えようとしました。両方とも、1つのNVidiaカード、つまりGT 740のみをリストします。
$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0 ==
modalias : pci:v000010DEd00000FC8sv00001458sd000036FFbc03sc00i00
vendor : NVIDIA Corporation
model : GK107 [GeForce GT 740]
driver : nvidia-384 - distro non-free recommended
driver : nvidia-340 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
== cpu-microcode.py ==
driver : AMD64-microcode - distro non-free
私の目的は、両方の座席を動かして、ロックアップしたりちらつかないようにすることです。 nouveauドライバーまたはnvidiaドライバーを使用してこれを実現するかどうかはあまり気にしません。
私は現在、Xorg.confを持っていないか、lightdm構成を変更していません。何を置くべきかわからなかったからです... nvidiaドライバーに2番目のカードを認識させるだけでうまくいくと思いますが、私にはわかりませんこれを達成する方法。
何か案は?
事前に感謝、パトリック
OK、ようやく機能しました。
このセクションは、他の人にとっては小さな「はじめに」として、そして私自身にとっては小さな「側近の記憶」としてここにあります...これが唯一の方法ではなく、おそらく最善の方法でもないのです。それ。
loginctl attach seat1 /dev/...
)。これにより、ハブに接続されているマウスとキーボードが自動的に割り当てられます。loginctl seat-status seat1
を実行します。これはここにどのように見えるかです:
seat1
Sessions: *c3
Devices:
├─/sys/devices/pci0000:00/0000:00:03.0/0000:02:00.0/drm/card1
│ [MASTER] drm:card1
├─/sys/devices/pci0000:00/0000:00:03.0/0000:02:00.0/drm/renderD129
│ drm:renderD129
├─/sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card2
│ sound:card2 "NVidia"
│ ├─/sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card2/input20
│ │ input:input20 "HDA NVidia HDMI/DP,pcm=3"
│ └─/sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card2/input21
│ input:input21 "HDA NVidia HDMI/DP,pcm=7"
├─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb8
│ usb:usb8
│ ├─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb8/8-1
│ │ usb:8-1
│ │ ├─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb8/8-1/8-1.3
│ │ │ usb:8-1.3
│ │ ├─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb8/8-1/8-1.4/8-1.4:1.0/0003:046A:B102.0004/input/input5
│ │ │ input:input5 "HOLTEK USB Wireless Device"
│ │ └─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb8/8-1/8-1.4/8-1.4:1.1/0003:046A:B102.0005/input/input6
│ │ input:input6 "HOLTEK USB Wireless Device"
│ └─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb8/8-2
│ usb:8-2
│ └─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb8/8-2/8-2.3
│ usb:8-2.3
├─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb9
│ usb:usb9
│ ├─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb9/9-1
│ │ usb:9-1
│ │ └─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb9/9-1/9-1.3
│ │ usb:9-1.3
│ └─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb9/9-2
│ usb:9-2
│ └─/sys/devices/pci0000:00/0000:00:04.0/0000:03:00.0/usb9/9-2/9-2.3
│ usb:9-2.3
├─/sys/devices/pci0000:00/0000:00:12.0/usb4
│ usb:usb4
│ ├─/sys/devices/pci0000:00/0000:00:12.0/usb4/4-4/4-4:1.0/sound/card5
│ │ sound:card5 "Device"
│ └─/sys/devices/pci0000:00/0000:00:12.0/usb4/4-4/4-4:1.3/0003:0D8C:0014.0001/input/input2
│ input:input2 "C-Media Electronics Inc. USB Audio Device"
└─/sys/devices/pci0000:00/0000:00:12.2/usb1
usb:usb1
├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-2
│ usb:1-2
├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-3/1-3:1.0/input/input15
│ input:input15 "UVC Camera (046d:0807)"
├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-3/1-3:1.0/video4linux/video0
│ video4linux:video0 "UVC Camera (046d:0807)"
├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-3/1-3:1.2/sound/card3
│ sound:card3 "U0x46d0x807"
└─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5
usb:1-5
Nouveauドライバーを使用しているときに、seat1で画面がちらついたり、seat0でロックアップしたりすることをどうすればよいかわかりませんでした。このまさに問題の解決策を探しているなら、 https://wiki.archlinux.org/index.php/Xorg_multiseat を見る価値があるかもしれません:
これを破ることを避けるために、これはほぼすべての設定で役立つようです-これを/ etc/environmentに追加します:
CLUTTER_Paint=disable-clipped-redraws:disable-culling
CLUTTER_VBLANK=True
別のヒントは、ユーザーをグループvideo
に追加することでした。そうしないと、ユーザーはDRIインターフェイスにアクセスできない可能性があります。
これは私が言えることのすべてであり、Nvidiaバイナリドライバーの使用に切り替えました。
私が抱えていた問題は、GPU-1がseat1に割り当てられているにもかかわらず、seat0のXサーバーが何らかの方法で両方のGPUを制御しようとしていたことでした。
これにより、座席1のXスクリーンとXサーバーが混同され、使用可能なスクリーンが見つかりませんでした。
/etc/X11/xorg.conf.d
ファイルをいじるのに何時間も費やしました。
Section "Device"
Identifier "graphic0"
Driver "nvidia"
Option "NoLogo"
BusId "PCI:1:0:0"
MatchSeat "seat-1"
Option "Monitor-DVI-1" "monitor1"
EndSection
そして
Section "ServerLayout"
Identifier "seat-1"
Screen "screen1" 0 0
InputDevice "mouse1" "CorePointer"
InputDevice "keyboard1" "CoreKeyboard"
Option "Seat" "seat-1"
Option "SingleCard" "on"
EndSection
https://wiki.archlinux.org/index.php/Xorg_multiseat (そこには有用な情報がたくさんありますが、私の問題は解決しませんでした)または https:// devtalk.nvidia.com/default/topic/936873/linux/-howto-multiseat-with-ubuntu-16-04-systemd-gdm-proprietary-drivers/1 (この問題に関する別の高品質な議論)。
最終的に私のために働いたのは、難しい方法でそれを行い、各座席にX構成を提供することでした。
したがって、私の手順は次のとおりです。
loginctl attach seat1 ....
を使用して、必要なすべてのデバイスをseat1に割り当てますnvidia専用ドライバーをインストールします(システムに合った正しいドライバーを選択してください。ターミナルでubuntu-drivers devices
を実行して、使用可能なドライバーのリストを表示します)
apt install nvida-384
nvidia-seetings
を実行します。左側の[X Server Display Configuration
]を選択し、save to X Configuration File
右下をクリックして、ファイルを〜/ xorg-templateとして保存します/etc/X11
に2回、1回はxorg-seat0.conf
として、1回はxorg-seat1.conf
としてコピーしますこれらの2つのXorg構成ファイルを変更して、それぞれseat0とseat1のセットアップに一致させます。 GPUのPCIアドレスとモニターの数という数行を変更するだけで済みました。ただし、わかりやすくするために識別子の名前も変更しました。これは実際には必要ないと思われます。以下は私の設定です:
座席0
# xorg-seat0.conf
Section "ServerLayout"
Identifier "Layout-seat0"
Screen 0 "Screen-seat0" 0 0
InputDevice "Keyboard-seat0" "CoreKeyboard"
InputDevice "Mouse-seat0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse-seat0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard-seat0"
Driver "kbd"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor-seat0_1"
VendorName "Unknown"
ModelName "FUS H22-1W"
HorizSync 28.0 - 79.0
VertRefresh 50.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device-seat0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 740"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen-seat0"
Device "Device-seat0"
Monitor "Monitor-seat0_1"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "DVI-D-0: nvidia-auto-select +0+0, DVI-D-1: nvidia-auto-select +1680+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
座席1
# xorg-seat1.conf
Section "ServerLayout"
Identifier "Layout-seat1"
Screen 0 "Screen-seat1" 0 0
InputDevice "Keyboard-seat1" "CoreKeyboard"
InputDevice "Mouse-seat1" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse-seat1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard-seat1"
Driver "kbd"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor-seat1_1"
VendorName "Unknown"
ModelName "FUS H22-1W"
HorizSync 28.0 - 79.0
VertRefresh 50.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device-seat1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 730"
BusID "PCI:2:0:0"
EndSection
Section "Screen"
Identifier "Screen-seat1"
Device "Device-seat1"
Monitor "Monitor-seat1_1"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "DVI-D-0: nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
10-seats.conf
に新しいファイル/etc/lightdm/lightdm.conf.d/
を作成し(まだない場合はフォルダーを作成します)、レイアウトと構成ファイルを各Xサーバーに割り当てます。
# 10-seats.conf
[Seat:seat0]
xserver-command=/usr/bin/X :0
xserver-config=/etc/X11/xorg-seat0.conf
xserver-layout=Layout-seat0
[Seat:seat1]
xserver-command=/usr/bin/X :1
xserver-config=/etc/X11/xorg-seat1.conf
xserver-layout=Layout-seat1
お気づきかもしれませんが、xorg-seat [01] .confファイルには座席に関するヒントが含まれていません。文字列seat0とseat1を使用して識別子に名前を付けましたが、関連性はありません。
ただし、lightdm構成では、座席を作成するときに、座席に割り当てた名前を使用する必要があります。 seat0は変更できませんが、2番目の座席には任意の名前を付けることができます(seat
で始まり、その後に文字、数字、-、_のみが続く場合)。その名前を使用してセカンドシートを設定するようにしてください-seat1
を使用してシンプルにしました。
X構成ファイルから削除できるものがあると確信していますが、まだ整理していません。うまく機能するためのよりミニマルなファイルを見つけた場合は、ここにコメントを投稿してください。あなたの情報を追加します(自分の答え全体を投稿したくない場合を除き)。
たとえば、両方のX構成ファイルで構成されたマウスもキーボードも私のマシンには存在しません-それらはnvidia-settings
によって追加されたダミーデバイスです。物理デバイス(USBワイヤレスマウスとキーボード)は、それぞれseat0とseat1に接続されているため、その場で追加されます。