Bumblebee mit nvidia-331-updates. Funktioniert mit „--driver nvidia“, aber nicht als Dienst

Bumblebee mit nvidia-331-updates. Funktioniert mit „--driver nvidia“, aber nicht als Dienst

Ich versuche, Bumblebee auf Ubuntu 12.04 einzurichten. Ich verwende auch den letzten NVIDIA-Treiber, da 319 nicht mehr verfügbar ist.

Dies sind meine Konfigurationsdateien:

/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

Dann zeige ich Ihnen ein paar mystische Dinge:

Erster Befehl:

    $ 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.

Zweiter Befehl:

    $ 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

Und es ist Arbeit!

Ich verstehe nicht, warum der erste Befehl nicht funktioniert. In bumblebee.conf ist der Wert für „driver“ „nvidia“. Warum wird im ersten Befehl versucht, das Treibermodul „nvidia“ statt „nvidia-331-updates“ zu laden? Beide Befehle müssen funktionieren oder nicht. Zusammen. Wie kann dieses Problem gelöst werden?

Antwort1

ändern LibraryPath=/usr/lib/nvidia-331-updates:/usr/lib32/nvidia-331-updatesLibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-current

ändern[driver-nvidia]

Driver=nvidia [driver-nvidia]

ändern[driver-nouveau]

Driver=nouveau [driver-nouveau]

ändern KernelDriver=nvidia-331-updatesin KernelDriver=nvidia_331_updatesoderKernelDriver=nvidia

DIESE LOGIK-HUMMEL -.-

AKTUALISIEREN Versuchen Sie Folgendes: Wechseln Sie LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updateszu LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates

Meine Bumblebee-Konfiguration:

# Konfigurationsdatei für Bumblebee. Werte sollten **nicht** in Anführungszeichen gesetzt werden

## Serveroptionen. Jede in diesem Abschnitt vorgenommene Änderung erfordert einen Serverneustart
# um wirksam zu werden.
[Hummel]
# Die DISPLAY-Nummer des sekundären Xorg-Servers
Virtuelle Anzeige =: 8
# Soll der nicht verwendete Xorg-Server weiterlaufen? Setzen Sie dies auf true, wenn er wartet
# bis X bereit ist, ist zu lang und erfordert überhaupt keine Energieverwaltung.
KeepUnusedXServer=false
# Der Name der Bumbleblee-Servergruppe (GID-Name)
ServerGroup=hummel
# Stromzustand der Karte beim Beenden. Auf „false“ setzen, wenn die Karte eingeschaltet sein soll, wenn Bumblebee
# Server wird beendet.
TurnCardOffAtExit=false
# Das Standardverhalten der Option '-f' bei optirun. Wenn '-f' auf "true" gesetzt wird,
# ignoriert werden.
NoEcoModeOverride=false
# Der vom Bumblebee-Server verwendete Treiber. Wenn dieser Wert nicht gesetzt (oder leer) ist,
# Es wird eine automatische Erkennung durchgeführt. Die verfügbaren Treiber sind NVIDIA und Nouveau.
# (Siehe auch die treiberspezifischen Abschnitte weiter unten)
Treiber=
# Verzeichnis mit einer Dummy-Konfigurationsdatei, die als -configdir an das sekundäre X übergeben wird
XorgConfDir=/etc/bumblebee/xorg.conf.d

## Client-Optionen. Werden beim nächsten ausgeführten Optirun wirksam.
[Optirun]
# Beschleunigungs-/Rendering-Brücke, mögliche Werte sind auto, virtualgl und
# Primus.
Brücke=auto
# Die von VirtualGL verwendete Methode zum Transport von Frames zwischen X-Servern.
# Mögliche Werte sind Proxy, JPEG, RGB, XV und YUV.
VGLTransport=Proxy
# Liste der Pfade, die bei Verwendung von libGL.so.1 nach der Primus-Datei durchsucht werden
# die Primusbrücke
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Soll das Programm unter optirun laufen, auch wenn Bumblebee Server oder NVIDIA Karte
# ist nicht verfügbar?
AllowFallbackToIGC=false


# Treiberspezifische Einstellungen sind unter [Treibername] zusammengefasst. Die Abschnitte sind
# analysiert, wenn die Treibereinstellung in [bumblebeed] auf NAME eingestellt ist (oder wenn auto-
# Erkennung wird in NAME aufgelöst).
# PMMethod: Methode zum Stromsparen durch Deaktivieren der Nvidia-Karte, gültig
# Werte sind: auto – automatisch erkennen, welche PM-Methode verwendet werden soll
# bbswitch - neu in BB 3, empfohlen, sofern verfügbar
# switcheroo - vga_switcheroo-Methode, Verwendung auf eigene Gefahr
# keine - PM vollständig deaktivieren
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Abschnitt mit NVIDIA-Treiberspezifischen Optionen, wird nur analysiert, wenn Driver=nvidia
[Treiber-Nvidia]
# Zu ladender Modulname, standardmäßig „Driver“, wenn leer oder nicht festgelegt
KernelDriver=nvidia_331_updates
PMMethod=auto
# durch Doppelpunkt getrennter Pfad zu den NVIDIA-Bibliotheken
LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates
# Komma-getrennter Pfad des Verzeichnisses, das nvidia_drv.so enthält, und der
# Standardpfad für Xorg-Module
XorgModulePath=/usr/lib/nvidia-331-updates/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Abschnitt mit Nouveau-Treiber-spezifischen Optionen, wird nur analysiert, wenn Driver=nouveau
[Treiber-Neuling]
KernelDriver=neu
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Meine xorg.conf.nvidia:

