web-dev-qa-db-fra.com

Bumblebee avec mises à jour nvidia-331. Fonctionne avec "--driver nvidia" mais ne fonctionnera pas comme service

J'essaie de configurer un bourdon sur Ubuntu 12.04. J'utilise également le dernier pilote nvidia car 319 n'est plus disponible.

Voici mes fichiers de configuration:

/ etc/bumblebee/bumblebee.conf:

    # 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=nvidia 
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d

## 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
# 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-331-updates
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-331-updates:/usr/lib32/nvidia-331-updates
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-331-updates/xorg,/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

/ etc/bumblebee/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

Ensuite, je vous montre quelques choses mystiques:

Première commande:

    $ Sudo /usr/sbin/bumblebeed -vv
[ 4828.053052] [DEBUG]Found card: 01:00.0 (discrete)
[ 4828.053093] [DEBUG]Found card: 00:02.0 (integrated)
[ 4828.053103] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 4828.053656] [INFO]Configured driver: nvidia 
[ 4828.053678] [DEBUG]Skipping auto-detection, using configured driver 'nvidia '
[ 4828.053743] [DEBUG]bbswitch has been detected.
[ 4828.053753] [INFO]Switching method 'bbswitch' is available and will be used.
[ 4828.053762] [DEBUG]Active configuration:
[ 4828.053770] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 4828.053778] [DEBUG] X display: :8
[ 4828.053786] [DEBUG] LD_LIBRARY_PATH: 
[ 4828.053794] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 4828.053802] [DEBUG] pidfile: /var/run/bumblebeed.pid
[ 4828.053810] [DEBUG] xorg.conf file: /etc/bumblebee/xorg.conf.DRIVER
[ 4828.053818] [DEBUG] xorg.conf.d dir: /etc/bumblebee/xorg.conf.d
[ 4828.053826] [DEBUG] ModulePath: 
[ 4828.053833] [DEBUG] GID name: bumblebee
[ 4828.053841] [DEBUG] Power method: auto
[ 4828.053849] [DEBUG] Stop X on exit: 1
[ 4828.053857] [DEBUG] Driver: nvidia 
[ 4828.053865] [DEBUG] Driver module: nvidia 
[ 4828.053872] [DEBUG] Card shutdown state: 1
[ 4828.054045] [DEBUG]Process /sbin/modprobe started, PID 3031.
[ 4828.054143] [DEBUG]Hiding stderr for execution of /sbin/modprobe
[ 4828.056711] [DEBUG]SIGCHILD received, but wait failed with No child processes
[ 4828.056777] [ERROR]Module 'nvidia ' is not found.

Deuxième commande:

    $ Sudo /usr/sbin/bumblebeed -vv --driver nvidia
[ 4742.214895] [DEBUG]Found card: 01:00.0 (discrete)
[ 4742.214970] [DEBUG]Found card: 00:02.0 (integrated)
[ 4742.215000] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 4742.215609] [INFO]Configured driver: nvidia 
[ 4742.215660] [DEBUG]Skipping auto-detection, using configured driver 'nvidia'
[ 4742.215885] [DEBUG]Process /sbin/modprobe started, PID 3023.
[ 4742.215981] [DEBUG]Hiding stderr for execution of /sbin/modprobe
[ 4742.218520] [DEBUG]SIGCHILD received, but wait failed with No child processes
[ 4742.218667] [DEBUG]bbswitch has been detected.
[ 4742.218730] [INFO]Switching method 'bbswitch' is available and will be used.
[ 4742.218769] [DEBUG]Active configuration:
[ 4742.218805] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 4742.218834] [DEBUG] X display: :8
[ 4742.218871] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia-331-updates:/usr/lib32/nvidia-331-updates
[ 4742.218908] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 4742.218949] [DEBUG] pidfile: /var/run/bumblebeed.pid
[ 4742.218981] [DEBUG] xorg.conf file: /etc/bumblebee/xorg.conf.nvidia
[ 4742.219010] [DEBUG] xorg.conf.d dir: /etc/bumblebee/xorg.conf.d
[ 4742.219040] [DEBUG] ModulePath: /usr/lib/nvidia-331-updates/xorg,/usr/lib/xorg/modules
[ 4742.219074] [DEBUG] GID name: bumblebee
[ 4742.219102] [DEBUG] Power method: auto
[ 4742.219136] [DEBUG] Stop X on exit: 1
[ 4742.219172] [DEBUG] Driver: nvidia
[ 4742.219202] [DEBUG] Driver module: nvidia-331-updates
[ 4742.219238] [DEBUG] Card shutdown state: 1
[ 4742.219431] [DEBUG]Process /sbin/modprobe started, PID 3024.
[ 4742.219517] [DEBUG]Hiding stderr for execution of /sbin/modprobe
[ 4742.221990] [DEBUG]SIGCHILD received, but wait failed with No child processes
[ 4742.222054] [DEBUG]Configuration test passed.
[ 4742.222937] [INFO]/usr/sbin/bumblebeed 3.2.1 started
[ 4742.223214] [INFO]Switching dedicated card OFF [bbswitch]
[ 4742.404703] [INFO]Initialization completed - now handling client requests

