Fedora : Installer les pilotes NVidia (valable pour NVidia Optimus aussi)



Introduction




Présentation



Une carte Optimus est une carte NVidia Hybride, couplée avec une puce intégrée Intel.
Le but de cette techno est d'améliorer l'autonomie d'un portable, et n'est présente que dans ceux-ci.


Le principe



Sous Windows, c'est :
  • On tourne sur le chipset intégré Intel. Le pilote NVidia éteint la NVidia.
  • Quand il y a de la demande de 3D, le pilote NVidia active celle-ci, et l’application utilise la NVidia.
  • Quand l'application est fermée, la carte NVidia est de nouveau éteinte.


Ainsi, le PC, quand il n'a pas besoin de puissance graphique, on ne tourne que sur Intel.


Installation



A partir de Fedora 25, Le pilote NVidia est pleinement fonctionnel avec Optimus. Il suffit d'installer le pilote disponible dans RPM Fusion.

Dans un premier temps, installer les dépôts RPM Fusion : https://www.linuxtricks.fr/wiki/fedora-ajouter-des-depots-supplementaires

Ensuite, installer le pilote NVidia "akmod" :

Code BASH :
dnf install xorg-x11-drv-nvidia akmod-nvidia


Ce pilote se recompilera automatiquement au boot si le noyau est changé.

Installer éventuellement xorg-x11-drv-nvidia-cuda (pour supporter CUDA, NVENC) :
Code BASH :
dnf install xorg-x11-drv-nvidia-cuda


Ensuite on reboot pour prendre en compte le pilote NVidia et que le module soit compilé au boot :

Code BASH :
reboot



Tests



On peut installer VirtualGL et faire un test :

Code BASH :
dnf install VirtualGL


Code BASH :
glxspheres64
 
Polygons in scene: 62464
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
172.888624 frames/sec - 192.943704 Mpixels/sec
 


On voit que la carte NVidia est utilisée.

Et c'est tout, ça fonctionne !

Je n'ai pas de retours sur l'autonomie et si la carte NVidia est utilisée en permanence ou non, puisque ma batterie est HS.

Configurer ses jeux, encodeurs et autre



Aucun paramétrage n'est à faire dans Steam ou utres applications pour prendre en compte la carte NVidia. Les jeux sont lancés automatiquement et le rendu est fait avec NVidia.

Concernant les encodeurs, avec le paquet xorg-x11-drv-nvidia-cuda vous pouvez utiliser directement l'encodeur nvenc sans configuration particulière. Elle est pas belle la vie ? :magic:




ARCHIVE OBSOLETE



Ceci est valable avant la version 25 de Fedora. C'est donc obsolète mais conservé pour archive

L'histoire de Bumblebee OBSOLETE



Un projet libre, nommé bumblebee est né pour pallier à ce problème, d'utiliser un fichier Xorg.nvidia pour lancer une application avec le pilote NVidia.
Mais avec seulement bumblebee installé, les deux cartes graphiques fonctionnent toujours. Même lorsque la NVidia n'est pas sollicitée.
En parallèle de bumblebee, on a bbswitch qui permet justement de couper l'alimentation de la carte NVidia lorsqu'aucune application 'optirun' n'est exécutée. (Optirun étant la commande permettant d'exécuter une application avec la carte graphique NVidia).

Ces deux logiciels (bumblebee et bbswith) fonctionnent en duo, avec le pilote NVidia installé à côté pour "reproduire" la technologie incluse dans le driver NVidia.

Sans bumblebee et bbswitch => Autonomie de 1h30 avec la batterie.
Sans les mêmes conditions avec bumblebee + bbswitch => Autonomie de 4h30 avec la batterie sans qu'aucune application 3D ne tourne avec la commande 'optirun'.

Même si on se fiche de l'autonomie, il n'est pas possible de désactiver dans le BIOS la puce graphique Intel pour ne fonctionner qu'avec la carte NVidia.

Installation OBSOLETE



A vérifier:

Dans un premier temps, on a besoin d'installer quelques dépendances :

Code BASH :
dnf install libbsd-devel libbsd glibc-devel libX11-devel help2man autoconf git tar glib2 glib2-devel kernel-devel kernel-headers automake gcc gtk2-devel glibc-devel


Nous avons besoin de VirtualGL

Code BASH :
dnf install VirtualGL


On importe ensuite les dépôts RPM des projets Bumblebee :

Caché:
Fedora 19 :
Code BASH :
yum --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora19/noarch/bumblebee-release-1.0-1.noarch.rpm
yum --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora19/noarch/bumblebee-nonfree-release-1.0-1.noarch.rpm


Fedora 20 :
Code BASH :
yum -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora20/noarch/bumblebee-release-1.1-1.noarch.rpm
yum -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora20/noarch/bumblebee-nonfree-release-1.1-1.noarch.rpm
 


Fedora 21 :
Code BASH :
yum -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora21/noarch/bumblebee-release-1.2-1.noarch.rpm
yum -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora21/noarch/bumblebee-nonfree-release-1.2-1.noarch.rpm
 


Fedora 22 :
Code BASH :
dnf -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora22/noarch/bumblebee-release-1.2-1.noarch.rpm
dnf -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora22/noarch/bumblebee-nonfree-release-1.2-1.noarch.rpm
 


Fedora 23 :
Code BASH :
dnf -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora23/noarch/bumblebee-release-1.2-1.noarch.rpm
dnf -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora23/noarch/bumblebee-nonfree-release-1.2-1.noarch.rpm
 



Puis on installe enfin notre bumblebee :

Code BASH :
dnf install bumblebee-nvidia


On peut aussi installer primus

Code BASH :
dnf install primus



Si on est sur un PC 64bits, et qu'on souhaite lancer des applications 32bits (steam par exemple), installer VirtualGL et primus 32bits :

Code BASH :
dnf install VirtualGL.i686 primus.i686




Une fois l'opération terminée, il faut rebooter :gene:


Tests OBSOLETE



Maintenant que bumblebee est installé, on peut tester les performances.

Maintenant que bumblebee est installé, on peut tester les performances.

Si on n'utilise pas la commande optirun, on constate que la carte utilisée est Intel :

Code BASH :
adrien@superlinux: ~  $  glxspheres 
Polygons in scene: 62464
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Ivybridge Mobile 
59.973940 frames/sec - 66.930917 Mpixels/sec


Maintenant, on teste avec la commande optirun, et on constate que la carte NVidia est utilisée :

Code BASH :
 adrien@superlinux: ~  $ optirun glxspheres 
Polygons in scene: 62464
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
172.888624 frames/sec - 192.943704 Mpixels/sec
 



Accéder à NVidia settings OBSOLETE



Pour accéder au panneau NVidia il faut utiliser aussi la commande optirun :

Code BASH :
optirun -b none nvidia-settings -c :8



Et voilà, amusez vous bien :magic:


Erreurs courantes OBSOLETE



Si bumblebee ne se lance pas au redémarrage, l'activer et le démarrer (mais normalement c'est fait à l'installation) :

Code BASH :
systemctl enable bumblebeed.service
systemctl start bumblebeed.service


Si la communication ne se fait pas et que l'erreur suivante est présente) :

Code TEXT :
[ERROR]You've no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group
[ERROR]Could not connect to bumblebee daemon - is it running?


Vérifier que l'utilisateur en cours fasse partie du groupe bumblebee

Code BASH :
id


Code TEXT :
uid=1000(adrien) gid=1001(adrien) groupes=1001(adrien),7(lp),10(wheel),14(uucp),18(audio),19(cdrom),27(video),35(games),80(cdrw),85(usb),100(users),440(plugdev),441(scanner),994(bumblebee),995(vboxusers),1000(guest)


S'il n'en fait pas partie, l'ajouter :

Code BASH :
usermod -G bumblebee -a nomutilisateur
Cette page a été vue 14246 fois