Installation du pilote Nvidia avec Steam

Tags: #<Tag:0x00007f63e51d0628> #<Tag:0x00007f63e51d0510> #<Tag:0x00007f63e51d0448>

Bon je vais essayer d’installer bumblebee et je vous tiens au courant.

@xddj, tu ferais bien de donner le modèle exact de ton portable, histoire que l’on puisse se rencarder davantage et éviter éventuellement d’autres pertes de temps.
google : debian nvidia hybride

Asus x552c

Ca y est, j’ai installé le pilote. Ca a booté, mais le problème c’est que dans le fichier xorg.conf, c’est toujours “nouveau” qui est marqué, mais pourtant, il est bien blacklisté j’ai vérifié avec lsmod, il n’apparait pas.

C’est quoi ce délire ?

edit: voilà la liste de tout ce que j’ai installé:

bbswitch-dkms bumblebee primus primus-libs primus-libs:i386
  primus-libs-ia32:i386 socat

bumblebee-nvidia glx-alternative-mesa glx-alternative-nvidia glx-diversions
  libnvidia-glcore libnvidia-ml1 libxnvctrl0 nvidia-alternative
  nvidia-installer-cleanup nvidia-kernel-common nvidia-kernel-dkms
  nvidia-kernel-support nvidia-legacy-check nvidia-modprobe nvidia-settings
  nvidia-support nvidia-vdpau-driver update-glx xserver-xorg-video-nvidia

Merci pour le modèle.

Désolé, mais même avec le recul avec Optimus, je ne suis pas un expert…
Mon portable Asus avec Optimus est avec Gentoo.
Je suis une bille avec Debian :frowning:
Il y a plusieurs façons de gérer une vidéo hybride.
Vois les résultats de la recherche citée plus haut.
nVidia en hybride + GNU/Linux c’est spécial…

Non mais je crois que je vais laisser tomber, car d’après ce que je lis sur le net, ce n’est pas très bien supporté. Et apparemment, on a plus besoin du fichier xorg.conf, voilà pourquoi mon système fonctionne quand même, mais en tout cas je n’ai pas plus de fps qu’avant, donc je vais tout enlever et remettre “nouveau”.

Merci quand même à vous.

Bonjour @xddj

C’est dommage de perdre le fil.

https://wiki.debian.org/fr/NvidiaGraphicsDrivers#Identification

# lspci -nn | grep -e 3D -e Display -e VGA
en gérant les guillemets ordinaires, c’est : # lspci -nn | egrep -i "3d|display|vga"

Note : si cette commande lspci renvoie en sortie plus d’une ligne, vous avez une puce graphique Optimus (hybrid), et les instructions sur cette page ne s’appliquent pas à vous. Veuillez plutôt consulter la page fr/Bumblebee.

https://wiki.debian.org/fr/Bumblebee :

Avis aux utilisateurs de versions de Debian supérieures à Wheezy : les paquets de Bumblebee sont disponibles directement dans les archives Debian. Vous pouvez allez directement à la section Installation. Pour résumer, c’est maintenant très simple : il suffit d’installer bumblebee ou bumblebee-nvidia et primus.

https://wiki.debian.org/fr/Bumblebee#Installation :

Les utilisateurs de version de Debian supérieure à Wheezy peuvent tout installer à partir des dépôts officiels.

Pour ceux qui voudraient utiliser le pilote libre nouveau :

# apt-get install bumblebee primus

Pour ceux qui voudraient utiliser le pilote propriétaire nvidia (les sources contrib et non-free doivent être présente dans votre fichier sources-list) :

# apt-get install bumblebee-nvidia primus

Les utilisateurs d’un système 64 bits qui veulent profiter de Bumblebee avec primus lorsqu’ils exécutent des applications 32 bits devront aussi installer primus-libs:i386. Cela requiert la prise en charge de Multiarch.

édition :
primus-libs:i386 est obsolète ; il est remplacé par primus-libs-ia32
https://wiki.debian-fr.xyz/NVidia_Optimus_Bumblebee#Ajout_support_architecture_32_bits

