Прошу подсказать уважаемых форумчан, в каком направлении мне копать, дабы осилить решение нижеизложенной задачи.
Имеется:
- Ubuntu Mate 18.04;
- Intel i915 в процессоре;
- Nvidia 1060 3G (2 штуки).
lspci -k | grep -EA2 "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation 4 Series Chipset Integrated Graphics Controller (rev 03)
Subsystem: ASUSTeK Computer Inc. 4 Series Chipset Integrated Graphics Controller
Kernel driver in use: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1)
Subsystem: Device 7377:0000
Kernel driver in use: nvidia
--
03:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1)
Subsystem: Device 7377:0000
Kernel driver in use: nvidia
Требуется:
Одновременная работа всех видеоадаптеров с запуском Xorg на каждом (допустим по монитору на каждую карту). Размещение рабочих столов не имеет значения и нет задачи настраивать MultiSeat. Управление мышью и клавиатурой важно только на одном экране, остальные могут просто отображать статическую картинку. Запуск Xorg на каждом видеоадаптере нужен для возможности управлять картами через nvidia-settings.
Что было проделано и результаты:
Были установлены драйвера на Nvidia (390 версии из ppa:graphics-drivers), nvidia-settings и nvidia-prime. Далее был сгенерирован xorg.conf командой:
sudo nvidia-xconfig --cool-bits=12 --allow-empty-initial-configuration --enable-all-gpus
Получился такой вот xorg.conf:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 390.48 (buildmeister@swio-display-x86-rhel47-07) Thu Mar 22 01:07:32 PDT 2018
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 68.0
VertRefresh 23.0 - 174.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 68.0
VertRefresh 23.0 - 174.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1060 3GB"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1060 3GB"
BusID "PCI:3:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "AllowEmptyInitialConfiguration" "True"
Option "Coolbits" "12"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "AllowEmptyInitialConfiguration" "True"
Option "Coolbits" "12"
SubSection "Display"
Depth 24
EndSubSection
EndSection
который не содержал секций, описывающих графику Intel. Запуск иксов на таком конфиге происходил следующим образом:
Монитор, подключенный к Intel (встроенный графический адаптер) показыает загрузку BIOS, затем grub, далее plymouth на мгновение мигает tty1 и после окрашивается в черный (монитор не засыпает).
Монитор, подключенный к Nvidia0, во время загрузки окрашен в черный, после секундной отрисовки tty1 на первом мониторе, показывает приглашение lightdm и после логина отображает рабочий стол.
Третий монитор я не подключал пока к третьей карте (лень выкручивать из стены), но nvidia-smi показывает запущенный на ней Xorg и в nvidia-settings этой карте присваивается Screen1 (как и описано в xorg.conf)
nvidia-smi:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48 Driver Version: 390.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 106... Off | 00000000:01:00.0 Off | N/A |
| 50% 38C P0 30W / 120W | 8MiB / 3019MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 106... Off | 00000000:03:00.0 Off | N/A |
| 35% 40C P0 29W / 120W | 10MiB / 3019MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1000 G /usr/lib/xorg/Xorg 6MiB |
| 1 1000 G /usr/lib/xorg/Xorg 8MiB |
+-----------------------------------------------------------------------------+
Далее я руками добавил секции в xorg.conf с картой Intel и описал для нее Screen:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 390.48 (buildmeister@swio-display-x86-rhel47-07) Thu Mar 22 01:07:32 PDT 2018
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 68.0
VertRefresh 23.0 - 174.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 68.0
VertRefresh 23.0 - 174.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 68.0
VertRefresh 23.0 - 174.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1060 3GB"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1060 3GB"
BusID "PCI:3:0:0"
EndSection
Section "Device"
Identifier "Device2"
Driver "i915"
VendorName "Intel"
BoardName "Intel"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "AllowEmptyInitialConfiguration" "True"
Option "Coolbits" "12"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "AllowEmptyInitialConfiguration" "True"
Option "Coolbits" "12"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen2"
Device "Device2"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
В таком варианте работает монитор, подключенный к встроенной карте Intel, отрисовывает рабочий стол и т.д.
Монитор на Nvidia0 уходит в энергосбережение, Nvidia1 отрисовывает рабочий стол. Вывод nvidia-smi при такой настройке:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48 Driver Version: 390.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 106... Off | 00000000:01:00.0 Off | N/A |
| 37% 39C P0 35W / 120W | 55MiB / 3019MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 106... Off | 00000000:03:00.0 Off | N/A |
| 35% 39C P0 26W / 120W | 2MiB / 3019MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 5406 G /usr/lib/xorg/Xorg 53MiB |
+-----------------------------------------------------------------------------+
Получается на одной из карт не запущен Xorg и в nvidia-settings в поле "Screen" стоит "None".
Я неоднократно пытался менять настройки, менять количество мониторов, подключения карт, режимы инициализации графических адаптеров в BIOS, переписывать секции Screen, пытаться настроить Xinerama и TwinView, даже пытался настроить MultiSeat, но в итоге поломал lightdm.
Я понимаю, что дело в том самом Screen, которого не хватает на одну карту, но сам разобраться уже не могу и прошу помощи.
Подскажите, пожалуйста, в какую сторону смотреть и где искать пропавший Screen?