# nvidia-settings: Von nvidia-settings generierte X-Konfigurationsdatei
# nvidia-settings: Version 331.20 (buildd@roseapple) Montag, 3. Februar 2014, 15:07:22 UTC

Abschnitt "ServerLayout"
    Kennung "Layout0"
    Bildschirm 0 "Screen0" 0 0
    Eingabegerät „Keyboard0“ „CoreKeyboard“
    Eingabegerät „Maus0“ „CorePointer“
    Option "AutoAddDevices" "false"
    Option "AutoAddGPU" "false"
    Option "Xinerama" "0"
Endabschnitt

Abschnitt "InputDevice"
    # aus Standard generiert
    Kennung "Keyboard0"
    Treiber "kbd"
Endabschnitt

Abschnitt "InputDevice"
    # aus Standard generiert
    Kennung "Mouse0"
    Treiber "Maus"
    Option „Protokoll“ „auto“
    Option "Gerät" "/dev/psaux"
    Option "Emulate3Buttons" "nein"
    Option "ZAxisMapping" "4 5"
Endabschnitt

Abschnitt "Gerät"

# Wenn der X-Server Ihr VGA-Gerät nicht automatisch erkennt,
# Sie können es hier manuell einstellen.
# Um die BusID-Eigenschaft zu erhalten, führen Sie `lspci | egrep 'VGA|3D'` aus und geben Sie die Daten ein
# wie Sie im kommentierten Beispiel sehen.
# Diese Einstellung kann auf manchen Plattformen mit mehr als einem erforderlich sein
# nvidia-Karte, die den proprietären Treiber verwirren kann (zB,
# Versuch, den Besitz des falschen Geräts zu übernehmen). Auch unter Ubuntu 13.04 erforderlich.
# Das Setzen von ProbeAllGpus auf false verhindert den neuen proprietären Treiber
# Instanz erzeugt, um zu versuchen, die integrierte Grafikkarte zu steuern,
# das bereits außerhalb von Bumblebee verwaltet wird.
# Diese Option schadet nicht und ist erforderlich auf Plattformen, auf denen
# mehr als eine NVIDIA-Grafikkarte mit dem proprietären Treiber.
# (Z. B. Macbook Pro vor 2010 mit nVidia 9400M + 9600M GT).
# Wenn diese Option nicht gesetzt ist, kann das neue Xorg den Bildschirm schwarz machen und
# machen Sie es unbrauchbar (es sei denn, Sie haben eine Möglichkeit, killall Xorg auszuführen).
    Kennung „DiscreteNvidia“
    Treiber "nvidia"
    Herstellername „NVIDIA Corporation“
    Option "ProbeAllGpus" "false"
    Option „NoLogo“ „true“
    Option "UseEDID" "false"
    Option „UseDisplayDevice“ „keine“
    Bus-ID „PCI:01:00:0“
Endabschnitt

Abschnitt "Gerät"
    Kennung "Device0"
    Treiber "nvidia"
    Herstellername „NVIDIA Corporation“
    Boardname „GeForce GT 540M“
Endabschnitt

Abschnitt "Bildschirm"
    Kennung „Standardbildschirm“
    Gerät "DiscreteNvidia"
Endabschnitt

Abschnitt "Bildschirm"
    Kennung "Screen0"
    Gerät „Device0“
    Standardtiefe 24
    Option „UseDisplayDevice“ „keine“
    Unterabschnitt „Anzeige“
        Virtuell 1600 900
        Tiefe 24
    EndSubSection
Endabschnitt

Nach Neuinstallation von Bumblebee und Nvidia und DKMS usw.

  1. Backup erstellen (falls Datei vorhanden)sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

  2. Geben Sie optirun -b none nvidia-settings -c :8config xorg ein und speichern Sie es unter/etc/bumblebee/xorg.conf.nvidia

  3. nvidia-settingsnicht gespeichert in /etc/bumblebee/xorg.conf.nvidia. Konfiguration von nvidia-settingswurde gespeichert in/etc/X11/xorg.conf

    Sie müssen diese Datei in die Bumblebee Xorg-Nvidia-Konfiguration verschieben. Geben Siesudo rm /etc/bumblebee/xorg.conf.nvidia && sudo mv /etc/X11/xorg.conf /etc/bumblebee/xorg.conf.nvidia

  4. Neustart ;)

Für mich geht das

verwandte Informationen