Vous avez également fait l'aquisition d'un PC intégrant la "super" fonction Optimus de Nvidia et que vous avez décidé d'installer Linux, cet article est pour vous ! Alors que l'installation se déroule sans problème, j'ai remarqué directement une baisse significative d'autonomie par rapport à Windows (de 5h à 2h45 environ).
Après quelques recherches, je me suis aperçu que les deux cartes graphiques étaient alumées continuellement et en même temps. En effet, je dispose d'un chipset Intel (HD4000) plus économe en energie, mais moins puissant que ma carte graphique Nvidia (GT640m LE).
Sous Windows aucun problème, Optimus switche de l'une à l'autre en fonction des besoins, mais Linux n'intégre pas cette technologie pour le moment. Néanmoins, il existe des solutions alternatives comme le projet Bumblebee. Je vous conseille d'aller y jeter un coup d'oeil, chez moi, cela n'a pas fonctionné...
Identification du problème :
Sous linux, l'utilisation seule du chipset Intel me convient parfaitement, ce dernier est largement assez rapide pour mon usage. Je cherche à retrouver une autonomie plus vivable en coupant le GPU Nvidia inutile.
Avant de commencer, il faut déjà s'assurer que vous avez bien deux cartes écrans :
johnny@johnny-pc:~$ lspci | grep "VGA" 02.0 VGA compatible controller: Intel Corporation Ivy Bridge Graphics Controller (rev 09) 01:00.0 VGA compatible controller: NVIDIA Corporation Device 0fd3 (rev 03)
Nous voyons donc que les deux cartes sont actives. (numéro de révision connu)
Préparation de la solution :
Nous allons utiliser l'outil "acpi_call". Il s'agit d'un module noyau qui permet d’interagir avec le système au niveau électrique, notamment pour allumer/éteindre la carte graphique dédiée à la demande. Ce module n'est qu'un messager, il transmet des instructions ACPI dans le fichier /proc/acpi/call.
Pour installer le module, on clone le dépot GIT du projet :
cd /opt sudo git clone http://github.com/mkottman/acpi_call.git cd acpi_call make # Attention : Doit être recompiler le module à chaque nouvelle mise à jour de kernel.
Après avoir compiler, on retrouve avec un module acpi_call.ko qui devra être chargé et un script test_off.sh qui permet de trouver la bonne instruction ACPI qui correspond à votre carte :
# Activation du module johnny@johnny-pc:/opt/acpi_call$ sudo insmod acpi_call.ko # Recherche de la bonne instruction johnny@johnny-pc:/opt/acpi_call# sudo sh ./test_off.sh Trying \_SB.PCI0.P0P1.VGA._OFF: failed Trying \_SB.PCI0.P0P2.VGA._OFF: failed Trying \_SB_.PCI0.OVGA.ATPX: failed Trying \_SB_.PCI0.OVGA.XTPX: failed Trying \_SB.PCI0.P0P3.PEGP._OFF: failed Trying \_SB.PCI0.P0P2.PEGP._OFF: failed Trying \_SB.PCI0.P0P1.PEGP._OFF: failed Trying \_SB.PCI0.MXR0.MXM0._OFF: failed Trying \_SB.PCI0.PEG1.GFX0._OFF: failed Trying \_SB.PCI0.PEG0.GFX0.DOFF: failed Trying \_SB.PCI0.PEG1.GFX0.DOFF: failed Trying \_SB.PCI0.PEG0.PEGP._OFF: works! # Youpiiii !
Le script a réussi à trouver une instruction fonctionnelle. Si, aucune instruction fonctionne, ce n'est pas la peine de continuer, apci_call ne fonctionne pas chez vous !
Extinction de la vilaine carte graphique :
On va maintenant réaliser un petit script bash qui automatisera l'extinction de la carte :
#!/bin/bash # Chargement du module insmod /opt/acpi_call/acpi_call.ko # Lancement de l'instructon ACPI echo "\_SB.PCI0.PEG0.PEGP._OFF" > /proc/acpi/call # Vérification RES=$(cat /proc/acpi/call) case "$RES" in Error*) notify-send "GPU Killer" "Impossible de désactiver votre seconde carte !" ;; *) notify-send "GPU Killer" "Le seconde carte a été désactivée !" esac
Il suffit ensuite de modifier le ficher /etc/rc.local pour executer le script directement au démarrage de Linux. Voila, vous avez augmenter (normalement) votre autonomie en seulement quelques minutes !
MnK a écrit : le 07/09/2012 à 4:55pm
Je vais directement tester ça ce week-end, et je te tiens au courant. Merci
Steveo a écrit : le 07/09/2012 à 6:37pm
Il ne faudra pas oublier de recompiler le module à chaque nouvelle mise à jour de kernel. Il faut aussi les kernel headers pour pouvoir compiler.
Renrhaf a écrit : le 07/09/2012 à 7:01pm
Merci pour ces informations ^^
thomas a écrit : le 07/09/2012 à 7:26pm
John la machine !!! (ton captcha est chiant au passage lol)
Imparator a écrit : le 07/09/2012 à 8:00pm
Je ne vois pas pourquoi tu te casses la tete avec intel dans ce cas là. Tu n'as qu'à acheter AMD vision ... voila, tu n'aura que la carte graph du CPU... Avec AMD A8 y a du niveau quoi, tu peux tourner les derniers jeux du moment...
AMD => The Best (pour ce qui ne veulent pas trop dépenser d'argent)
Imparator a écrit : le 07/09/2012 à 8:02pm
Thomas : oui le captcha c'est trop chiant... faudrait p-t enlever les casses hin.. on a pas envie de taper le captcha avec des maj et min et surtt que tu as intégrer les chiffres... ça devient vite illisible...
(ex : cmt je suis sensé faire la différence entre un C et c sur une image "déformée" ?)
Johnny a écrit : le 07/09/2012 à 11:02pm
@Steveo: Merci pour l'infos, c'est noté ! :D
@Thomas: J'ai modifié le captcha, il ne prend plus compte de la casse. C'est vrai que c'était pas facile... :P
@Imparator: Sur linux, les cartes AMD-ATI sont pas exemplaire non plus (niveau compatibilité), mais, c'est vrai qu'elle coûte moins chère. On va peut être pas lancer le débat "Nvidia vs ATi"... :D
Jeunot a écrit : le 16/01/2013 à 1:32am
Merci pour cet article, je l'essaierai demain
En effet, j'ai moi aussi installé Ubuntu en dual-boot sur un Sony VAIO serie S.
J'ai rencontré néanmoins plusieurs problèmes:
-Dans les informations système, "carte graphique: inconnue"
-Chauffe anormale du PC
-Baisse de l'autonomie
-Non détection de la carte graphique au démarrage, obligeant à travailler en mode console uniquement
-Message "CPU: Package Power Limit Notification" empêchant le démarrage
En surfant sur internet, j'ai cru comprendre que tous ces problèmes étaient dus à la technologie Optimus mal gérée.
Je n'ai pas non plus réussi à installer Bumblebee sur mon ordinateur, je ne sais pas pourquoi (installation apparemment sans encombres)
Avais tu les mêmes problèmes? La désactivation de la carte NVidia les a t elle résolus?
Sinon as tu rencontré d'autres problèmes avec cette configuration (du style gestion du processeur, de la batterie, des cartes réseau)? As tu testé la batterie additionnelle?