Skip to content

Arrêter la carte Nvidia Optimus Prime sous Ubuntu 20.04

Ubuntu 20.04 fonctionne sans problème sur les portables utilisant une carte graphique hybride Nvidia Optimus (Prime). Le problème est que la carte Nvidia reste alimentée même si on ne l'utilise pas, ce qui est le cas lorsque l'on ne joue pas. Voici comment l'éteindre. Sur un ZeenbooK UX392FN, cela permet de diviser par deux la consommation (qui devient inférieur en mode surf internet à 4W), et donc de doubler l'autonomie. Par ailleurs, cela évite le démarrage du ventilateur qui bien que discret est audible dans une pièce très calme.

Pour arriver à cela, il faut
- installer les drivers nvidia
- sélectionner la carte graphique Intel
- installer bbswitch
- empêcher le driver open-source "nouveau" de se lancer au démarrage
- lancer bbswitch au démarrage pour éteindre la carte Nvidia

source : https://medium.com/@agathver/nvidia-gpu-optimus-prime-and-ubuntu-18-04-woes-f52e7f850f3d
L'installation des drivers Nvidia se fait à l'installation d'Ubuntu. Si on a loupé l'étape, on peut installer les drivers à la main :

sudo ubuntu-drivers autoinstall

On peut vérifier après reboot que le driver est bien utilisé dans "Paramètres/A propos/Mises à jour logicielles/Pilotes Additionnels" : on doit avoir coché "Nvidia Corporation/Utilisation de métapaquets pilotes NVIDIA depuis nvidia-driver-440".

On peut alors sélectionner la carte Intel :

sudo prime-select intel

On installe alors bbswitch :

sudo apt install bbswitch-dkms
sudo modprobe bbswitch


On peut alors vérifier que malgré la sélection de la carte Intel, la carte Nvidia est toujours alimentée :

cat /proc/acpi/bbswitch


Retourne :

0000:02:00.0 ON

On peut au passage, vérifier la consommation :

upower -i `upower -e | grep 'BAT'` | grep grep energy-rate"

On a par exemple :

energy-rate: 8,437 W

La consommation d'énergie est calculée à intervalles réguliers, il faut donc attendre un petit moment pour avoir une mesure stabilisée.

Pour permettre à bbswitch d'arrêter la carte nvidia au boot, il faut lancer ce module au démarrage de la machine. Pour cela il faut ajouter au fichier /etc/modules la ligne suivante :

bbswitch

Puis paramétrer le module :

echo "options bbswitch load_state=0" | sudo tee /etc/modprobe.d/bbswitch.conf

Il faut aussi empêcher le driver open-source "Nouveau" de se lancer. Dans /etc/default/grub, modifier la ligne :

GRUB_CMDLINE_LINUX="nouveau.blacklist=1"

Puis lancer la commande :

sudo update-grub

Après reboot, on vérifie que la carte est bien arrêtée :

cat /proc/acpi/bbswitch

Retourne :

0000:02:00.0 OFF

et

upower -i `upower -e | grep 'BAT'` | grep grep energy-rate"

quelque chose comme:

energy-rate: 3,756 W

Rétroliens

Pas de rétroliens

Commentaires

Afficher les commentaires en Vue non groupée | Vue groupée

Pas de commentaires

Ajouter un commentaire

Marquer un texte en gras: *mot*, souligner un texte: _mot_.
Les smilies standard comme :-) et ;-) sont convertis en images.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Les adresses Email ne sont pas affichées, et sont seulement utilisées pour la communication.

Pour éviter le spam par des robits automatisés (spambots), merci d'entrer les caractères que vous voyez dans l'image ci-dessous dans le champ de fomulaire prévu à cet effet. Assurez-vous que votre navigateur gère et accepte les cookies, sinon votre commentaire ne pourra pas être enregistré.
CAPTCHA

Form options