https://wiki.debian.org/fr/Bumblebee#Post-installation :

Vous devez ajouter votre utilisateur au groupe bumblebee pour pouvoir utiliser optirun, c’est-à-dire exécuter la commande

# adduser $USER bumblebee

où $USER correspond à votre nom d’utilisateur. N’oubliez pas de vous déconnecter puis de vous reconnecter pour cette modification soit prise en compte.

Si sudo est configuré pour votre utilisateur courant, c’est-à-dire si votre utilisateur est membre du groupe sudo, cette étape n’est pas nécessaire (le script post-installation du paquet bumblebee se charge d’ajouter automatiquement les utilisateurs de sudo au groupe bumblebee). C’est probablement la raison pour laquelle Bumblebee marche directement avec Ubuntu mais pas avec Debian, avec la même configuration d’origine, en fait Ubuntu installe sudo par défaut ; ce qui n’est pas le cas de Debian. Pour être clair, sudo n’est pas nécessaire pour utiliser bumblebee ; juste; il simplifie les choses en rendant l’addition manuelle de l’utilisateur courant au groupe bumblebee inutile.

https://wiki.debian.org/fr/Bumblebee#Utilisation :

Pour exécuter vos applications avec la carte indépendante NVIDIA, entrez dans un terminal :

$ optirun [options] <application> [application-parameters]

Exemple:

$ optirun glxgears -info

Pour trouver la liste des options de optirun, ouvrez la page du manuel avec la commande man optirun ou exécutez :

$ optirun --help

https://wiki.debian.org/fr/Bumblebee#Gestion_de_l.27alimentation :

Un des buts principaux du projet n’est pas seulement de permettre l’usage du GPU indépendant pour le rendu, mais aussi d’activer la gestion d’alimentation intelligente du dGPU (ndr: discrete GPU) quand il n’est pas utilisé. Pour cela, avec Bumblebee, on utilise soit le module bbswitch soit le module expérimental du noyau vga_switcheroo.

Il existe un paquet bbswitch pour Debian qui est automatiquement installé quand on installe bumblebee à partir des dépôts.

Depuis la version 3.0 de Bumblebee, cette fonctionnalité est activée par défaut et utilise bbswitch. Cela permet une gestion automatique de l’alimentation, sans avoir besoin d’une configuration particulière. Si la gestion de l’alimentation ne fonctionne pas sur votre portable, rendez-vous à la page Power Management (PM), pour aider à améliorer Bumblebee.

Voir aussi les problèmes courants : https://wiki.debian.org/fr/Bumblebee#Probl.2BAOg-mes_courants
.

Pour mon système, sans commande optirun en cours, j’ai ma nVidia discrète éteinte :

$ cat /proc/acpi/bbswitch 
0000:01:00.0 OFF

et pas de module nvidia chargé :

# lsmod | grep nvidia
# 

Avec la commande $ optirun glxgears -info
Ou avec la commande $ optirun glxspheres64

La carte est allumée,

$ cat /proc/acpi/bbswitch 
0000:01:00.0 ON

les modules sont chargés,

# lsmod | grep nvidia
nvidia_drm             40960  1
nvidia_modeset       1077248  5 nvidia_drm
nvidia              13852672  234 nvidia_modeset

Curieusement, je ne constate pas une valeur FPS ou Mpixels/sec supérieure avec l’emploi de optirun pour ces deux commandes.

Tu dois pouvoir lancer ton csgo avec optirun et constater une très nette montée en FPS ; normalement.
C’est l’objectif.

Je vois la différence pour la lecture de vidéos sans saccade et aussi pour une visualisation fluide de l’animation des vents du site https://www.ventusky.com/ sans faire souffler mon ordi portable comme un diable.

Je ne joue pas avec mon portable et la nvidia discrète reste bien souvent éteinte.
Avant d’avoir bbswitch et bumblebee en place, cette nvidia discrète était constamment allumée sans que je puisse l’utiliser ni l’éteindre ; Cela faisait chauffer le portable pour rien.

