Comme titre, comment configurer correctement la technologie nvidia-optimus sur Ubuntu?
Comme titre, comment configurer correctement la technologie nvidia-optimus sur Ubuntu?
Réponses:
NB: ce post est le résultat de plusieurs jours passés à lire divers trucs sur le web, alors prenez-le à vos risques et périls. Il a été testé sur Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (tous 64 bits) avec la carte graphique nVidia GT650M. N'hésitez pas à ajouter des commentaires et 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ù si vous l'avez installé précédemment:
sudo apt-get remove --purge bumblebee*
Nous devons également supprimer tous les nouveaux pilotes avec:
sudo apt-get --purge remove xserver-xorg-video-nouveau
Pour être sûr d'avoir supprimé l'intégralité des éléments, essayez de taper dpkg -l | grep nvidia
et dpkg -l | grep bumblebee
: il ne devrait rien retourner. Car dpkg -l | grep nouveau
il est probable qu'il renvoie quelques lignes en disant libdrm-nouveauXXXXX
; pour l'instant, ignorez-les.
2. Ensuite, nous devons nous assurer que tous les en-têtes tapent:
sudo apt-get install linux-source && sudo apt-get install linux-headers-$(uname -r)
3. La prochaine chose à faire est de mettre sur liste noire les nouveaux pilotes restants et certains autres packages qui pourraient causer des problèmes:
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
Enregistrez et quittez.
4. Maintenant, exécutez les commandes ubuntu les plus connues
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. Exécutez ensuite:
sudo service lightdm stop
Nous allons maintenant installer les pilotes. Exécuter:
sudo apt-get install nvidia-XXX-updates nvidia-settings
où XXX est le dernier pilote stable. J'utilise les pilotes 331, mais j'ai lu quelque part que les 343 sont disponibles en téléchargement (je ne sais pas s'ils sont stables).
NB: Avec les dernières versions de pilotes, il s'installe également nvidia-prime
par défaut. Cette technologie est destinée à basculer automatiquement entre Intel et la carte graphique nVidia sans intervention de l'utilisateur. Pour ce faire, il laisse les deux cartes allumées. Optimus, d'autre part, n'allume la carte graphique nVidia qu'avec une demande explicite de l'utilisateur; il se traduit par une consommation d'énergie nettement inférieure par rapport à l'amorçage.
Personnellement, je préfère optimus à 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
);
laissez-y le prime; dans la section "Prime with optimus", nous verrons comment faire fonctionner optirun aussi avec prime installé
6. Maintenant, nous devons installer bumblebee et les packages 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 dans le groupe des bourdons avec:
sudo usermod -a -G bumblebee $USER
Et puis redémarrez le PC.
7. Connectez-vous sur votre compte utilisateur, ouvrez une nouvelle fenêtre de terminal et tapez:
cd /etc/bumblebee
ls -Al
Parmi les différents fichiers listés, il devrait en exister 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 (le tout sans guillemets)
Assurez-vous que le "XorgConfFile" sous [nvidia-driver] est égal à "/etc/bumblebee/xorg.conf.nvidia" (encore une fois, sans guillemets), puis enregistrez et fermez gedit.
Maintenant, nous devons é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 ne va pas dans le fichier bumblebee.conf; revérifiez donc l'étape 7.
Si à la place le résultat est similaire à:
bumblebeed start/running, process XXXXX
Vous avez bientôt terminé l'installation du 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 nvidia-drivers, ouvrez un autre terminal en optirun <application>
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, en revanche, vous fermez toutes les applications démarrées avec optirun
elle, seuls les pilotes Intel devraient s'afficher. C'est ça!!
Grâce à cette réponse de Pavak Paul, voici les instructions pour ajouter l'interface utilisateur bumblebee sur Ubuntu 14.04 pour gérer les applications à ouvrir à l'aide de nVidia.
1. Installez l'indicateur d'application Python:
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 Startup Applications et ajoutez bumblebee-indicator [cliquez sur Add, puis insérez le nom et le commentaire que vous voulez; insérer bumblebee-indicator
dans la boîte de commande et cliquer sur Ajouter).
6. Redémarrez.
Si vous souhaitez avoir la possibilité d'utiliser également nvidia-prime
parfois, essayez de suivre les instructions ci-dessous.
1. Pour éviter 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 bumblebee de mettre les pilotes nVidia sur liste noire et devrait entraîner un gel de la session graphique. 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 (Power save)" dans nvidia-settings, vous n'avez que la carte graphique Intel 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 souhaitez plutôt 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 est que vous n'avez pas à lancer le bumblebeed
démon 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*
Redémarrez ensuite.
2. Si vous souhaitez utiliser uniquement optimus sans supprimer nvidia-prime, modifiez à nouveau le fichier précédent:
sudo gedit /etc/modprobe.d/bumblebee.conf
Décommentation (suppression du caractère #) des lignes précédemment modifiées:
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
Et redémarrage. Dans ce cas, vous pouvez laisser Bumblebeed fonctionner au démarrage:
sudo rm /etc/init/bumbebeed.override
vblank_mode=0 primusrun ./glxgears
ou nous pouvons utiliser vblank_mode=0 optirun -b primus ./glxgears
. merci :)