GNU/Linux >> Tutoriels Linux >  >> Ubuntu

X.org peut-il charger deux pilotes différents ? (configuration à trois têtes avec carte Intel et Nvidia) ?

Nous souhaitons configurer 3 écrans avec une carte graphique intel intégrée et une carte nvidia.

Les deux cartes sont reconnues dans 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)

Et fonctionne essentiellement :si je passe à la console, je vois une sortie sur la carte Intel,
X ne fonctionne que sur la carte Nvidia.

Mais quand je tape xrandr | grep conn Je n'obtiens qu'un seul port connecté :

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)

Je suis sur Ubuntu 12.10 (et XFCE) et j'ai installé le pilote nvidia propriétaire.

Je supposais que X avait peut-être un problème pour détecter automatiquement les deux cartes, alors j'ai pensé au suivant xorg.conf pourrait aider :

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

Mais cela ne fonctionne toujours pas.

  • Est-il généralement possible d'utiliser deux pilotes différents dans X ?
  • Est-il nécessaire de créer un xorg.conf manuellement alors ? (car Ubuntu 12.10 fonctionne normalement sans le xorg.conf )
  • Y a-t-il des erreurs dans mon xorg.conf ?

Réponse acceptée :

Oui, X peut utiliser plusieurs pilotes. La vôtre est une configuration très similaire à celle que j'ai. J'ai un NVIDIA 9800 GT avec deux moniteurs connectés et une carte Intel de 2ème génération avec un seul moniteur.

Je ne vois aucun problème avec votre xorg.conf . Je soupçonne que vous devrez créer un xorg.conf ne serait-ce que pour dire à X d'utiliser à la fois les pilotes nvidia et intel. Mon xorg.conf ressemble beaucoup au vôtre; J'ai trois sections de moniteur et d'écran parce que la carte nvidia a deux moniteurs, mais je suis presque sûr que X ignore ces sections.

Tout d'abord, vous voudrez vous assurer que xinerama est désactivé dans xorg.conf (peut-être pas nécessaire).

xorg.conf :

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

Lorsque vous faites un xrandr --listproviders vous devriez voir les deux cartes.

[email protected]> 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

Si vous ne voyez pas les deux cartes, il vous manque probablement un pilote. (Mais OP dit que la console utilise l'un et X utilise l'autre, donc ils fonctionnent probablement tous les deux)

En relation:Résolution d'écran Ubuntu 14.04 trop faible (carte graphique SiS 671) ?

Vous devriez pouvoir utiliser xrandr --setprovideroutputsource pour ajouter les ports Intel à la liste affichée par votre xrandr | grep conn Dans mon cas, j'utilise les noms donnés par --listproviders :

xrandr --setprovideroutputsource Intel NVIDIA-0

Si cela n'ajoute pas les ports Intel, il se peut qu'il soit déjà connecté d'une manière que vous ne pouvez pas le voir. Déconnectez-le avec :

xrandr --setprovideroutputsource Intel 0x0

Essayez ensuite de le reconnecter :

xrandr --setprovideroutputsource Intel NVIDIA-0

Tous les ports de sortie doivent être affichés maintenant. Et vous devriez pouvoir ajouter un affichage avec les paramètres d'affichage gnome ou avec xrandr .

Ainsi, lorsque j'ai finalement réussi à faire fonctionner mon écran Intel, les écrans nvidia ont décidé qu'ils devaient effectuer un panoramique lorsque j'ai essayé de déplacer la souris vers le troisième écran. Il afficherait maintenant le contenu du troisième moniteur à la fois sur le troisième et le deuxième moniteur. Et le contenu original du second a glissé sur le premier moniteur avec le contenu du premier hors écran. Il reviendrait à la normale si j'essayais de déplacer à nouveau le curseur sur le premier moniteur.

J'ai finalement corrigé cela avec un autre xrandr appeler :

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

Cet appel nécessite une connaissance de la géométrie physique de l'écran et de la disposition logique. J'ai un écran 1680×1050, un 1920×1200 et un 1920×1080. Ils sont dans cet ordre de gauche à droite. Le plus à droite est connecté à la carte intel.

Cet appel définit la région panoramique sur le moniteur du milieu. --output DVI-I-2 se trouve être le port connecté à mon moniteur central.

Les quatre premiers nombres définissent la région panoramique sur le total des écrans du milieu et de droite. 3840×1200 comme largeur et hauteur et +1680+0 pour décaler la région pour commencer en haut à gauche sur le moniteur du milieu. (Apparemment [0,0] est en haut à gauche du moniteur de gauche)

Les 4 nombres suivants sont la région de suivi du curseur. Je l'ai réglé pour ne suivre que le curseur sur l'écran du milieu. De cette façon, lorsque le curseur quitte cet écran, il n'essaie pas de déplacer l'image pour suivre le curseur.

Les 4 derniers chiffres définissent une bordure autour de la région panoramique. J'utilise simplement les valeurs par défaut ici.

Versions des logiciels associés que j'utilisais :

xorg-server-1.17.4
gnome-3.18.0
xrandr-1.4.3

Ubuntu
  1. Comment configurer la haute disponibilité de MariaDB avec Heartbeat et DRBD sur Ubuntu 16.04 LTS

  2. Ordinateur portable Optimus - Couper et bégayer des vidéos avec des graphiques intégrés Intel et déchirer l'écran avec des graphiques Nvidia?

  3. Comment savoir quels pilotes et quelle carte vidéo j'utilise ?

  4. Configurer Apache 2.4 et Php FPM avec mod proxy fcgi sur Ubuntu 13.10

  5. Configurer un serveur de messagerie avec Exim et Dovecot sur un CentOS 7

Configurer l'environnement de développement Ruby on Rails avec Docker et Docker Compose sur Ubuntu

Comment configurer Magento 2 avec Varnish et Apache sur Ubuntu 16.04

Comment configurer les services hybrides Ircd et Anope avec SSL sur Ubuntu

Installez les pilotes NVIDIA sur Ubuntu (ligne de commande et GUI)

Le système ne démarre pas avec le pilote Nvidia activé ?

Configurer l'équilibrage de charge avec HAProxy, Nginx et Keepalived sous Linux