C’est un bonheur de la savoir éteinte avec le fonctionnement 24/365.

Je souhaite que tu parviennes à un bon FPS pour ton jeu.
Je ne peux pas vraiment t’aider pour le fichier de configuration xorg.conf et tant mieux si il n’y a plus besoin de s’en occuper.
.

n73sm ~ # lspci -nn | egrep -i "3d|display|vga"
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108M [GeForce GT 620M/630M/635M/640M LE] [10de:0de9] (rev a1)

Merci à toi pour toutes ces infos, je vais retenter l’installer plus tard. Je vous tiendrais au courant.

Malheureusement je crois que l’installation du pilote donnera le même résultat que la dernière fois c’est à dire le même nombre de fps que le pilote “nouveau”.
Car mon frère à un pc sous Windows 10 avec une nvidia 920m, donc plus puissante que la mienne et pourtant, il a le même nombre de fps que moi sous csgo…
Donc je ne vais pas retenter d’installer le pilote propriétaire.
Merci quand même beaucoup à toi pour toutes ces explications qui serviront sans doute à d’autres personnes.

J’ai retenter le coup et voilà ce que ça me dit:

root@localhost:~# optirun glxgears -info
No protocol specified
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
/usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
root@localhost:~# 
root@localhost:/home/slack# adduser $slack bumblebee
adduser : Le groupe « bumblebee » existe déjà.
root@localhost:/home/slack# 
@localhost:~$ lspci -nn | egrep -i "3d|display|vga"
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)
01:00.0 3D controller [0302]: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] [10de:1140] (rev ff)
@localhost:~$
root@localhost:~# optirun glxspheres64
[  307.950568] [ERROR]Error running "glxspheres64": No such file or directory
root@localhost:~# 
root@localhost:~# cat /proc/acpi/bbswitch
0000:01:00.0 OFF
root@localhost:~# 

lsmod | grep nvidia
(rien) (je n’ai aucun module nvidia chargés)

root@localhost:~# adduser $USER bumblebee
Ajout de l'utilisateur « root » au groupe « bumblebee »...
Adding user root to group bumblebee
Fait.
root@localhost:~# 

(ça ne change rien au problème, rien de fonctionne)

La seule commande qui fonctionne c’est celle ci:

optirun -b none nvidia-settings -c :8

Que j’ai trouvé sur ce site: https://wiki.archlinux.org/index.php/bumblebee
Ce qui m’a ouvert le panneau de configuration Nvidia où j’ai tout réglé sur “performance” et j’ai constaté une net monté en fps, ce qui est étrange car aucun module Nvidia n’est chargés sur mon système… Je n’y comprend plus rien…

FInalement cette commande à fonctionné:

gpasswd -a user bumblebee

Que j’ai trouvé toujours sur le même site: https://wiki.archlinux.org/index.php/bumblebee

J’attends ta réponse avec impatience en espérant que tu pourras résoudre tout ces bugs.

A savoir que j’ai tenté d’installer toutes les modules Nvidia manuellement via modprobe, ils étaient visibles via un lsmod, ils se sont tous installés mais ils ont tous disparus peut de temps après. Je ne sais pas pourquoi.

Si ton utilisateur courant est slack ; il faut faire :

(en root) # adduser slack bumblebee

sans taper le # et sans le symbole $ avant slack.

Puis fermer les terminaux.
Puis slack doit ouvrir un nouveau terminal pour faire partie du groupe bumblebee ; Pour la prise en compte.

Ensuite optirun peut être lancé par ton utilisateur courant slack, mais pas en root !

Apparemment, au moins un de ces éléments suivants manque pour lancer optirun glxgears -info

/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

libGL.so.1 peut être situé à un - ou plusieurs autres - emplacement(s) dans ton système ;
c’est visible avec cette commande utilisée plus loin :

(en root) # ldconfig -p | grep libGL.so.1

