Bumblebee con actualizaciones de nvidia-331. Trabaja con "--driver nvidia" pero no funciona como servicio

Bumblebee con actualizaciones de nvidia-331. Trabaja con "--driver nvidia" pero no funciona como servicio

Estoy intentando configurar Bumblebee en Ubuntu 12.04. También utilizo el último controlador nvidia porque el 319 ya no está disponible.

Estos son mis archivos de configuración:

/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

Luego les muestro un par de cosas místicas:

Primer comando:

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

Segundo comando:

    $ 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

¡Y es trabajo!

No puedo entender por qué el primer comando no funciona. En bumblebee.conf, el valor del "controlador" es "nvidia". ¿Por qué en el primer comando intenta cargar el módulo del controlador "nvidia" en lugar de "nvidia-331-updates"? Ambos comandos deben ser viables o no. Juntos. ¿Cómo solucionar este problema?

Respuesta1

cambiar LibraryPath=/usr/lib/nvidia-331-updates:/usr/lib32/nvidia-331-updatesa LibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-current

cambiar [driver-nvidia]a

Driver=nvidia [driver-nvidia]

cambiar [driver-nouveau]a

Driver=nouveau [driver-nouveau]

cambiar KernelDriver=nvidia-331-updatesa KernelDriver=nvidia_331_updatesoKernelDriver=nvidia

ESE ABEJORRO LÓGICO -.-

ACTUALIZAR Pruebe esto: cambie LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updatesa LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates

Mi configuración de Bumblebee:

# Archivo de configuración para Bumblebee. Los valores **no** deben ponerse entre comillas

## Opciones del servidor. Cualquier cambio realizado en esta sección necesitará reiniciar el servidor.
# para tomar efecto.
[abejorro]
# El número de PANTALLA del servidor Xorg secundario
Pantalla virtual=:8
# ¿Debería seguir funcionando el servidor Xorg no utilizado? Establezca esto en verdadero si está esperando
# para que X esté listo es demasiado largo y no necesita administración de energía en absoluto.
MantenerUnusedXServer=falso
# El nombre del grupo del servidor Bumbleblee (nombre GID)
GrupoServidor=abejorro
# Estado de energía de la tarjeta al salir. Establecer en falso si la tarjeta debe estar ENCENDIDA cuando Bumblebee
# servidor sale.
TurnCardOffAtExit=falso
# El comportamiento predeterminado de la opción '-f' en optirun. Si se establece en "verdadero", '-f'
# ser ignorado.
NoEcoModeOverride=falso
# El controlador utilizado por el servidor Bumblebee. Si este valor no está establecido (o vacío),
# Se realiza la detección automática. Los controladores disponibles son nvidia y nouveau.
# (Consulte también las secciones específicas del controlador a continuación)
Conductor =
# Directorio con un archivo de configuración ficticio para pasar como -configdir al X secundario
XorgConfDir=/etc/bumblebee/xorg.conf.d

## Opciones del cliente. Tendrá efecto en la próxima ejecución óptima ejecutada.
[optar]
# Puente de aceleración/renderizado, los valores posibles son auto, virtualgl y
#primus.
Puente = automático
# El método utilizado por VirtualGL para transportar tramas entre servidores X.
# Los valores posibles son proxy, jpeg, rgb, xv y yuv.
VGLTransporte=proxy
# Lista de rutas en las que se busca primus libGL.so.1 cuando se usa
# el puente primus
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# ¿Debería ejecutarse el programa bajo optirun incluso si el servidor Bumblebee o la tarjeta nvidia
# ¿no está disponible?
AllowFallbackToIGC=falso


# Las configuraciones específicas del controlador se agrupan en [NOMBRE-conductor]. Las secciones son
# analizado si la configuración del controlador en [bumblebeed] está configurada en NOMBRE (o si el
# la detección se resuelve en NOMBRE).
# PMMethod: método a utilizar para ahorrar energía desactivando la tarjeta nvidia, válido
# valores son: auto: detecta automáticamente qué método PM usar
# bbswitch: nuevo en BB 3, recomendado si está disponible
# switcheroo - método vga_switcheroo, úsalo bajo tu propia responsabilidad
# ninguno: desactiva PM por completo
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Sección con opciones específicas del controlador nvidia, solo analizada si Driver=nvidia
[controlador-nvidia]
# Nombre del módulo a cargar, por defecto es Driver si está vacío o no está configurado
KernelDriver=nvidia_331_updates
PMMethod=automático
# ruta separada por dos puntos a las bibliotecas de nvidia
LibraryPath=/usr/lib/nvidia-331-actualizaciones,/usr/lib32/nvidia-331-actualizaciones
# ruta separada por comas del directorio que contiene nvidia_drv.so y el
# ruta predeterminada de los módulos Xorg
XorgModulePath=/usr/lib/nvidia-331-updates/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Sección con opciones específicas del controlador nouveau, solo analizada si Driver=nouveau
[conductor-nouveau]
KernelDriver=nuevo
PMMethod=automático
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Mi xorg.conf.nvidia:

# nvidia-settings: archivo de configuración X generado por nvidia-settings
# nvidia-settings: versión 331.20 (buildd@roseapple) lunes 3 de febrero a las 15:07:22 UTC de 2014

Sección "Diseño del servidor"
    Identificador "Diseño0"
    Pantalla 0 "Pantalla0" 0 0
    Dispositivo de entrada "Teclado0" "CoreKeyboard"
    Dispositivo de entrada "Mouse0" "CorePointer"
    Opción "AutoAddDevices" "falso"
    Opción "AutoAddGPU" "falso"
    Opción "Xinerama" "0"
Sección final

Sección "Dispositivo de entrada"
    # generado por defecto
    Identificador "Teclado0"
    Controlador "kbd"
Sección final

Sección "Dispositivo de entrada"
    # generado por defecto
    Identificador "Ratón0"
    Conductor "ratón"
    Opción "Protocolo" "auto"
    Opción "Dispositivo" "/dev/psaux"
    Opción "Emular3Botones" "no"
    Opción "ZAxisMapping" "4 5"
Sección final

Sección "Dispositivo"

# Si el servidor X no detecta automáticamente su dispositivo VGA,
# puedes configurarlo manualmente aquí.
# Para obtener la propiedad BusID, ejecute `lspci | egrep 'VGA|3D'` e ingrese los datos
# como ves en el ejemplo comentado.
# Esta configuración puede ser necesaria en algunas plataformas con más de una
# tarjeta nvidia, que puede confundir al controlador propietario (p. ej.,
# intentando tomar posesión del dispositivo equivocado). También es necesario en Ubuntu 13.04.
# Establecer ProbeAllGpus en falso evita que el nuevo controlador propietario
# instancia generada para intentar controlar la tarjeta gráfica integrada,
# que ya se está gestionando fuera de bumblebee.
# Esta opción no hace daño y es obligatoria en plataformas que ejecutan
# más de una tarjeta gráfica nvidia con el controlador propietario.
# (Por ejemplo, Macbook Pro anterior a 2010 con nVidia 9400M + 9600M GT).
# Si esta opción no está configurada, el nuevo Xorg puede oscurecer la pantalla y
# dejarlo inutilizable (a menos que tengas alguna forma de ejecutar Killall Xorg).
    Identificador "DiscretoNvidia"
    Controlador "nvidia"
    Nombre del proveedor "NVIDIA Corporation"
    Opción "ProbeAllGpus" "falso"
    Opción "NoLogo" "verdadero"
    Opción "UsarEDID" "falso"
    Opción "UseDisplayDevice" "ninguna"
    ID de autobús "PCI:01:00:0"
Sección final

Sección "Dispositivo"
    Identificador "Dispositivo0"
    Controlador "nvidia"
    Nombre del proveedor "NVIDIA Corporation"
    Nombre de la placa "GeForce GT 540M"
Sección final

Sección "Pantalla"
    Identificador "Pantalla predeterminada"
    Dispositivo "discretoNvidia"
Sección final

Sección "Pantalla"
    Identificador "Pantalla0"
    Dispositivo "Dispositivo0"
    Profundidad predeterminada 24
    Opción "UseDisplayDevice" "ninguna"
    Subsección "Pantalla"
        Virtuales 1600 900
        Profundidad 24
    FinSubSeccion
Sección final

Después de una nueva instalación de Bumblebee, Nvidia, DKMS, etc.

  1. Crear copia de seguridad (si existe un archivo)sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

  2. Escriba optirun -b none nvidia-settings -c :8y guarde config xorg en/etc/bumblebee/xorg.conf.nvidia

  3. nvidia-settingsno guardar en /etc/bumblebee/xorg.conf.nvidia. La configuración de nvidia-settingsse ha guardado en/etc/X11/xorg.conf

    Debes mover este archivo a la configuración de bumblebee xorg-nvidia. Tiposudo rm /etc/bumblebee/xorg.conf.nvidia && sudo mv /etc/X11/xorg.conf /etc/bumblebee/xorg.conf.nvidia

  4. Reiniciar ;)

Esto funciona para mi

información relacionada