Et c'est du travail!

Je ne comprends pas pourquoi la première commande n'est pas réalisable. Dans bumblebee.conf, la valeur "driver" est "nvidia". Pourquoi dans la première commande, il essaie de charger le module de pilote "nvidia" au lieu de "nvidia-331-updates"? Les deux commandes doivent être utilisables ou non. Ensemble. Comment résoudre ce problème?

1
Andrew

changement LibraryPath=/usr/lib/nvidia-331-updates:/usr/lib32/nvidia-331-updates à LibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-current

changement [driver-nvidia] à

Driver=nvidia [driver-nvidia]

changement [driver-nouveau] à

Driver=nouveau [driver-nouveau]

changement KernelDriver=nvidia-331-updates à KernelDriver=nvidia_331_updates ou KernelDriver=nvidia

CETTE LOGIQUE BUMBLEBEE -.-

UPDATE Essayez ceci: change LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates à LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates

Ma configuration Bumblebee:

 # Fichier de configuration pour Bumblebee. Les valeurs ne doivent ** pas ** être mises entre guillemets 
 
 ## Options du serveur. Toute modification apportée dans cette section nécessite un redémarrage du serveur 
 # Pour prendre effet. 
 [Bumblebeed] 
 # Le numéro AFFICHAGE du serveur Xorg secondaire 
 VirtualDisplay =: 8 
 # Le serveur Xorg inutilisé doit-il continuer à fonctionner? Définissez cette valeur sur true si l'attente de 
 # Pour que X soit prêt est trop longue et ne nécessite pas du tout de gestion de l'alimentation. 
 KeepUnusedXServer = false 
 # Le nom du serveur Bumbleblee nom du groupe (nom GID) 
 ServerGroup = bourdon 
 # État d'alimentation de la carte à la sortie. Définissez sur false si la carte doit être activée lorsque le serveur Bumblebee 
 # Se ferme. 
 TurnCardOffAtExit = false 
 # Le comportement par défaut de l'option '-f' sur optirun. S'il est défini sur "true", '-f' sera 
 # Ignoré. 
 NoEcoModeOverride = false 
 # Le pilote utilisé par le serveur Bumblebee. Si cette valeur n'est pas définie (ou vide), 
 # Détection automatique est effectuée. Les pilotes disponibles sont nvidia et nouveau 
 # (Voir également les sections spécifiques au pilote ci-dessous) 
 Driver = 
 # Répertoire avec un fichier de configuration factice à passer en tant que -configdir au secondaire X 
 XorgConfDir =/etc/bumblebee/xorg.conf.d 
 
 ## Options client. Prend effet lors du prochain optirun exécuté. 
 [Optirun] 
 # Accélération/rendu du pont, les valeurs possibles sont auto, virtualgl et 
 # Primus. 
 Bridge = auto 
 # La méthode utilisée pour VirtualGL pour transporter les trames entre les serveurs X. 
 # Les valeurs possibles sont proxy, jpeg, rgb, xv et yuv. 
 VGLTransport = proxy 
 # Liste des chemins recherchés pour le primus libGL.so.1 lors de l'utilisation de 
 # Le pont primus 
 PrimusLibraryPath =/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus 
 # Le programme doit-il s'exécuter sous optirun même si le serveur Bumblebee ou la carte nvidia 
 # n'est pas disponible? 
 AllowFallbackToIGC = false 
 
 
 # Les paramètres spécifiques au pilote sont regroupés sous [nom-pilote]. Les sections sont 
 # Analysées si le paramètre Driver dans [bumblebeed] est défini sur NAME (ou si la détection automatique - 
 # Se résout en NAME). 
 # PMMethod: méthode à utiliser pour économiser de l'énergie en désactivant la carte nvidia, les valeurs 
 # valides sont: détection automatique de la méthode PM à utiliser 
 # bbswitch - nouvelle dans BB 3, recommandé si disponible 
 # switcheroo - méthode vga_switcheroo, utilisez à vos risques et périls 
 # aucun - désactivez PM complètement 
 # https: // github .com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods 
 
 ## Section avec les options spécifiques au pilote nvidia, uniquement analysée si Driver = nvidia 
 [pilote -nvidia] 
 # Nom du module à charger, par défaut Pilote s'il est vide ou non défini 
 KernelDriver = nvidia_331_updates 
 PMMethod = auto 
 # chemin séparé par deux-points vers le nvidia bibliothèques 
 LibraryPath =/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates 
 # chemin séparé par des virgules du répertoire ectoire contenant nvidia_drv.so et le chemin des modules Xorg 
 # par défaut 
 XorgModulePath =/usr/lib/nvidia-331-updates/xorg,/usr/lib/xorg/modules 
 XorgConfFile =/etc/bumblebee/xorg.conf.nvidia 
 
 ## Section avec les options spécifiques au nouveau pilote, uniquement analysée si Driver = nouveau 
 [Pilote-nouveau] 
 KernelDriver = nouveau 
 PMMethod = auto 
 XorgConfFile =/etc/bumblebee/xorg.conf.nouveau 

Mon xorg.conf.nvidia:

 # nvidia-settings: fichier de configuration X généré par nvidia-settings 
 # nvidia-settings: version 331.20 (buildd @ roseapple) lun. 3 févr. 15:07:22 UTC 2014 
 
 Section "ServerLayout" 
 Identifiant "Layout0" 
 Screen 0 "Screen0" 0 0 
 InputDevice "Keyboard0" "CoreKeyboard" 
 InputDevice "Mouse0 "" CorePointer "
 Option" AutoAddDevices "" false "
 Option" AutoAddGPU "" false "
 Option" Xinerama "" 0 "
 EndSection 
 
 Section "InputDevice" 
 # Généré à partir de l'identifiant 
 Par défaut "Keyboard0" 
 Pilote "kbd" 
 EndSection 
 
 Section "InputDevice" 
 # Généré par défaut 
 Identifiant "Mouse0" 
 Pilote "mouse" 
 Option "Protocol" "auto" 
 Option "Device" "/dev/psaux"
 Option" Emulate3Buttons "" no "
 Opt ion "ZAxisMapping" "4 5" 
 EndSection 
 
 Section "Device" 
 
 # Si le serveur X ne détecte pas automatiquement votre périphérique VGA , 
 # vous pouvez le définir manuellement ici. 
 # Pour obtenir le prop BusID, exécutez `lspci | egrep 'VGA | 3D'` et entrez les données 
 # comme vous le voyez dans l'exemple commenté. 
 # Ce paramètre peut être nécessaire sur certaines plates-formes avec plus d'un 
 # nvidia carte, ce qui peut confondre le pilote propriétaire (par exemple, 
 # essayant de s'approprier le mauvais périphérique). Également nécessaire sur Ubuntu 13.04. 
 # La définition de ProbeAllGpus sur false empêche le nouveau pilote propriétaire 
 # D'instance d'apparaître pour essayer de contrôler la carte graphique intégrée, 
 # Qui est déjà gérée à l'extérieur bumblebee. 
 # Cette option ne fait pas de mal et elle est requise sur les plates-formes exécutant 
 # plus d'une carte graphique nvidia avec le pilote propriétaire. 
 # (par exemple Macbook Pro pré- 2010 avec nVidia 9400M + 9600M GT). 
 # Si cette option n'est pas définie, le nouveau Xorg peut noircir l'écran et 
 # Le rendre inutilisable (sauf si vous avez un moyen d'exécuter killall Xorg) . 
 Identifiant "DiscreteNvidia" 
 Pilote "nvidia" 
 Nom du fournisseur "NVIDIA Corporation" 
 Option "ProbeAllGpus" "false" 
 Option "NoLogo" "true" 
 Option "UseEDID" "false" 
 Option "UseDisplayDevice" "none" 
 BusID "PCI: 01: 00: 0" 
 EndSection 
 [.__ __.] Section "Périphérique" 
 Identifiant "Périphérique0" 
 Pilote "nvidia" 
 Nom du fournisseur "NVIDIA Corporation" 
 Nom de la carte "GeForce GT 540M" 
 EndSection 
 
 Section "Écran" 
 Identifiant "Écran par défaut" 
 Dispositif "DiscreteNvidia" 
 EndSection 
 
 Section "Screen" 
 Identifiant "Screen0" 
 Device "Device0" 
 DefaultDepth 24 
 Option "UseDisplayDevice" "none" 
 Sous-section "Display "
 Virtual 1600 900 
 Profondeur 24 
 EndSubSection 
 EndSection 

Après une nouvelle installation de Bumblebee et Nvidia et DKMS etc.

  1. Créer une sauvegarde (s'il existe un fichier) Sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

  2. Tapez optirun -b none nvidia-settings -c :8 et enregistrez config xorg dans /etc/bumblebee/xorg.conf.nvidia

  3. nvidia-settings ne pas enregistrer dans /etc/bumblebee/xorg.conf.nvidia. Configuration à partir de nvidia-settings a été enregistré dans /etc/X11/xorg.conf

    Vous devez déplacer ce fichier vers la configuration de bumblebee xorg-nvidia. Tapez Sudo rm /etc/bumblebee/xorg.conf.nvidia && Sudo mv /etc/X11/xorg.conf /etc/bumblebee/xorg.conf.nvidia

  4. Redémarrer;)

ça marche pour moi

1
TheAifam5