« Bumblebee » : différence entre les versions
m (Correction de fautes.) |
m (→Mise en œuvre : Ajout de " '''contrib''' et" dans les dépôts à configurer.) |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 30 : | Ligne 30 : | ||
'''Installation des pilotes propriétaires et de bumblebee''' | '''Installation des pilotes propriétaires et de bumblebee''' | ||
apt install bumblebee-nvidia primus nvidia-kernel-dkms nvidia-xconfig nvidia-settings nvidia-vdpau-driver vdpau-va-driver mesa-utils xserver-xorg-video-nvidia linux-headers-$(uname -r) | apt install bumblebee-nvidia primus nvidia-kernel-dkms nvidia-xconfig nvidia-settings nvidia-vdpau-driver vdpau-va-driver mesa-utils xserver-xorg-video-nvidia linux-headers-$(uname -r) | ||
''Note: il faut bien sûr avoir définit les dépôts '''non-free''' dans le <source lang="bash" inline>/etc/apt/sources.list</source> pour pouvoir télécharger les pilotes propriétaires.'' | ''Note: il faut bien sûr avoir définit les dépôts '''contrib''' et '''non-free''' dans le <source lang="bash" inline>/etc/apt/sources.list</source> pour pouvoir télécharger les pilotes propriétaires.'' | ||
Ligne 68 : | Ligne 68 : | ||
'''Installer OpenGL pour Nvidia''' | '''Installer OpenGL pour Nvidia''' | ||
apt install libglu1-mesa:i386 libgl1-nvidia-glx:i386 libgl1-nvidia-glx | apt install libglu1-mesa:i386 libgl1-nvidia-glx:i386 libgl1-nvidia-glx libxv1 libxv1:i386 | ||
{{info|Cela aura pour effet de corriger l'erreur bloquante ''glxspheres[2034]: segfault at 70 ip 00000000f4f634d0 sp 00000000f37b4094 error 4 in i965_dri.so'' du /var/log/syslog.}} | {{info|Cela aura pour effet de corriger l'erreur bloquante ''glxspheres[2034]: segfault at 70 ip 00000000f4f634d0 sp 00000000f37b4094 error 4 in i965_dri.so'' du /var/log/syslog. | ||
L'installation des paquets <source lang="bash" inline>libxv1 libxv1:i386</source> aura pour effet de corriger l'erreur: | |||
''ERROR: ld.so: object '/home/yohan/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. | |||
GameAction [AppID 400, ActionID 1] : LaunchApp changed task to Completed with "" | |||
>>> Adding process 21491 for game ID 400 | |||
ERROR: ld.so: object 'libXv.so.1' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. | |||
/home/yohan/.local/share/Steam/steamapps/common/Portal/hl2_linux: error while loading shared libraries: libXv.so.1: wrong ELF class: ELFCLASS64'' | |||
sous Wayland (source [https://ubuntuforums.org/showthread.php?t{{=}}2188201 ici]).}} | |||
{{Astuce|Le fichier journal de Steam se trouve dans ''/tmp/dumps/UTILISATEUR_stdout.txt'' (astuce trouvée [https://steamcommunity.com/app/221410/discussions/0/846939071256105782/ ici]). Cela a été utile pour trouver la dépendance manquante grâce au message: | {{Astuce|Le fichier journal de Steam se trouve dans ''/tmp/dumps/UTILISATEUR_stdout.txt'' (astuce trouvée [https://steamcommunity.com/app/221410/discussions/0/846939071256105782/ ici]). Cela a été utile pour trouver la dépendance manquante grâce au message: | ||
Ligne 83 : | Ligne 92 : | ||
export LIBGL_DRI3_DISABLE=1 | export LIBGL_DRI3_DISABLE=1 | ||
Enfin, dans Steam, allez dans votre bibliothèque et sélectionnez le jeu que vous voulez lancer avec Nvidia. Faites '''propriétés''' > '''DÉFINIR LES OPTIONS DE LANCEMENT''' > entrez | Enfin, dans Steam, allez dans votre bibliothèque et sélectionnez le jeu que vous voulez lancer avec Nvidia. Faites '''propriétés''' > '''DÉFINIR LES OPTIONS DE LANCEMENT''' > entrez <source lang="bash" inline>LD_PRELOAD="libpthread.so.0 libGL.so.1" _GL_THREADED_OPTIMIZATIONS=1 optirun %command%</source>. | ||
==Sources de la section== | ==Sources de la section== | ||
* https://support.steampowered.com/kb_article.php?ref=6316-GJKC-7437 | * https://support.steampowered.com/kb_article.php?ref=6316-GJKC-7437 | ||
* https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/1371834 | * https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/1371834 | ||
* https://ubuntuforums.org/showthread.php?t=2188201 |
Dernière version du 21 octobre 2018 à 16:33
Bumblebee est une implémentation libre de la technologie Optimus de Nvidia. Celui-ci vient s'ajouter aux pilotes graphiques dans une configuration couplant un GPU Intel et une carte vidéo Nvidia (généralement un PC portable).
Le principe est d'utiliser la plus part du temps la puce Intel (moins énergivore) pour les tâches courantes et d'exploiter la carte dédié Nvidia (plus puissante) pour des applications plus lourdes. Bumblebee est également équipé de bbswitch qui se charge de la gestion de l'énergie automatiquement.
Note: Les tests ont été effectués sur un Dell XPS 15 9550 sous Debian sid (buster) le 20/07/2018.
Mise en œuvre
Lister les cartes graphiques
lspci | egrep "VGA|3D|Display"
Confirmer l'usage actuel du pilote "nouveau"
lsmod | egrep -i "nouveau|vga_switcheroo"
Le désactiver
modprobe -r nouveau
Empêcher son exécution future
vim /etc/modprobe.d/nouveau-blacklist.conf
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
Installation des pilotes propriétaires et de bumblebee
apt install bumblebee-nvidia primus nvidia-kernel-dkms nvidia-xconfig nvidia-settings nvidia-vdpau-driver vdpau-va-driver mesa-utils xserver-xorg-video-nvidia linux-headers-$(uname -r)
Note: il faut bien sûr avoir définit les dépôts contrib et non-free dans le /etc/apt/sources.list
pour pouvoir télécharger les pilotes propriétaires.
Ajout de l'utilisateur au groupe bumblebee
adduser UTILISATEUR bumblebee
INFORMATION
À chaque mise à jour du noyau, penser à faire undpkg-reconfigure nvidia-kernel-dkms
si ce n'est pas fait automatiquement.Pour pouvoir exploiter la carte Nvidia, il faut utiliser la commande optirun
avec comme paramètre l'application qui doit utiliser le GPU dédié. Cette commande a besoin du paquet VirtualGL qui n'est pas dans les dépôts Debian (on se demande bien pourquoi vu que sans ça tout le reste ne sert à rien...). Nous allons l'installer manuellement.
Installer VirtualGL
wget https://sourceforge.net/projects/virtualgl/files/2.5.2/virtualgl_2.5.2_amd64.deb wget https://sourceforge.net/projects/virtualgl/files/2.5.2/virtualgl32_2.5.2_amd64.deb dpkg -i virtualgl*.deb
Exécuter une application avec la carte Nvidia
optirun vlc
ASTUCE
Pour afficher le panneau de configuration Nvidia, il faut taper la commande suivante:optirun nvidia-settings -c :8
.Sources de la section
Utiliser avec Steam
Steam peut exploiter bumblebee en passant un paramètre aux jeux. Cette opération nécessite quelques ajouts au système.
Ajout des dépôts 32 bits pour l'exécution des jeux Steam
dpkg --add-architecture i386 apt update
Ajouter les binaires VirtualGL dans la variable PATH
vim ~/.profile
PATH="$HOME/bin:/opt/VirtualGL/bin:$PATH"
Note: il suffit d'ajouter: /opt/VirtualGL/bin à la variable PATH déjà présente dans le .profile de votre utilisateur.
Installer OpenGL pour Nvidia
apt install libglu1-mesa:i386 libgl1-nvidia-glx:i386 libgl1-nvidia-glx libxv1 libxv1:i386
INFORMATION
Cela aura pour effet de corriger l'erreur bloquante glxspheres[2034]: segfault at 70 ip 00000000f4f634d0 sp 00000000f37b4094 error 4 in i965_dri.so du /var/log/syslog.
L'installation des paquets libxv1 libxv1:i386
aura pour effet de corriger l'erreur:
ERROR: ld.so: object '/home/yohan/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 400, ActionID 1] : LaunchApp changed task to Completed with ""
>>> Adding process 21491 for game ID 400
ERROR: ld.so: object 'libXv.so.1' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
/home/yohan/.local/share/Steam/steamapps/common/Portal/hl2_linux: error while loading shared libraries: libXv.so.1: wrong ELF class: ELFCLASS64
ASTUCE
Le fichier journal de Steam se trouve dans /tmp/dumps/UTILISATEUR_stdout.txt (astuce trouvée ici). Cela a été utile pour trouver la dépendance manquante grâce au message:
primus: fatal: failed to load any of the libraries: /usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1:/usr/lib/i386-linux-gnu/nvidia/libGL.so.1:/usr/lib/nvidia/libGL.so.1
Désactiver le je-ne-sais-quoi qui fout la merde
vim /etc/environment
export LIBGL_DRI3_DISABLE=1
Enfin, dans Steam, allez dans votre bibliothèque et sélectionnez le jeu que vous voulez lancer avec Nvidia. Faites propriétés > DÉFINIR LES OPTIONS DE LANCEMENT > entrez LD_PRELOAD="libpthread.so.0 libGL.so.1" _GL_THREADED_OPTIMIZATIONS=1 optirun %command%
.