Je ne sais pas comment les installer ni si ces éléments sont indispensables pour faire fonctionner optirun.
Installation de VirtualGL est ma meilleure piste.

voir aussi : https://wiki.debian-fr.xyz/NVidia_Optimus_Bumblebee#libGL.so.1 (à appliquer)

apt-get -s install virtualgl
Aucune version du paquet virtualgl n’est disponible, mais il existe dans la base de données. Cela signifie en général que le paquet est manquant, qu’il est devenu obsolète ou qu’il n’est disponible que sur une autre source

glxspheres64 / glxspheres n’est pas encore installé sur ton système.


Indique la même procédure que pour “Installation de VirtualGL”.

Si optirun glxgears -info échoue encore après l’installation de VirtualGL & des paquets indiqués au “voir aussi” et que libGL.so.1 existe dans ton système, il sera alors peut-être possible de lier avec succès ce libGL.so.1 à l’emplacement où la commande le cherche.

Après l’installation de VirtualGL & des paquets indiqués au “voir aussi” , exécuter :

(en root) # ldconfig -p | grep libGL.so.1
et donner le résultat.

Le bon point est que ta carte nVidia est éteinte quand aucune commande optirun ne tourne.

Tu as ajouté l’utilisateur root au groupe bumblebee, ce n’est pas utile mais c’est pas grave.

Tu as ajouté un utilisateur nommé user au groupe bumblebee, ce n’est pas utile mais c’est pas grave.

Dans mon système, les modules nvidia ne sont chargés automatiquement que lorsqu’une commande optirun tourne et cat /proc/acpi/bbswitch indique ON que lorsqu’une commande optirun tourne.

Ce n’est pas utile de charger les modules nvidia à la main.

slack pourrait essayer de lancer simplement nvidia-settings ;

optirun nvidia-settings

slack pourrait essayer de lancer simplement csgo ;

optirun /chemin/vers/executable/csgo

Quel environnement graphique de bureau utilises-tu ?

root@localhost:~# adduser slack bumblebee
L'utilisateur « slack » appartient déjà au groupe « bumblebee ».

Ca donne le même résultat avec slack.

root@localhost:~# ldconfig -p | grep libGL.so.1
	libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
	libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/libGL.so.1

La libGL.so.1 a l’air d’être installé ? C’est bien ça que ça veut dire ?

Déjà essayé d’installer ces paquets, même résultat. J’étais déjà tombé sur ce tuto lors de mes recherches =)

Voilà ce que ça donne:

root@localhost:~# apt-get install libgl1-nvidia-glx libgl1-nvidia-glx:i386 nvidia-driver-libs nvidia-driver-libs-i386
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation : 

Les paquets suivants contiennent des dépendances non satisfaites :
 nvidia-driver-libs : Dépend: libgl1-nvidia-glvnd-glx (= 390.77-1) mais ne sera pas installé
                      Casse: libgl1-nvidia-glx mais 390.77-1 devra être installé
                      Casse: libgl1-nvidia-glx:i386 mais 390.77-1 devra être installé
                      Recommande: nvidia-vulkan-icd (= 390.77-1) mais ne sera pas installé
 nvidia-driver-libs-i386:i386 : Dépend: nvidia-driver-libs:i386 mais ne sera pas installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

J’ai donc essayé d’installé les paquets un par un et voilà les deux seuls paquets que j’ai pu installer:

libgl1-nvidia-glx libgl1-nvidia-glx:i386

Si je tente d’installer nvidia-driver-libs, mon système veut me virer primus et m’installer tout un tas de paquet sans doute inutile, voilà ce que ça donne:

root@localhost:~# apt-get install nvidia-driver-libs
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  primus-libs socat
Veuillez utiliser « apt autoremove » pour les supprimer.
Les paquets supplémentaires suivants seront installés : 
  libegl-mesa0:i386 libegl-nvidia0 libegl-nvidia0:i386 libegl1:i386
  libgbm1:i386 libgl1-nvidia-glvnd-glx libgl1-nvidia-glvnd-glx:i386
  libgles-nvidia2 libgles-nvidia2:i386 libgles2:i386 libglx-nvidia0
  libglx-nvidia0:i386 libnvidia-cfg1 libnvidia-cfg1:i386
  libnvidia-egl-wayland1 libnvidia-egl-wayland1:i386 libnvidia-eglcore
  libnvidia-eglcore:i386 libopengl0:i386 libvulkan1:i386
  libwayland-client0:i386 libwayland-server0:i386 nvidia-driver-libs:i386
  nvidia-driver-libs-i386:i386 nvidia-egl-common nvidia-egl-icd
  nvidia-egl-icd:i386 nvidia-egl-wayland-common nvidia-egl-wayland-icd
  nvidia-egl-wayland-icd:i386 nvidia-vulkan-common nvidia-vulkan-icd
  nvidia-vulkan-icd:i386
Paquets suggérés :
  vulkan-utils vulkan-utils:i386
Les paquets suivants seront ENLEVÉS :
  libgl1-nvidia-glx libgl1-nvidia-glx:i386 primus
Les NOUVEAUX paquets suivants seront installés :
  libegl-mesa0:i386 libegl-nvidia0 libegl-nvidia0:i386 libegl1:i386
  libgbm1:i386 libgl1-nvidia-glvnd-glx libgl1-nvidia-glvnd-glx:i386
  libgles-nvidia2 libgles-nvidia2:i386 libgles2:i386 libglx-nvidia0
  libglx-nvidia0:i386 libnvidia-cfg1 libnvidia-cfg1:i386
  libnvidia-egl-wayland1 libnvidia-egl-wayland1:i386 libnvidia-eglcore
  libnvidia-eglcore:i386 libopengl0:i386 libvulkan1:i386
  libwayland-client0:i386 libwayland-server0:i386 nvidia-driver-libs
  nvidia-driver-libs:i386 nvidia-driver-libs-i386:i386 nvidia-egl-common
  nvidia-egl-icd nvidia-egl-icd:i386 nvidia-egl-wayland-common
  nvidia-egl-wayland-icd nvidia-egl-wayland-icd:i386 nvidia-vulkan-common
  nvidia-vulkan-icd nvidia-vulkan-icd:i386
0 mis à jour, 34 nouvellement installés, 3 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/21,5 Mo dans les archives.
Après cette opération, 80,2 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] n

slack@localhost:~$ optirun nvidia-settings

ERROR: Unable to find display on any available system

Il n’y a que cette commande qui fonctionne pour lancer nvidia-settings:

optirun -b none nvidia-settings -c :8

Cette commande m’ouvre le panneau de configuration Nvidia où je peux tout contrôler, y compris voir la température de ma carte graphique qui est à environ 50°C.

Par contre, j’ai quand même une erreur qui apparait dans le terminal:

slack@localhost:~$ optirun -b none nvidia-settings -c :8

ERROR: nvidia-settings could not find the registry key file. This file should
       have been installed along with this driver at either
       /usr/share/nvidia/nvidia-application-profiles-390.77-key-documentation
       or /usr/share/nvidia/nvidia-application-profiles-key-documentation. The
       application profiles will continue to work, but values cannot be
       prepopulated or validated, and will not be listed in the help text.
       Please see the README for possible values and descriptions.

Comment annuler ces commandes inutile que j’ai exécuté ?

Gnome (debian testing).

J’attends déjà ta réponse pour tout ces opérations que j’ai tenté avant de tester virtualgl.

edit: TIens, je viens de retenter la commande optirun glxgears -info, et cette fois ça a fonctionné, par contre un truc s’est ouvert et s’est refermé direct. Voilà ce que ça donne dans le terminal:

