Wie kann ich sowohl den Intel- als auch den Nvidia-Grafikkartentreiber auf einem Dual-Monitor-Setup ausführen?

8

Ich versuche, Intel- und Nvidia-Grafikkarten mit zwei Monitoren zusammenzubringen. Ein Monitor sollte die Intel-Karte und der andere die Nvidia-Karte verwenden. Natürlich möchte ich nur eine Tastatur und eine Maus verwenden, um zwischen beiden Bildschirmen zu wechseln. Bumblebee hat bei mir nicht funktioniert.

Ich möchte das xserver-xorg-video-allPaket nicht verwenden , da ich die Nvidia-Karte für Spiele benötige und nicht nur eine Grafikkarte verwenden kann, da ich eine für die KVM-Virtualisierung und die andere für meinen Linux-Desktop benötige

Also habe ich versucht, die Treiber zu installieren und den Xserver manuell zu konfigurieren. Der Nvidia-Treiber funktioniert und ich erhalte eine Videoausgabe. Aber ich bekomme keine Videoausgabe mit der Intel-Karte.

Ich habe die Anweisungen in diesem Blog-Beitrag befolgt

Die Konfigurationsdateien:

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

Hier ist ein verwandter StackOveflow-Beitrag

Wulfspider
quelle

Antworten:

14

Seit 2013 ist das Offloading von Grafiken möglich (siehe http://us.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html ).

Im Folgenden werden die kostenlosen Treiber (Nouveau) verwendet, die mit den proprietären Treibern von nvidia nicht funktionieren.

Ich benutze das seit ein paar Monaten und es funktioniert gut genug für mich. Hier ist mein Setup:

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

Folgendes sollten Sie verwenden, wenn Sie eine NVIDIA-Karte verwenden und einen dritten Bildschirm über die eingebetteten Grafiken (Intel) ausgeben möchten:

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

Fügen Sie dies nun Ihrem Sitzungsmanager-Startskript hinzu:

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

Diese Pasten stammen aus meiner eigenen Konfiguration und sollten an Ihren eigenen Anwendungsfall angepasst werden. Die vollständige Dokumentation finden Sie hier: http://us.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html

In dieser Konfiguration übernimmt die NVIDIA-GPU die gesamte Rendering-Arbeit. Die Intel iGPU zeigt einfach an, was die Haupt-GPU an sie sendet. Bitte beachten Sie, dass die NVIDIA-GPU den Status der iGPU beim Senden von Frames zur Anzeige überhaupt nicht kennt. Das bedeutet, dass es zu erheblichen Rissen kommen kann (horizontal UND diagonal!). Für diejenigen, die es vielleicht wollen, können Sie die Option "TearFree" in Ihrer Xorg.conf nicht verwenden.

Mikado-
quelle
1
Gibt es eine Lösung für eine AMD-Grafikkarte?
Lothar
3

Ein bisschen einfacher als in MikaDopost.

Dreifachmonitore mit GT 1030 (DVI, HDMI) und Intel HD 4600 (VGA-Ausgang).

BIOS-Einstellungen:

Primary GPU: PCI Express
IGPU Multi-monitor: Enabled

Arbeitete für mich unter Ubuntu 14.04 mit NVIDIA-Treiber (nicht Nouveau, habe Nouveau eigentlich nicht ausprobiert), genau wie es im Originalartikel beschrieben ist ( http://us.download.nvidia.com/XFree86/Linux-x86/319.12/) README / randr14.html ) (musste zuerst ausschlafen ! :-))

Finde einfach die Nvidia BUS ID mit heraus

nvidia-xconfig --query-gpu-info

und musste endgültige Befehle in .xprofile setzen

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

Anschließend wird das Layout der Anzeigen mit den nativen Ubuntu-Anzeigeeinstellungen (GUI) konfiguriert.

Nazar Kuliyev
quelle
Nur eine Aktualisierung des Links zur Dokumentation: < us.download.nvidia.com/XFree86/Linux-x86/375.26/README/… >. Außerdem scheint die Synchronisation jetzt unterstützt zu werden, obwohl ich sie nicht getestet habe.
Verjüngung
0

Ich habe es erfolgreich funktionieren lassen, indem ich MikaDos Lösung in Ubuntu 18.04 gefolgt bin

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. Aktivieren Sie die iGPU-Option im BIOS und installieren Sie den Intel-Grafiktreiber

2. Fügen Sie die folgenden Zeilen in /etc/X11/xorg.conf hinzu: (Denken Sie daran, vor dem Bearbeiten eine Sicherungskopie zu erstellen.)

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. Starten Sie neu. Dann sehen Sie 2 Bildschirme, die beide gut angezeigt werden. (funktioniert aber möglicherweise nicht in der richtigen Auflösung) Geben Sie hier die Bildbeschreibung ein

5. Befolgen Sie dieses Tutorial , um den Anzeigemodus hinzuzufügen

In meinem Fall Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

cswu
quelle