Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



vga_switcheroo

vga_switcheroo est un outil inclus dans le noyau Linux qui permet de basculer entre les différentes cartes graphiques d'un ordinateur. Cet outil est particulièrement utile si vous posséder un ordinateur portable avec plusieurs GPU.
Vous trouverez plus d'informations sur cette publication sur linuxfr.org lors de la sortie de Linux 2.6.34.

vga_switcheroo n'est pas compatible avec la technologie Nvidia Optimus. Si vous l'utilisez, merci de vous référez à la page suivante : nvidia_optimus
vga_switcheroo ne semble plus fonctionner correctement depuis le passage à la version 11.04 . Ce post donne quelques piste pour le faire refonctionner ou s'en passer.

De base, il faut savoir que les deux cartes graphiques tournent à fond alors qu' une seule est utilisée.
Si vous voulez constater la différence d'autonomie, saisissez dans un terminal la commande suivante:

acpi

devrait vous répondre par exemple

Battery 0: Discharging, 88%, 04:55:28 remaining

Ici l' autonomie anoncée est de 4h55 avec 88% de batterie.
Saisissez maintenant

echo ON > switch ; sleep 30 ; acpi

Ce qui activera la carte graphique (ici une ATI) inutilisée avant de retester l'autonomie 30 secondes plus tard. La réponse sera par exemple

Battery 0: Discharging, 88%, 02:36:56 remaining

Ici, toujours avec 88% de batterie, il est annoncé 2h36 d'autonomie.

vga_switcheroo est-il disponible dans mon noyau ?

Afin de vérifier que vga_switcheroo est disponible dans le noyau que vous utilisez actuellement, saisissez dans un terminal la commande suivante:

grep -i switcheroo /boot/config-`uname -r`

La réponse devra être

CONFIG_VGA_SWITCHEROO=y

Si vous avez bien cette ligne, vga_switcheroo peut-être utilisé et vous pouvez continuer sans problème. Dans le cas contraire, vérifiez avec la commande

uname -r

que votre noyau est au moins à la version 2.6.34. Dans Ubuntu 10.04 la version de base du noyau étant 2.6.32, vga_switcheroo n'est donc pas disponible. Vous pouvez alors soit:

/sys/kernel/debug est-il bien monté ?

Maintenant que vous savez que le noyau inclus vga_switcheroo, vérifiez que /sys/kernel/debug est bien monté (en principe sur Ubuntu, aucun problème) avec la commande suivante :

mount | grep /sys/kernel/debug

Qui doit vous renvoyer :

none on /sys/kernel/debug type debugfs (rw)

Si cette ligne s'affiche tout va bien, vous pouvez passer à la partie suivante ! :) Si ce n'est pas le cas (ça ne renvoie rien), éditez avec les droits d'administration le fichier /etc/fstab pour y insérer cette ligne:

none /sys/kernel/debug debugfs defaults 0 0

Ensuite, redémarrez votre ordinateur ou saisissez dans un terminal:

sudo mount -a

.

Un peu de vocabulaire

Pour comprendre ce que vous allez faire, un peu de vocabulaire utilisé par vga_switcheroo :

  • La carte intégrée correspond à votre chipset graphique (souvent un Intel), peu puissant mais très peu gourmand en énergie.
  • La carte discrète correspond à votre carte graphique. Plus puissante que le chipset (utile pour jouer, décoder des vidéos HD, faire de l'infographie 3D,…), cette carte consomme beaucoup de ressources, et réduit donc l'autonomie de votre ordinateur.

Le fichier switch

Pour basculer entre les cartes graphiques, vga_switcheroo utilise le fichier /sys/kernel/debug/vgaswitcheroo/switch\\. Pour l'utiliser plus simplement et faciliter les modifications, attribuez-vous les droits sur ce fichier pour qu'il vous appartienne dès le démarrage. Pour faire cela, il suffit d' éditer avec les droits d'administration le fichierr /etc/rc.local (juste avant le exit 0) pour y ajouter cette ligne:

chown nom_utilisateur:nom_utilisateur /sys/kernel/debug/vgaswitcheroo/switch
Ceci n'est pas obligatoire. Si vous ne le faites pas, vous devrez utilisez "sudo" pour modifier le fichier ce qui peut être gênant si vous souhaitez développer vos propres scripts par exemple.

Vous pouvez également ajouter "une règle par défaut" qui sera exécutée à chaque lancement. Par exemple, pour désactiver directement votre carte graphique inutilisée, ajoutez dans le fichier /etc/rc.local :

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Les commandes disponibles

Éteindre la carte graphique non utilisée :

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Allumer la carte graphique non utilisée :

echo ON > /sys/kernel/debug/vgaswitcheroo/switch

Active la carte graphique intégrée : (aucun effet si X est démarré)

echo IGD > /sys/kernel/debug/vgaswitcheroo/switch

Active la carte graphique discrète : (aucun effet si X est démarré)

echo DIS > /sys/kernel/debug/vgaswitcheroo/switch

Malheureusement, le serveur X ne gèreant pas la changement de carte graphique "à chaud", il faut le redémarrer pour pouvoir changer de carte graphique. Les commandes suivantes permettent de le forcer à redémarrer sur une ou l'autre des cartes :

Active la carte graphique intégrée au prochain démarrage de X :

echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch

Active la carte graphique discrète au prochain démarrage de X :

echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch

Contributeurs:FIXME minishooter

  • vga_switcheroo.1317293307.txt.gz
  • Dernière modification: Le 15/12/2011, 15:21
  • (modification externe)