slack@localhost:~$ optirun glxgears -info
GL_RENDERER   = GeForce GT 710M/PCIe/SSE2
GL_VERSION    = 4.6.0 NVIDIA 390.77
GL_VENDOR     = NVIDIA Corporation
GL_EXTENSIONS = GL_AMD_multi_draw_indirect GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_blend_equation_advanced GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NV_shader_thread_group GL_KHR_blend_equation_advanced GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum 
VisualID 705, 0x2c1

Je crois que ça fonctionne grâce à ces deux paquets que j’ai installé: libgl1-nvidia-glx libgl1-nvidia-glx:i386

Voilà la liste de mes modules chargés juste après un redémarrage (si ça peut t’aider à comprendre):

slack@localhost:~$ lsmod
Module                  Size  Used by
fuse                  118784  3
pci_stub               16384  1
vboxpci                28672  0
vboxnetadp             28672  0
vboxnetflt             32768  0
vboxdrv               483328  3 vboxpci,vboxnetadp,vboxnetflt
bbswitch               16384  0
ip6table_filter        16384  0
ip6_tables             32768  1 ip6table_filter
ipt_REJECT             16384  1
nf_reject_ipv4         16384  1 ipt_REJECT
nf_log_ipv4            16384  8
nf_log_common          16384  1 nf_log_ipv4
xt_LOG                 16384  8
nf_conntrack_ipv4      16384  5
nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
xt_limit               16384  10
xt_tcpudp              16384  20
xt_NFQUEUE             16384  2
xt_conntrack           16384  5
nf_conntrack          155648  2 xt_conntrack,nf_conntrack_ipv4
libcrc32c              16384  1 nf_conntrack
iptable_filter         16384  1
binfmt_misc            20480  1
nls_ascii              16384  1
nls_cp437              20480  1
vfat                   24576  1
fat                    77824  1 vfat
uvcvideo              114688  0
videobuf2_vmalloc      16384  1 uvcvideo
videobuf2_memops       16384  1 videobuf2_vmalloc
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_common       49152  2 videobuf2_v4l2,uvcvideo
videodev              208896  3 videobuf2_v4l2,uvcvideo,videobuf2_common
media                  45056  2 videodev,uvcvideo
intel_rapl             24576  0
arc4                   16384  2
ath9k                 118784  0
snd_hda_codec_hdmi     61440  1
x86_pkg_temp_thermal    16384  0
intel_powerclamp       16384  0
coretemp               16384  0
ath9k_common           20480  1 ath9k
kvm_intel             233472  0
snd_hda_codec_realtek   110592  1
ath9k_hw              487424  2 ath9k_common,ath9k
kvm                   724992  1 kvm_intel
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
ath                    32768  3 ath9k_common,ath9k,ath9k_hw
irqbypass              16384  1 kvm
mac80211              827392  1 ath9k
asus_nb_wmi            28672  0
asus_wmi               32768  1 asus_nb_wmi
wmi_bmof               16384  0
mxm_wmi                16384  0
sparse_keymap          16384  1 asus_wmi
crct10dif_pclmul       16384  0
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
rtsx_pci_ms            20480  0
intel_cstate           16384  0
cfg80211              774144  4 ath9k_common,ath9k,ath,mac80211
intel_uncore          131072  0
snd_hda_intel          45056  6
intel_rapl_perf        16384  0
efi_pstore             16384  0
memstick               16384  1 rtsx_pci_ms
snd_hda_codec         151552  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
pcspkr                 16384  0
joydev                 24576  0
evdev                  28672  27
i915                 1699840  20
efivars                20480  1 efi_pstore
rfkill                 28672  5 asus_wmi,cfg80211
sg                     36864  0
snd_hda_core           94208  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
serio_raw              16384  0
snd_hwdep              20480  1 snd_hda_codec
iTCO_wdt               16384  0
iTCO_vendor_support    16384  1 iTCO_wdt
drm_kms_helper        192512  1 i915
snd_pcm               118784  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
mei_me                 45056  0
mei                   110592  1 mei_me
drm                   462848  21 drm_kms_helper,i915
video                  45056  2 asus_wmi,i915
snd_timer              36864  1 snd_pcm
shpchp                 40960  0
snd                    94208  20 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
wmi                    28672  3 asus_wmi,wmi_bmof,mxm_wmi
soundcore              16384  1 snd
battery                24576  0
i2c_algo_bit           16384  1 i915
asus_wireless          16384  0
button                 16384  1 i915
ac                     16384  0
loop                   32768  0
parport_pc             32768  0
ppdev                  20480  0
sunrpc                421888  1
lp                     20480  0
parport                57344  3 parport_pc,lp,ppdev
efivarfs               16384  1
ip_tables              28672  1 iptable_filter
x_tables               45056  10 ip6table_filter,xt_conntrack,iptable_filter,xt_LOG,xt_tcpudp,ip6_tables,ipt_REJECT,ip_tables,xt_limit,xt_NFQUEUE
autofs4                49152  2
ext4                  737280  1
crc16                  16384  1 ext4
mbcache                16384  1 ext4
jbd2                  118784  1 ext4
crc32c_generic         16384  0
fscrypto               32768  1 ext4
ecb                    16384  0
crypto_simd            16384  0
cryptd                 28672  2 crypto_simd,ghash_clmulni_intel
glue_helper            16384  0
aes_x86_64             20480  1
hid_generic            16384  0
usbhid                 57344  0
hid                   135168  2 usbhid,hid_generic
sr_mod                 28672  0
cdrom                  69632  1 sr_mod
sd_mod                 53248  4
rtsx_pci_sdmmc         28672  0
mmc_core              172032  1 rtsx_pci_sdmmc
ahci                   40960  3
libahci                40960  1 ahci
xhci_pci               16384  0
crc32c_intel           24576  2
libata                278528  2 libahci,ahci
ehci_pci               16384  0
ehci_hcd               94208  1 ehci_pci
xhci_hcd              262144  1 xhci_pci
psmouse               167936  0
rtsx_pci               73728  2 rtsx_pci_sdmmc,rtsx_pci_ms
lpc_ich                28672  0
i2c_i801               28672  0
scsi_mod              253952  4 sd_mod,libata,sg,sr_mod
r8169                  94208  0
mii                    16384  1 r8169
usbcore               290816  6 xhci_hcd,ehci_pci,usbhid,uvcvideo,ehci_hcd,xhci_pci
usb_common             16384  1 usbcore
thermal                20480  0

