Как запустить драйвер видеокарты Intel и Nvidia для двух мониторов?

8

Я пытаюсь заставить графическую карту Intel и Nvidia работать вместе с двумя мониторами. Один монитор должен использовать карту Intel, а другой - карту Nvidia. Конечно, я хочу использовать только одну клавиатуру и одну мышь для переключения между обоими экранами. Шмель на меня не работал.

Я не хочу использовать xserver-xorg-video-allпакет, потому что мне нужна карта Nvidia для игр, и я не могу использовать только одну графическую карту, потому что мне нужна одна для виртуализации KVM, а другая для моего рабочего стола Linux

Поэтому я попытался установить драйверы и настроить Xserver вручную. Драйвер Nvidia работает, и я получаю видео выход. Но я не получаю видео с карты Intel.

Я следовал инструкциям в этом сообщении в блоге

Конфигурационные файлы:

/etc/X11/xorg.conf.nvidia
/etc/X11/xorg.conf.intel
/etc/lightdm/lightdm.conf

Вот связанный пост StackOveflow

wulfspider
источник

Ответы:

14

Это возможно с 2013 года с использованием разгрузки графики (см. Http://us.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html )

Следующее использует бесплатные драйверы (nouveau) и не будет работать, используя проприетарные nvidia.

Я использую это в течение нескольких месяцев, и это работает достаточно хорошо для меня. Вот мои настройки:

 __nvidia__ __intel___ __nvidia__
|          |          |          |
|  DVI-I-1 |   VGA-1  |  DVI-D-1 |
|__________|__________|__________|

Вот что вам следует использовать, если вы используете видеокарту nvidia и хотите вывести третий экран через встроенную графику (intel):

Xorg.conf

# Discrete Card as Primary GPU

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nouveau"
    Inactive "intel"
EndSection

Section "Device"
    Identifier  "nouveau"
    Driver      "nouveau"
    BusID       "PCI:1:0:0" # see man lspci
EndSection

Section "Screen"
    Identifier "nouveau"
    Device "nouveau"
EndSection

Section "Device"
    Identifier  "intel"
    Driver      "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Теперь добавьте это в скрипт запуска менеджера сеансов:

xrandr --setprovideroutputsource modesetting nouveau
xrandr --output VGA-1 --mode 1920x1080
sleep 1s
xrandr --output VGA-1 --mode 1920x1080 --pos 1920x0 --rotate normal --output DVI-D-1 --mode 1920x1080 --pos 3840x0 --output DVI-I-1 --mode 1920x1080 --pos 0x0

Эти пасты взяты из моего собственного конфига и должны быть настроены в соответствии с вашим собственным вариантом использования. Полная документация доступна здесь: http://us.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html

В этой конфигурации графический процессор nvidia выполняет всю работу по визуализации. Intel iGPU просто отображает все, что ему посылает основной графический процессор. Обратите внимание, что графический процессор nvidia полностью не знает о состоянии iGPU при отправке кадров для отображения. Это означает, что может быть достаточное количество разрывов (по горизонтали И по диагонали!). Для тех, кто хочет это сказать, вы не можете использовать опцию «TearFree» в вашем Xorg.conf.

MikaDo-
источник
1
Есть ли решение для видеокарты AMD?
Лотар
3

Немного проще, чем в МикаДо-посте.

Тройной монитор с GT 1030 (DVI, HDMI) и Intel HD 4600 (VGA выход).

Настройки BIOS:

Primary GPU: PCI Express
IGPU Multi-monitor: Enabled

У меня работал на Ubuntu 14.04 с драйвером NVIDIA (не Nouveau, на самом деле не пробовал Nouveau), точно так же, как это описано в оригинальной статье ( http://us.download.nvidia.com/XFree86/Linux-x86/319.12/ README / randr14.html ) (сначала нужно было выспаться! :-))

просто выяснить Nvidia BUS ID с

nvidia-xconfig --query-gpu-info

и должен был поставить заключительные команды в .xprofile

#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

затем отображаемый макет настраивается с собственными настройками дисплея Ubuntu (GUI)

Назар Кулиев
источник
Просто обновление ссылки на документацию: < us.download.nvidia.com/XFree86/Linux-x86/375.26/README/… >. Кроме того, похоже, что синхронизация теперь поддерживается, хотя я не проверял ее.
конус
0

Я успешно позволил ему работать, следуя решению MikaDo в Ubuntu 18.04

OS : ubuntu 18.04  
GPU : nvidia 1080ti @ nvidia 410.104 driver / CUDA 10.0  
MB: MSI Z370 tomahawk  
CPU: intel core i7 8700  
Screen1 : LG 29" 21:9 @ 1080ti/DP  
Screen2 : PHILIPS 27" 4K @ Intel Graphic/HDMI on motherboard 

1. Включите опцию iGPU в BIOS и установите графический драйвер Intel.

2. Добавьте следующие строки в /etc/X11/xorg.conf: (не забудьте сделать резервную копию перед редактированием)

Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

3.

sudo xrandr --setprovideroutputsource modesetting NVIDIA-0
sudo xrandr --auto
  1. Перезагрузка. Тогда вы увидите 2 экрана, оба хорошо отображаются. (но может не работать в правильном разрешении) введите описание изображения здесь

5. Следуйте этому руководству, чтобы добавить режим отображения

В моем случае введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

cswu
источник