Я имею, устанавливают машину с двумя видеокартами 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 для размещения 1 и оставленный нетронутый th GT 740, таким образом, это все еще присвоено seat0. seat0 имеет два монитора, место 1 имеет только один.
Используя nouveau
Драйвер Xorg, я могу использовать оба места. Оба места отображаются lightdm
войдите в систему экранируют и позволяют вход в систему.
Две проблемы здесь:
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 (присвоенный seat0, оборудованному двумя мониторами), применим. Другой дисплей на GT 730 (присвоенный для размещения 1, оборудованный одним монитором) остается черным.
Позитивный аспект однако - то, что я больше не испытывал тупики на seat0 (и очевидно больше никакого мерцания на месте 1, хотя это не действительно улучшение ;-))
Я также попытался переключиться на драйверы с помощью приложения установки Hardware Drivers или ubuntu-drivers
на консоли. Они оба только перечисляют одну карту 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 распознать вторую карту добилось бы цели, но я понятия не имею, как достигнуть этого.
Какие-либо идеи?
Заранее спасибо, Patrick
Хорошо, я наконец заставил его работать.
Этот раздел здесь как немного "начинает" для других и такого же небольшого количества "памятки" для меня... Это не единственное и возможно даже лучший способ сделать это, это - просто способ, которым я сделал это.
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
Я не узнал, что сделать об экране, мерцающем на seat1 и тупики на seat0 при использовании nouveau драйвера. В случае, если Вы ищете решение для этой самой проблемы, это могло бы стоить взглянуть на https://wiki.archlinux.org/index.php/Xorg_multiseat, который говорит:
Чтобы постараться не рваться, это, кажется, помогает почти на всех конфигурациях - добавляет это к/etc/environment:
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
CLUTTER_VBLANK=True
Другая подсказка должна была добавить пользователя к группе video
потому что иначе у них не могло бы быть доступа к интерфейсу DRI.
Это обо всем, что я могу сказать, и я переключился на использование двоичных драйверов Nvidia.
Проблемой, которую я имел, был appearantly, что X-сервер seat0 так или иначе пытался взять под свой контроль оба GPU даже при том, что GPU-1 был, присвоен seat1.
Это так или иначе перепутало X экранов, и X-сервер для места 1 не мог найти применимые экраны.
Я провел часы игры с /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
, однажды как xorg-seat0.conf
и однажды как xorg-seat1.conf
Измените эти два файла конфигурации Xorg для соответствия seat0 и установке seat1 соответственно. Я только должен был изменить несколько строк - адрес PCI GPU и количество мониторов. Я действительно однако также изменял именование Идентификаторов ради ясности - я предполагаю, что это действительно не требовалось бы. Ниже моя конфигурация:
seat0
# 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
seat1
# 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 [01], .conf файлы не содержат подсказки к местам. Я назвал Идентификаторы с помощью строк seat0 и seat1, но это не имеет никакой уместности.
Но, в lightdm конфигурации это требуется, чтобы использовать имена, которые Вы присвоили местам при создании их. seat0 не может быть изменен, но второе место может иметь любое имя, которое Вы выбираете (как долго, поскольку это запускается с seat
и сопровождается буквами, цифрами, - и _ только). Удостоверьтесь, что Вы используете то имя для конфигурирования второго места - я использовал seat1
сохранять это простым.
Я вполне уверен, что существуют вещи, которые могли быть удалены из этих X файлов конфигурации, но я еще не попытался убрать их. При нахождении более минималистического файла к работе хорошо не стесняйтесь добавлять комментарий здесь, и я добавлю информацию (хорошо, если Вы не будете испытывать желание отправлять свой собственный весь ответ, который является).
Например, ни мышь, ни клавиатура, настроенная в обоих из этих X файлов конфигурации, действительно не существуют на моей машине - они - фиктивные устройства, добавленные nvidia-settings
. Физические устройства (беспроводная мышь USB и клавиатура) добавляются на лету, потому что они присоединены к seat0 и seat1 соответственно.