Может ли X.org загрузить два разных драйвера? (Тройная установка с Intel и NVidia Card)

Мы хотим установить 3 экрана с встроенным графическим адаптером Intel и картой NVIDIA.

Обе карты распознаются в lspci

01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
00:02.0 Display controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

И в основном работают: если я переключаюсь на консоль, я вижу вывод на карте Intel, X работает только на карте Nvidia.

Но когда я набираю xrandr | grep conn, я получаю только один подключенный порт:

DVI-I-0 disconnected (normal left inverted right x axis y axis)
VGA-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
HDMI-0 disconnected (normal left inverted right x axis y axis)

Я нахожусь на Ubuntu 12.10 (и XFCE) и установил собственный драйвер nvidia.

Я предполагал, что у X, возможно, есть проблема с автоматическим определением обеих карт, поэтому я подумал, что может помочь следующее xorg.conf:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    Screen      1  "Screen1"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 210"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection


Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "intel"
    VendorName     "Intel"
    BoardName      "Internal Intel Graphics"
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Но это все еще не работает.

  • Можно ли вообще использовать два разных драйвера в X?
  • Нужно ли создавать xorg.conf вручную? (потому что Ubuntu 12.10 нормально работает без xorg.conf)
  • Есть ли какие-либо ошибки в моем xorg.conf?
5
задан 12 April 2013 в 15:36

1 ответ

Да, X может использовать несколько драйверов. У тебя очень похожая настройка, как у меня. У меня есть NVIDIA 9800 GT с двумя подключенными мониторами и карта Intel второго поколения с одним монитором.

Я не вижу проблем с вашим xorg.conf. Я подозреваю, что вам нужно будет создать xorg.conf хотя бы для того, чтобы X сказал использовать драйверы nvidia и intel. Мой xorg.conf очень похож на ваш; У меня есть три секции монитора и экрана, потому что у карты nvidia два монитора, но я уверен, что X игнорирует эти секции.

Во-первых, вы должны убедиться, что xinerama отключена в xorg.conf (возможно, нет необходимости).

xorg.conf:

Section "ServerFlags"
    Option  "xinerama"  "off"
EndSection

Когда вы делаете xrandr --listproviders, вы должны увидеть обе карты.

cody@IRIS> xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x290 cap: 0x1, Source Output crtcs: 2 outputs: 5 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x48 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 6 associated providers: 1 name:Intel

Если вы не видите обе карты, возможно, вам не хватает драйвера. (Но OP говорит, что консоль использует один, а X использует другой, поэтому они, вероятно, оба работают)

Вы должны иметь возможность использовать xrandr --setprovideroutputsource, чтобы добавить порты Intel в список, показанный вашим xrandr | grep conn В моем случае я использую имена, заданные --listproviders:

xrandr --setprovideroutputsource Intel NVIDIA-0

Если это не добавляет порты Intel, возможно, он уже подключен так, что вы его не видите. Отключите его с помощью:

xrandr --setprovideroutputsource Intel 0x0

Затем попробуйте подключить его снова:

xrandr --setprovideroutputsource Intel NVIDIA-0

Теперь должны быть показаны все выходные порты. И вы сможете добавить отображение с настройками дисплея gnome или с помощью xrandr.

Поэтому, когда я наконец-то включил свой дисплей Intel, дисплеи nvidia решили, что им нужно панорамировать, когда я попытался переместить мышь на третий дисплей. Теперь будет отображаться содержимое третьего монитора как на третьем, так и на втором мониторе. И оригинальный контент второго сместился на первый монитор с контентом первого за кадром. Если бы я снова попытался переместить курсор на первый монитор, он бы вернулся в нормальное состояние.

Я наконец исправил это с помощью другого вызова xrandr:

xrandr --output DVI-I-2 --panning 3840x1200+1680+0/1920x1200+1680+0/0/0/0/0

Этот вызов требует знания геометрии физического экрана и логического расположения. У меня есть монитор 1680x1050, 1920x1200 и 1920x1080. Они в таком порядке слева направо. Правое большинство связано с картой Intel.

Этот вызов устанавливает область панорамирования на среднем мониторе. --output DVI-I-2 это порт, подключенный к моему среднему монитору.

Первые четыре числа устанавливают область панорамирования на сумму среднего и правого экранов. 3840x1200 как ширина и высота и + 1680 + 0, чтобы сместить область, чтобы начать сверху слева на среднем мониторе. (Очевидно, [0,0] находится в верхнем левом углу левого монитора)

Следующие 4 числа являются областью отслеживания курсора. Я установил это, чтобы отслеживать курсор только на среднем экране. Таким образом, когда курсор покидает этот экран, он не пытается сместить изображение, чтобы следовать за курсором.

Последние 4 числа определяют границу вокруг области панорамирования. Я просто использую значения по умолчанию здесь.

Версии программного обеспечения, которое я использовал:

xorg-server-1.17.4
gnome-3.18.0
xrandr-1.4.3
0
ответ дан 12 April 2013 в 15:36

Другие вопросы по тегам:

Похожие вопросы: