En tant que titre, comment puis-je configurer correctement la technologie nvidia-optimus sur Ubuntu?
NB: cet article est le résultat de nombreux jours passés à lire divers contenus sur le Web, donc prenez-le à vos risques et périls. Il a été testé sur Ubuntu 12.04/12.10/13.04/13.04 (tous à 64 bits) avec nVidia Carte graphique GT650M. N'hésitez pas à ajouter des commentaires et des suggestions
1. Tout d’abord, nous devons supprimer tous les pilotes vidéo de l’ordinateur:
Sudo apt-get remove --purge nvidia*
Ensuite, bourdonnez au cas où vous l'avez déjà installé:
Sudo apt-get remove --purge bumblebee*
Nous devons également supprimer tout le nouveau pilote avec:
Sudo apt-get --purge remove xserver-xorg-video-nouveau
Pour être sûr d’avoir supprimé tout le contenu, essayez de saisir dpkg -l | grep nvidia
et dpkg -l | grep bumblebee
: il ne devrait rien renvoyer. Pour dpkg -l | grep nouveau
, il est probable qu'il retourne des lignes disant libdrm-nouveauXXXXX
; pour l'instant, ignorez-les.
2. Ensuite, nous devons nous assurer que tous les en-têtes sont dactylographiés:
Sudo apt-get install linux-source && Sudo apt-get install linux-headers-$(uname -r)
3. La prochaine étape consiste à répertorier les pilotes Nouveau existants restants et certains autres packages susceptibles de poser problème:
Sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
Sudo gedit /etc/modprobe.d/blacklist.conf
Ajout des lignes suivantes à la fin du fichier:
# Necessary to install nvidia drivers
blacklist nouveau
blacklist lbm-nouveau
blacklist nvidia-173
blacklist nvidia-96
blacklist nvidia-current
blacklist nvidia-173-updates
blacklist nvidia-96-updates
alias nvidia nvidia_current_updates
alias nouveau off
alias lbm-nouveau off
options nouveau modeset=0
Sauvegardez et quittez.
4. Maintenant, lancez les commandes les plus connues d'ubuntu
Sudo apt-get update && Sudo apt-get dist-upgrade -y
5. A partir de maintenant, nous travaillons sur tty. Ouvrez la console tty1 avec CTRL + ALT + F1 et connectez-vous avec votre nom d'utilisateur et votre mot de passe. Puis exécutez:
Sudo service lightdm stop
Maintenant, nous allons installer les pilotes. Exécuter:
Sudo apt-get install nvidia-XXX-updates nvidia-settings
où XXX représente les derniers pilotes stables. J'utilise les pilotes 331, mais j'ai lu quelque part que les 343 sont disponibles au téléchargement (je ne sais pas s'ils sont stables).
N.B: Avec les dernières versions du pilote, il installe également nvidia-prime
par défaut. Cette technologie est conçue pour basculer automatiquement entre les cartes graphiques Intel et nVidia sans intervention de l'utilisateur. Pour ce faire, il laisse les deux cartes allumées. En revanche, Optimus n'active la carte graphique nVidia qu'à la demande explicite de l'utilisateur. cela se traduit par une consommation d'énergie nettement inférieure à prime.
Personnellement, je préfère optimus que prime, mais si vous ne vous souciez pas de l'énorme gaspillage d'énergie, arrêtez-vous ici. Sinon, vous avez deux options:
supprimer complètement prime (Sudo apt-get remove --purge nvidia-prime
);
laisser la prime là-bas; dans la section "Prime avec Optimus", nous verrons comment faire fonctionner optirun également avec Prime installé
6. Maintenant, nous devons installer bumblebee et les paquets virtualgl avec
Sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386
Ensuite, nous devons ajouter notre utilisateur au groupe de bourdons avec:
Sudo usermod -a -G bumblebee $USER
Et puis redémarrez le PC.
7. Connectez-vous à votre compte d'utilisateur, ouvrez une nouvelle fenêtre de terminal et tapez:
cd /etc/bumblebee
ls -Al
Parmi les différents fichiers répertoriés, il devrait y en avoir deux en particulier: bumblebee.conf
et xorg.nvidia.conf
. Faisons une copie de sauvegarde des deux avec:
Sudo cp FILE_NAME FILE_NAME.bak
Vous devez remplacer FILE_NAME par le nom réel du fichier. Ensuite, allons modifier le premier fichier avec Sudo gedit bumblebee.conf
, en ajoutant (tous sans guillemets)
Assurez-vous que le "XorgConfFile" sous [pilote nvidia] est égal à "/etc/bumblebee/xorg.conf.nvidia" (encore une fois, sans guillemets), puis enregistrez et fermez gedit.
Nous devons maintenant éditer l’autre fichier avec Sudo gedit xorg.conf.nvidia
(dans ce cas, nous devons également insérer les guillemets !!). Remplacez Option "ConnectedMonitor" "DFP"
par Option "UseDisplayDevice" "none"
, enregistrez et quittez.
8. Exécutez gedit /etc/modprobe.d/bumblebee.conf
et assurez-vous que toutes les lignes contenant blacklist <something>
ne sont pas commentées (c’est-à-dire qu’elles ne commencent pas par #
).
9. À ce stade, exécutez la commande suivante
Sudo service bumblebeed start
S'il renvoie une erreur, essayez d'exécuter à nouveau la commande avec redémarrage plutôt que de démarrer. Si vous avez encore des erreurs, quelque chose comme:
restart: Unknown job: bumblebeed
C'est probablement quelque chose qui cloche dans le fichier bumblebee.conf; alors, revérifiez l'étape 7.
Si au contraire le résultat est similaire à:
bumblebeed start/running, process XXXXX
Vous avez bientôt fini de monter un bourdon!
10. Maintenant, nous pouvons simplement exécuter optirun glxspheres
ou optirun glxspheres64
. Si tout fonctionne comme prévu, vous avez une sortie comme celle-ci:
$ optirun glxspheres64
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
182.253407 frames/sec - 203.394802 Mpixels/sec
182.940725 frames/sec - 204.161849 Mpixels/sec
....
Pour vérifier que nous utilisons réellement les pilotes nvidia, ouvrez un autre terminal alors que optirun <application>
est en cours d'exécution, puis tapez Sudo lshw -c display | grep driver
. Le résultat devrait être quelque chose comme ça.
configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0
Si, par contre, vous fermez toutes les applications lancées avec optirun
, seul le pilote intel devrait être affiché. C'est tout!!
Grâce à cette réponse de Pavak Paul, voici les instructions pour ajouter l'interface utilisateur de bumblebee sur Ubuntu 14.04 afin de gérer les applications à ouvrir à l'aide de nVidia.
1. Installez Python Indicateur d'application:
Sudo apt-get install python-appindicator
2. Installez Git:
Sudo apt-get install git
3. Créez un répertoire pour git:
mkdir git && cd git
4. Consultez le référentiel:
git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
Sudo ./INSTALL
5. Allez dans Applications de démarrage et ajoutez bumblebee-indicator [cliquez sur Ajouter, puis insérez le nom et le commentaire de votre choix; insérez bumblebee-indicator
dans la case de commande et cliquez sur Ajouter).
6. Redémarrez.
Si vous souhaitez également pouvoir utiliser parfois nvidia-prime
, suivez les instructions ci-dessous.
1. Pour empêcher bumblebeed
de démarrer au démarrage, exécutez:
echo "manual" | Sudo tee /etc/init/bumblebeed.override
2. Ce point est le plus problématique. il empêche les bourdons de mettre les pilotes nVidia sur la liste noire et devrait entraîner un gel des sessions graphiques. Essayez-le à vos risques et périls! Courir:
Sudo gedit /etc/modprobe.d/bumblebee.conf
Et commentez la ligne contenant vos pilotes nVidia XXX. Cela devrait aboutir à quelque chose comme ça.
# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
3. Redémarrez le système et lancez nvidia-settings
. La situation finale est la suivante:
Si vous sélectionnez "Intel (économie d'énergie)" dans nvidia-settings, seule la carte graphique Intel est activée par défaut. Vous devez toujours exécuter une application avec optirun
pour utiliser la carte graphique nVidia.
Sudo service bumblebeed start
optirun <application>
Si vous préférez utiliser le profil "Nvidia (Performance)", sélectionnez-le dans nvidia-settings, puis connectez-vous/déconnectez-vous et tout devrait fonctionner automatiquement. La seule chose à faire est que vous n'avez pas à lancer le démon bumblebeed
avec ce profil sélectionné, car cela pourrait causer des problèmes.
1. Si vous souhaitez utiliser uniquement nvidia-prime
:
Sudo apt-get --purge remove bumblebee*
Puis redémarrez.
2. Si vous souhaitez utiliser uniquement Optimus sans supprimer nvidia-prime, éditez à nouveau le fichier précédent:
Sudo gedit /etc/modprobe.d/bumblebee.conf
Décommenter (supprimer le caractère #) des lignes précédemment modifiées:
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
Et redémarrer. Dans ce cas, vous pouvez laisser bumblebeed s'exécuter au démarrage:
Sudo rm /etc/init/bumbebeed.override