[PC Portables] – Manjaro Linux- Démarrer un PC portable Optimus uniquement sur la carte graphique Nvidia.

Cela fait quelques années que je me trimballe des PC portables. Autrefois par nécéssité, et maintenant parce que je ne vais pas balancer un Asus ROG à la poubelle.

Il y a presque une dizaine d’années, nVidia a décidé de donner un rejeton à son Hybrid SLI, une technologique qui intégrait un GPU faiblement puissant mais économe électriquement, plus un autre GPU costaud mais gourmand. Le passage de l’un à l’autre à l’époque se faisait manuellement.

Le principe du rejeton, Optimus, consiste à ce que ce changement se fasse de façon automatique, sans l’intervention de l’utilisateur. Dans la pratique, et dans un monde idéal (aussi sur windows), lorsque vous naviguez sur le net, l’affichage est calculé par le GPU économe. Il n’y a pas besoin d’une puissance graphique démesurée pour regarder des vidéos de bouledogues sur youtube ou le profil de votre ami un peu frappé du bulbe. De plus, la batterie vous dira merci.

En revanche, quand vient l’heure de s’amuser un peu, ces GPU ne sont pas suffisants pour supporter les calculs et les graphismes de votre jeu. C’est pour ça que sont aussi intégré des GPU plus gourmands en électricité, mais plus puissants. Hélas sur Linux, ce changement automatique ne se fait pas (Parce que les constructeurs ces vilains c’est uniquement de leur faute, ils encouragent le grand capital MicrosAmazonBook- DarkTux59666 – Spécialiste ès rien du tout). Il existe des solutions pour avoir une ébauche de support.

-Bumblebee : qui active le gros GPU grâce à un programme. Exemple : primusrun monsuperjeu dans une console. Certains environnements de bureau tels que GNOME proposent une extension pour lancer une application avec ce programme par un menu accessible d’un clic droit. Hélas, ne supporte pas certaines parties d’openGL et Vulkan.

-Nvidia Prime : Dispo sur ubuntu et le nombre gargantuesque de ses consœurs. Le changement se fait par une icône dans la barre des tâches. Une déconnexion de la session utilisateur est nécessaire pour rendre le changement effectif.

-nvidia-xrun : Petit script fort sympa qui lance une session graphique entièrement gérée par le gros GPU. Pour le lancer, il faut ouvrir un tty (la ligne de commande accessible avec Ctrl+Alt+F1, F2…)

-Une solution analogue à Bumblebee est dispo avec le pilote libre nouveau.

-La solution que je vais vous proposer après ce ronflant discours. Cette solution est en quelque sorte nvidia-xrun amélioré, qui permet de démarrer directement avec une session gérée par le gros GPU, sans autre intervention. Cette solution convient à ceux qui utilisent leur PC portable principalement branché sur secteur (ce qui n’est pas le but premier d’un portable certes, mais le cas n’est pas rare).

 

Pour commencer, il faudra virer tout ce qui a trait à bumblebee et bbswitch. Avec pamac, octopi, une recherche vous mènera directement aux paquets à supprimer. En ligne de commande, la recherche est aussi possible avec pacman -Qs bumblebee bbswitch

Ensuite, on passe à l’installation du pilote propriétaire nvidia.

En préambule, pour manjaro, prenez connaissance de la version de votre noyau. Un petit uname -a dans un terminal vous donnera cette info.

pacman -S linux414-nvidia xrandr – pour une installation possédant un noyau 4.14 

ou une recherche sur les paquets nvidia (correspondant à la version du noyau) nvidia-libgl xrandr dans les gestionnaires graphiques.

Il faudra ensuite créer un fichier dans /etc/X11/xorg.conf.d, où l’on placera des paramètres à donner à manger au serveur graphique Xorg. Par exemple, avec gedit en éditeur de texte, cette commande fera l’affaire.

sudo gedit /etc/X11/xorg.conf.d/20-nvidia-optimus.conf

placez y le texte en italique ci-dessous :

Section “ServerLayout”
Identifier “layout”
Screen 0 “nvidia”
Inactive “intel”
EndSection

Section “Device”
Identifier “nvidia”
Driver “nvidia”
BusID “PCI:4:0:0”
EndSection

Section “Screen”
Identifier “nvidia”
Device “nvidia”
Option “AllowEmptyInitialConfiguration” “Yes”
EndSection

Section “Device”
Identifier “intel”
Driver “modesetting”
BusID “PCI:0:2:0”
Option “AccelMethod” “sna”
EndSection

Section “Screen”
Identifier “intel”
Device “intel”
EndSection

Pensez aussi à noter les busID de vos deux GPU (lspci | grep VGA et lspci | grep 3D pour les avoir, 00:02.0  donnera un BusID “0:2:0” à placer aux bons endroits. Celui du intel dans la partie intel, et celui de la nvidia dans la partie nvidia)

Une fois ceci fait, ne redémarrez surtout pas. Il va falloir être maintenant au fait du petit nom de votre gestionnaire de connexion.

Pour SDDM (celui de KDE), il faudra rajouter à  /usr/share/sddm/scripts/Xsetup

xrandr –setprovideroutputsource modesetting NVIDIA-0
xrandr –auto

Pour LightDM (le reste sauf cas particuliers), c’est un poil plus pénible.

Créer le fichier /etc/lightdm/display_setup.sh avec votre éditeur favori, et y mettre ceci :

xrandr –setprovideroutputsource modesetting NVIDIA-0
xrandr –auto

Passer un coup de chmod +x sur le fichier nouvellement créé, et indiquer à LightDM l’endroit de vos fraiches lignes de code (true programmer sisi) en modifiant /etc/lightdm/lightdm.conf  en changeant la section SeatDefaults comme ceci :

[SeatDefaults]
display-setup-script=/etc/lightdm/display_setup.sh

Une fois ceci fait, redémarrez, et entrez glxinfo dans un terminal. Dans la floppée de caractères barbares affichés, si vous trouvez nvidia, c’est gagné.

 

En conclusion, je fais un gros bisou au wiki ArchlinuxFR pour cette page ( https://wiki.archlinux.fr/Optimus_:_rendu_NVIDIA ) dont cet article s’inspire beaucoup. De par la parenté entre Arch et Manjaro, il suffit de quelques adaptations pour porter la solution de l’une vers l’autre.

J'aime
0

Une réflexion sur « [PC Portables] – Manjaro Linux- Démarrer un PC portable Optimus uniquement sur la carte graphique Nvidia. »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Anti-Robots *