Bénissez Nouveau, ou à propos de mon tourment avec Nvidia Optimus. Partie 1. La beauté de la documentation Arch

Avant de commencer


Avant de commencer l'histoire principale, je voudrais clarifier quelques points. L'article s'adresse principalement aux propriétaires d'ordinateurs portables dotés de la technologie Nvidia Optimus qui souhaitent installer GNU / Linux (ci-après Linux). Le matériel vise à faire en sorte que l'Asie centrale susmentionnée se familiarise avec les solutions possibles au problème et à faciliter et accélérer sa résolution. De plus, l'article n'est pas moins motivant et vise à comprendre une vérité simple par les gens: sous Linux, comme dans la vie, il y a toujours une solution de contournement, et si vous abandonnez, ce ne sera pas (dans la plupart des cas) meilleur.
Qui quaerit, reperit
- proverbe latin

Préface


Pour le moment, j'étais un Linuxoid ordinaire. J'ai testé différentes distributions, j'ai lentement appris de nouvelles choses. Juste parce que j'étais intéressé. En règle générale, la «connaissance» était limitée à Ubuntu et ses fourches, ainsi qu'à Fedora et à quelques distributions «conviviales». Mais, comme le dit un autre proverbe latin, omnia fluunt, omnia mutantur, c'est-à-dire que tout coule, tout change, et il est clair que cela ne pourrait pas durer éternellement.

Tout a bien commencé


Il convient de noter que je n'avais pas beaucoup d'espace pour les expériences: un PC relativement faible qui tirait à peine GNOME 3 et un Internet lent, ce qui compliquait considérablement la situation globale. Mais alors plus pour le garçon de 12 ans et ce n'était pas nécessaire. Au final, j'en ai marre d'expérimenter, j'ai installé Windows 10 et oublié Linux pendant quelques années.

Le temps a passé et après environ 2 ans, j'ai réalisé qu'il était temps de mettre à jour mon morceau de fer PC moussu et j'ai commencé à économiser de l'argent. Quelque chose venait de la vente de leurs affaires, ils donnaient quelque chose, plus de la moitié du montant a été jeté par les parents, j'ai même dû me sacrifier pour vendre ma Xbox (!) pour amuser votre FAQ pour augmenter vos compétences Linux. Cette fois, j'ai décidé d'essayer d'installer Arch. J'ai entendu dire qu'il avait une très bonne documentation. Et il a commencé.

La beauté de la documentation Arch


L'installation a été rapide et relativement indolore. Encore une fois, grâce à la documentation. Après avoir installé le système et DE représenté par KDE Plasma, j'ai essayé de connecter l'ordinateur portable à mon moniteur externe, car le moniteur a une diagonale de 24 'et l'écran du portable n'est que de 15,6'. Il ne s'est rien passé, il n'y avait aucun signal sur le moniteur. Comme toujours, j'ai commencé à googler. Et après 30 minutes de recherche, j'ai trouvé que le problème était avec la technologie Nvidia Optimus.

Un peu sur Nvidia Optimus


Nvidia est une bonne entreprise. Au cours de leurs 25 ans d'histoire, ils ont mis en œuvre de nombreuses solutions relativement bonnes. Nvidia Optimus en est un. Le sujet est une technologie hybride pour assurer le bon fonctionnement de deux cartes graphiques (généralement des graphiques Nvidia puissants et Intel intégré) sur les ordinateurs portables. S'il fonctionne correctement sous Windows , il permet d'économiser l'énergie et les ressources de l'ordinateur portable. Tout cela est excellent, mais ce qui m'a poussé à écrire cet opus, c'est que cette belle technologie sous Linux, selon les développeurs, ne fonctionne que partiellement , et à mon avis cela prend beaucoup, beaucoup de nerfs, de temps et d'efforts pour la configurer.

La beauté de la documentation Arch (suite)


Après avoir découvert la véritable racine du problème, j'étais d'abord content d'avoir déterminé «où le chien est enterré» (seule la carte Nvidia avait une sortie HDMI), et ma première étape a été de lire la documentation officielle d'Arch. Son essence était d'utiliser Xorg.conf et .xinitrc pour forcer X à n'utiliser que la carte Nvidia. Après avoir terminé ces étapes et redémarré ... un écran noir est apparu. La documentation indique que dans ce cas, il est nécessaire de vérifier s'il y a des esperluettes dans .xinitrc et, s'il n'y en a pas, d'utiliser la "Configuration alternative", qui a obligé X à n'utiliser qu'une carte Intel. Cela ne me convenait pas, car la carte Intel était déjà utilisée par défaut et cette option ne me convenait pas. Il y avait également des options pour divers DM. Ils ne convenaient pas non plus, car aucun d'entre eux ne pouvait démarrer le serveur X pour diverses raisons.
Décrire chacun d'eux séparément serait un exercice très long et dénué de sens.

Qui quaerit, reperit


Cette expression traduite du latin signifie «qui cherche, trouve». Ce n'est pas en vain que je l'ai placé au début, car pour moi cette expression deviendra la morale idéale pour cet article.

J'étais désespéré. Pendant deux jours, j'ai essayé en vain de trouver une solution, j'ai écumé les forums étrangers (uniquement sur eux, car dans le LOR orthodoxe, la réponse était la suivante: vous ne pouvez en aucun cas démarrer X via Nvidia. C'est impossible, réconciliez). Mais encore, un matin nuageux du troisième jour de recherches, je suis tombé sur un fil (lien au sous-sol) sur le forum de développement Nvidia, dans lequel il a été décrit comment Nvidia Optimus est implémenté dans Arch sur les ordinateurs portables Dell. J'ai immédiatement réalisé - je suis sauvé! En suivant les étapes, j'ai redémarré et ... un écran noir. Bien sûr, j'étais bouleversé, mais je me suis souvenu: je ne me suis pas inscrit dans la ligne .xinitrc pour exécuter DE. Après avoir écrit exec startkde, j'ai redémarré à nouveau et cela a fonctionné. X a démarré via Nvidia. Il m'a fallu quatre longs jours pour installer et configurer Arch, et pourtant je l'ai fait!

Débriefing


Analysons maintenant les instructions du fil ci-dessus. Commençons:

Tout d'abord, vous devez activer le support KMS (Kernel Mode Setting, la méthode de définition de la résolution directement dans le noyau) en ajoutant aux paramètres du noyau (fichier / etc / default / grub) dans la ligne GRUB_CMDLINE_LINUX_DEFAULT = paramètre

nvidia-drm.modeset=1 

Ensuite, nous créons un script pour le DM (gestionnaire de connexion). Considérez l'option avec LightDM. Nous créons le script /etc/lightdm/display_setup.sh avec le contenu suivant:

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

Avec ce script, nous spécifions le fournisseur et définissons la résolution d'écran maximale possible.

Rendons le script créé exécutable:

 chmod +x /etc/lightdm/display_setup.sh 

Laissez LightDM exécuter le script ci-dessus au démarrage. Tout d'abord, modifiez /etc/lightdm/lightdm.conf:

 nano /etc/lightdm/lightdm.conf 

Entrez le paramètre

 display-setup-script=/etc/lightdm/display_setup.sh 

Vous pouvez voir les instructions pour SDDM dans le fil que j'ai déjà mentionné, des liens dans le sous-sol.

Maintenant, nous devons mettre à jour le microcode du processeur (plus d'informations sur le microcode à partir des liens dans le sous-sol):

 sudo pacman -S intel-ucode 

Après avoir mis à jour le microcode, installez un tas de packages de Nvidia:

 sudo pacman -S lib32-mesa-demos mesa-demos libva-vdpau-driver nvidia nvidia-libgl lib32-nvidia-utils nvidia-settings lib32-opencl-nvidia 

Remarque: certains packages peuvent ne pas être disponibles. Dans ce cas, installez tout séparément. Ignorez les packages qui ne seront pas disponibles.
Activez le démon nvidia.persistenced, qui est responsable de la persistance (en savoir plus à ce sujet dans le lien de sous-sol) du pilote Nvidia:

 systemctl enable nvidia-persistenced.service 

Configurer automatiquement GRUB:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

Créez un disque RAM amorçable:

 mkinitcpio -p linux 

Vérifiez .xinitrc:

 nano ~/.xinitrc 

S'il n'est pas entré, entrez

 exec gnome-session 

pour GNOME et

 exec startkde 

pour KDE Plasma.

Redémarrer:

 reboot 

Après avoir redémarré l'ordinateur portable, connectez-vous à l'aide de votre compte et profitez du monde d'Arch.

À propos de Bumblebee et PRIME


Vous avez peut-être remarqué que je n'ai rien dit sur les «béquilles» qui visent à assurer le bon fonctionnement de Nvidia Optimus sur Linux: Bumblebee et PRIME.
De plus, je n'ai obtenu qu'une carte Nvidia avec un pilote propriétaire, Nouveau n'a pas fonctionné (c'est pourquoi l'article s'appelle «Bless Nouveau».
Quant à mon expérience personnelle avec eux, il est petit et déplorable: les deux béquilles à bout portant n'ont pas vu ma carte graphique Nvidia. Si vous êtes intéressé par eux, au sous-sol, vous trouverez des liens vers des documents sur eux.

Postface


Si vous lisez l'intégralité de l'article, vous êtes un héros (enfin, ou un modérateur) .

Lors de la rédaction d'un article, j'ai essayé de le diluer pour vous avec des blagues relativement drôles afin de justifier en quelque sorte l'absence d'images. J'espère que vous avez atteint le zen après avoir lu.

Liste des sources


À propos du microcode: en.wikipedia.org/wiki/ Microcode
À propos de Bumblebee: wiki.archlinux.org/index.php/Bumblebee_ (russe)
À propos de PRIME: wiki.archlinux.org/index.php/PRIME
Fil: devtalk.nvidia.com/default/topic/1027679/linux/optimus-support-for-arch-linux-for-dell-i7559-dual-graphics-intel-nvidia-gtx-960m-laptop-/2
À propos de la persistance: en.wikipedia.org/wiki/Persistency

Source: https://habr.com/ru/post/fr414061/


All Articles