Car il reste toujours le problème des modules Nvidia qui ne se chargent pas…

oui, sauf que primus la cherche dans ces chemins :

/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

As-tu réessayé # ldconfig -p | grep libGL.so.1 après avoir installé ces paquets ?

Je pense que tu as bien fait de ne pas procéder à cette installation.

Entendu.
Pour le moment, l’erreur reste peu compréhensible (il faut chercher) mais elle ne me semble pas empêcher optirun de fonctionner.

Installe VirtualGL et retente la commande.
N’oublie pas de réessayer # ldconfig -p | grep libGL.so.1

La liste de tes modules chargés est bonne à prendre, on verra bien.

Je pense que si $ optirun glxgears -info reste ouvert en affichant des roues dentées colorées tournant, les modules seront chargés.

édition : tente $ glxgears -info seul aussi, sans optirun.
édition 2 : redémarre le service bumblebee avant d’essayer des commandes optirun ;
# systemctl restart bumblebee

Il vaut mieux y consacrer un autre sujet.

Comment ça cela n’a pas d’importance ?
SI ils ne sont pas affichés lors d’un lsmod, ça veut dire qu’ils ne sont pas chargés non ? Donc qu’ils ne fonctionnent pas ?

Par contre voilà le résultat de cette commande:

root@localhost:~# systemctl restart bumblebee
Failed to restart bumblebee.service: Unit bumblebee.service not found.

C’est quoi ce délire ? Il ne trouve pas bumblebee…

Yes !! :slight_smile:

C’est propre à la distribution et comment elle est installée et configurée ; cela n’a pas d’importance.

édition (rappel) :

