21111111111Rating 2.00 (2 Votes)
Заранее хочу сказать, что аналогичная проблема встречается во многих Linux дистрах, это показало активное гугление и изучение тонн материалов в отношении траблшутинга проблемы. Итак суть проблемы следующая:
 

Есть две карты Nvidia, в одну (HDMI, DVI) подключено два монитора, в другую (VGA) подключён один монитор. Две карты сидят в одном системнике. В xorg настраивал и ручками и при помощи Nvidia-Config конфигурацию мониторов, скринов. Добился того, что все мониторы работают, но активны из них два (первая видеокарта) - т.е. перетаскиваются окна, все работает ок, третий монитор работает, на него можно перейти мышкой, но окна на него не затаскиваются, ПКМ не работает и т.п... т.е. он как бы работает, но без отклика, может кто знает куда копнуть, чтобы трети монитор завёлся тоже? З.ы. если включаю ксинераму, все падает наглухо вообще.

Итак эта проблема возникала после установки проприеритарного драйвера NVIDIA, третий монитор был черным, по нему можно было водить мышкой, но все остальное в области данного монитора не работало, после долгих изысканий / дискуссий (спасибо @determination) было выяснено, что проприетарные драйвера nvidia - это черный ящик и после нескольких дней изысканий, этот черный ящик к сожалению так и остался черным. Оставалось попробовать зюзать nouveau драйвер, но после его установки и соответствующего удаления драйверов nvidia возникали жуткие тормоза... Особенно сильно ощущались тормоза на второй карте, это проявлялось при перетаскивании окон на третий монитор, в результате чего возникало жуткое слайдшоу...

Тюнинг Nouveau

Сначала расскажу про настройки Nouveau, потом про удаление драйверов Nvidia. Итак - первый шаг в сторону решения проблемы, это прямой путь на Wiki Nouveau, далее после многократных тестов xorg.conf'ига выяснилось, что часть инфы на вики и на многих ресурсах немного устаревшая, во первых никак не хотела работать опция Driver "nouveau", секции Device, как оказалось причина крылась в настройках Screen'ов которые были взяты из конфига с nouveau wiki:

...
Section "Screen"
    Identifier  "Screen0"
    Device      "Device0"
EndSection
Section "Screen"
    Identifier  "Screen1"
    Device      "Device1"
EndSection
...

В Xorg логах светилась ошибка в отношении RandR (после его инициализации он почему то отключался), после траблшутинга randr, оказалось, что на сегодня секция Screen должна содержать + еще пару обязательных опций:

...
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
...

Далее, для каждого монитора, я настроил свой порт в разделах секций Device:

...
Section "Device"
    Identifier     "Device0"
    Driver         "nouveau"
    BusID          "PCI:1:0:0"
    Option         "ZaphodHeads" "HDMI-1"
    Screen	   0
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nouveau"
    BusID          "PCI:1:0:0"
    Option         "ZaphodHeads" "DP-1"
    Screen	   1
EndSection

Section "Device"
    Identifier     "Device3"
    Driver         "nouveau"
    BusID          "PCI:7:0:0"
    Option         "ZaphodHeads" "VGA-1-1"
    Screen	   2
EndSection
...

Что бы узнать BusID для каждого устройства нужно использовать lspci:

lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
07:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 440] (rev a1)
Далее, что бы узнать порты (DP-1, VGA-1-1, HDMI-1), достаточно удалить / переименовать xorg.conf перезапустить свой dm менеджер, в моем случае lightdm:
systemctl restart lightdm
И посмотреть вывод xrandr:
DVI-D-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
... 
DP-1 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 509mm x 286mm
...
DVI-I-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-2 disconnected (normal left inverted right x axis y axis)
VGA-1-1 connected 1280x1024+3840+0 (normal left inverted right x axis y axis) 376mm x 301mm
...
Далее я включил Xinerama (см. ниже в примере рабочего конфига), информацию о мониторах я взял из старого конфига, который был сгенерирован при помощи nvidia-settings, в итоге полный, рабочий конфиг выглядит стак:
Section "ServerLayout"
    Identifier     "Layout0"
    Screen   0  "Screen0"
    Screen   1  "Screen1"  RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "on"
EndSection
Section "Files"
    FontPath        "/usr/share/fonts/default/Type1"
    ModulePath      "/usr/lib64/xorg/modules"
EndSection
Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection
Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "keyboard"
EndSection
Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung C24F390"
    HorizSync       30.0 - 81.0
    VertRefresh     50.0 - 72.0
    Option         "DPMS"
EndSection
Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Philips PHL 233V5"
    HorizSync       0.0 - 0.0
    VertRefresh     0.0
    Option         "DPMS"
EndSection
Section "Monitor"
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "NUI L921G"
    HorizSync       0.0 - 0.0
    VertRefresh     0.0
    Option         "DPMS"
EndSection
Section "Device"
    Identifier     "Device0"
    Driver         "nouveau"
    BusID          "PCI:1:0:0"
    Option         "ZaphodHeads" "HDMI-1"
    Screen			0
EndSection
Section "Device"
    Identifier     "Device2"
    Driver         "nouveau"
    BusID          "PCI:1:0:0"
    Option         "ZaphodHeads" "DP-1"
    Screen			1
EndSection
Section "Device"
    Identifier     "Device3"
    Driver         "nouveau"
    BusID          "PCI:7:0:0"
    Option         "ZaphodHeads" "VGA-1-1"
    Screen			2
EndSection
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Section "Screen"
    Identifier     "Screen2"
    Device         "Device3"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Удаление драйверов Nvidia и включение Nouveau

Удаляем при помощи dnf:
dnf erase \*nvidia\*
Ставим nouveau:
dnf install xorg-x11-drv-nouveau
Переустаналиваем mesa драйвера:
dnf reinstall xorg-\* mesa\*
Убеждаемся, что nouveau не внесен в блек-лист в - /etc/default/grub или здесь - /etc/modprobe.d/blacklist.conf, обновляем grub:
grub2-mkconfig -o /etc/default/grub
Перемещаем текущий xorg.conf в качестве резервной копии, например так:
mv /etc/X11/xorg.conf ~/xorg.conf.last
Перезапускаем компьютер, он должен загрузиться с дефолтными настройками видео, после чего достаточно включить дисплей в апплете управления дисплеями своей DE:
 
mate displays
 
После чего можно начинать настраивать свой xorg, если все сломается, не беда, достаточно выйти в консольный режим Ctrl + Alt + F2 там изменить или удалить свой xorg.conf и снова перезпустить свой менеджер DE.
 

Тестирование производительности

Самый простой способ, это запустить шестеренки и проверить, что все крутится:
glxgears
gears
 
В дополнение я решил проверить установкой и запуском демо-игры quake3:
dnf install quake3-demo
После запуска выставил самые максимальные настройки качества графики и с удовольствием порубился пару уровней. На этом все, удачи!
 

Добавить комментарий


Защитный код
Обновить

Сейчас 299 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз