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-updates
LibraryPath=/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-updates
in KernelDriver=nvidia_331_updates
oderKernelDriver=nvidia
DIESE LOGIK-HUMMEL -.-
AKTUALISIEREN
Versuchen Sie Folgendes: Wechseln Sie LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates
zu
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.
Backup erstellen (falls Datei vorhanden)
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
Geben Sie
optirun -b none nvidia-settings -c :8
config xorg ein und speichern Sie es unter/etc/bumblebee/xorg.conf.nvidia
nvidia-settings
nicht gespeichert in/etc/bumblebee/xorg.conf.nvidia
. Konfiguration vonnvidia-settings
wurde gespeichert in/etc/X11/xorg.conf
Sie müssen diese Datei in die Bumblebee Xorg-Nvidia-Konfiguration verschieben. Geben Sie
sudo rm /etc/bumblebee/xorg.conf.nvidia && sudo mv /etc/X11/xorg.conf /etc/bumblebee/xorg.conf.nvidia
Neustart ;)
Für mich geht das