Les modules nvidia ne sont chargés automatiquement que lorsqu’une commande optirun / primusrun tourne et cat /proc/acpi/bbswitch n’indique ON que lorsqu’une commande optirun / primusrun tourne. Les modules sont déchargés automatiquement à l’arrêt de la commande optirun / primusrun.

Ce comportement peut être modifié avec les options du module bbswitch.

Comment ça cela n’a pas d’importance ?
SI ils ne sont pas affichés lors d’un lsmod, ça veut dire qu’ils ne sont pas chargés non ? Donc qu’ils ne fonctionnent pas ?

Par contre voilà le résultat de cette commande:

root@localhost:~# systemctl restart bumblebee
Failed to restart bumblebee.service: Unit bumblebee.service not found.

C’est quoi ce délire ? Il ne trouve pas bumblebee…

Tu avais 800 FPS pour $ optirun glxgears -info et pour moi c’est un bon indicateur.
Tu as effacé cet extrait ; dommage.

Je ne connais pas le fonctionnement précis des modules avec Debian.

Essaie $ optirun glxspheres ou $ optirun glxspheres64
Et $ glxspheres ou $ glxspheres64

Vérifie l’état de la nVidia pendant l’exécution d’une commande optirun avec ;
$ cat /proc/acpi/bbswitch

J’ai dû me tromper pour l’existence du service bumblebee.

édition : le service se nomme bumblebeed (avec un d final)

Redémarrer le service blumbebee
Selon votre version de debian :

Soit : /etc/init.d/bumblebeed restart
Soit : service bumblebeed restart
Soit : systemctl restart bumblebeed

Il est peut-être temps d’essayer de lancer csgo avec optirun.

slack@localhost:~$ optirun glxspheres
/usr/bin/vglrun: 257: exec: glxspheres: not found
slack@localhost:~$ optirun glxspheres64
/usr/bin/vglrun: 257: exec: glxspheres64: not found
slack@localhost:~$ glxspheres
bash: glxspheres : commande introuvable
slack@localhost:~$ glxspheres64
bash: glxspheres64 : commande introuvable

(pendant optirun glxgears -info)

slack@localhost:~$ cat /proc/acpi/bbswitch
0000:01:00.0 ON

En tout cas, ça ne change strictement rien dans mon jeux, je suis toujours à environ 20 fps comme avec “nouveau”. Pour moi, il faut trouver comment charger ces modules, sinon ça ne fonctionnera jamais.

Le programme doit être appelé avec son chemin complet.
Il faut localiser soit glxspheres ou glxspheres64.

$ optirun /chemin/vers/executable/glxspheres (ou glxspheres64)

Comment lances-tu ton jeu ?
$ optirun /chemin/vers/executable/csgo est la bonne méthode.

ok, mais je ne connais pas le chemin complet.

Par contre je viens de me rendre compte qu’il y a deux fichier xorg.conf dans /etc/bumblebee
Un qui s’appelle xorg.conf.nouveau et un autre qui s’appelle xorg.conf.nvidia

Et aussi un fichier qui s’appelle bumblebee.conf
Voilà sont contenu:

# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d
# Xorg binary to run
XorgBinary=/usr/lib/xorg/Xorg

## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus:/usr/lib/primus:/usr/lib32/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false


# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
#         bbswitch - new in BB 3, recommended if available
#       switcheroo - vga_switcheroo method, use at your own risk
#             none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/x86_64-linux-gnu/nvidia:/usr/lib/i386-linux-gnu/nvidia:/usr/lib/nvidia
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia/nvidia,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Je vais essayer

Et voilà le xorg.conf.nvidia

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
#   as you see in the commented example.
#   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
#   BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
    Option "UseEDID" "false"
    Option "UseDisplayDevice" "none"
EndSection

https://askubuntu.com/questions/344216/glxspheres-not-found-how-to-install indique :

Run glxspheres:

cd /opt/VirtualGL/bin/

./glxspheres

OR

/opt/VirtualGL/bin/glxspheres