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
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
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
Commentaires
Afficher les commentaires en Vue non groupée | Vue groupée