web-dev-qa-db-fra.com

Comment résoudre le déchirement d'écran sur Ubuntu 18.04 avec NVIDIA?

La réponse sur Pilotes Nvidia - Impossible de vérifier "Forcer le pipeline de composition complète" fait quelque chose qui empêche mon ordinateur portable de détecter le moniteur externe. L'annulation de la solution rétablit la capacité de détecter le deuxième moniteur. Il me reste encore à déchirer sur tout type de lecture vidéo. Youtube, lecteur vidéo, etc.

J'utilise Ubuntu 18.04 avec i7-8750H et RTX 2070 (nvidia-driver-430).

Modifier:

Sortie de inxi:

Graphics:  Card-1: Intel Device 3e9b
           Card-2: NVIDIA Device 1f10
           Display Server: x11 (X.Org 1.20.4 )
           drivers: modesetting,nvidia (unloaded: fbdev,vesa,nouveau)
           Resolution: [email protected], [email protected]
           OpenGL: renderer: GeForce RTX 2070/PCIe/SSE2
           version: 4.6.0 NVIDIA 430.26

Capture d'écran des paramètres nvidia:

nvidia settings

3
gord0

Mise à jour 08/09/2019:

Il semble que gord (OP) a raison dans son commentaire . Vous n'avez pas besoin de passer par toutes les étapes que j'avais décrites précédemment (je ne les supprime pas, juste au cas où quelqu'un les trouverait utiles) pour se débarrasser des déchirures.

Ce que vous devez faire, c'est:

  1. Ouvrez Paramètres du serveur NVIDIA X.

  2. Accédez à Configuration d'affichage du serveur X.

  3. Sélectionnez l'écran que vous souhaitez.

  4. Cliquez sur le bouton Avancé.

  5. Activer Forcer le pipeline de composition ou Forcer le pipeline de composition complète (essayez les deux et activez celui qui vous donne les meilleurs résultats).

Vous pouvez également activer Forcer le pipeline de composition ou Forcer le pipeline de composition complète en exécutant les commandes suivantes dans votre terminal:

  • Pour Force Composition Pipeline:

    nvidia-settings --assign CurrentMetaMode="$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')"
    
  • Pour Forcer le pipeline de composition complète:

    nvidia-settings --assign CurrentMetaMode="$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceFullCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')"
    

Ces commandes utilisent xrandr et sed avec quelques expressions régulières pour obtenir la configuration actuelle du moniteur au format approprié et l'utiliser comme entrée pour le nvidia=settings --assign, qui active le paramètre souhaité.

Vous ne devriez plus avoir de déchirure d'écran.

Cependant, dans mon cas, les deux options ci-dessus seraient désactivées après le redémarrage.

Pour activer Force Composition Pipeline ou Force Full Composition Pipeline après le redémarrage, procédez comme suit:

  • Exécutez la commande appropriée, selon votre cas, à partir des commandes ci-dessus et assurez-vous qu'elle fonctionne correctement, c'est-à-dire que vous n'avez pas de déchirement d'écran sur vos moniteurs.

  • Ajoutez l'une des commandes suivantes (selon ce qui vous convient le mieux) à vos applications de démarrage :

    • Pour Force Composition Pipeline:

      bash -c "sleep 10 && nvidia-settings --assign CurrentMetaMode=\"$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')\""
      
    • Pour Forcer le pipeline de composition complète:

      bash -c "sleep 10 && nvidia-settings --assign CurrentMetaMode=\"$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceFullCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')\""
      

    Le sleep 10 commande ajoute juste un délai de 10 secondes pour s'assurer que le bureau est entièrement chargé avant d'exécuter nvidia=settings --assign commande. Vous devrez peut-être ajouter un délai plus important si votre bureau prend plus de temps pour se charger complètement.


Ancienne réponse. Essayez-les si la méthode ci-dessus ne fonctionne pas pour vous.

Ce qui est suggéré dans la réponse que vous avez publiée est correct pour Ubuntu 16.04.

Pour Ubuntu 18.04 et versions ultérieures, vous devez modifier options nvidia_387_drm modeset=1 à options nvidia-drm modeset=1 (la version du pilote Nvidia n'est plus nécessaire).

Donc, ce que vous devez faire pour Ubuntu 18.04 et versions ultérieures est:

  • Créez un fichier dans votre /etc/modprobe.d répertoire appelé zz-nvidia-modeset.conf.

  • Ajoutez-y les lignes suivantes:

    #enable prime-sync
    options nvidia-drm modeset=1
    
  • Depuis la course du terminal:

    Sudo update-initramfs -u
    
  • Redémarrez.

Pour activer l'adaptateur Nvidia, après le redémarrage, vous devez exécuter

Sudo prime-select nvidia

puis déconnectez-vous et reconnectez-vous.

Modifier: Si vous utilisez Gnome, vous devrez utiliser un autre gestionnaire d'affichage, tel que lightdm, puisque gdm ne permet pas aux moniteurs externes de fonctionner avec nomodeset=1.

Pour installer lightdm exécutez:

Sudo apt install lightdm

Après avoir installé lightdm exécutez

Sudo dpkg-reconfigure lightdm

et sélectionnez-le comme gestionnaire d'affichage dans la fenêtre du terminal qui apparaît.

4
user3140225