Bumblebee с nvidia-331-updates. Работает с "--driver nvidia", но не будет работать как служба

Bumblebee с nvidia-331-updates. Работает с "--driver nvidia", но не будет работать как служба

Я пытаюсь настроить bumblebee на Ubuntu 12.04. Я также использую последний драйвер nvidia, потому что 319 больше не доступен.

Вот мои файлы конфигурации:

/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

Затем я покажу вам пару мистических вещей:

Первая команда:

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

Вторая команда:

    $ 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

И это работа!

Не могу понять, почему первая команда не работает. В bumblebee.conf значение "driver" равно "nvidia". Почему в первой команде он пытается загрузить модуль драйвера "nvidia" вместо "nvidia-331-updates"? Обе команды должны быть работоспособны или нет. Вместе. Как решить эту проблему?

решение1

изменить LibraryPath=/usr/lib/nvidia-331-updates:/usr/lib32/nvidia-331-updatesна LibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-current

изменить [driver-nvidia]на

Driver=nvidia [driver-nvidia]

изменить [driver-nouveau]на

Driver=nouveau [driver-nouveau]

изменить KernelDriver=nvidia-331-updatesна KernelDriver=nvidia_331_updatesилиKernelDriver=nvidia

ЭТО ЛОГИКА ШМЕЛЬ -.-

ОБНОВЛЯТЬ Попробуйте это: измените LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updatesна LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates

Моя конфигурация Bumblebee:

# Файл конфигурации для Bumblebee. Значения **не** должны быть заключены в кавычки

## Параметры сервера. Любое изменение в этом разделе потребует перезагрузки сервера
# для вступления в силу.
[шмель]
# Вторичный номер Xorg-сервера DISPLAY
ВиртуальныйДисплей=:8
# Должен ли неиспользуемый сервер Xorg оставаться запущенным? Установите значение true, если ожидание
# для готовности X требуется слишком много времени и вообще не требует управления питанием.
KeepUnusedXServer=false
# Имя группы серверов Bumbleblee (имя GID)
ServerGroup=шмель
# Состояние питания карты при выходе. Установите значение false, если карта должна быть включена, когда Bumblebee
# сервер завершает работу.
TurnCardOffAtExit=false
# Поведение по умолчанию опции '-f' в optirun. Если установлено значение "true", '-f' будет
# быть проигнорировано.
NoEcoModeOverride=false
# Драйвер, используемый сервером Bumblebee. Если это значение не установлено (или пустое),
# выполняется автоопределение. Доступны драйверы nvidia и nouveau
# (См. также разделы, посвященные конкретным драйверам, ниже)
Водитель=
# Каталог с фиктивным файлом конфигурации для передачи в качестве -configdir вторичному X
XorgConfDir=/etc/bumblebee/xorg.conf.d

## Параметры клиента. Вступят в силу при следующем запуске optirun.
[optirun]
# Мост ускорения/рендеринга, возможные значения: auto, virtualgl и
# примус.
Мост=авто
# Метод, используемый VirtualGL для передачи кадров между X-серверами.
# Возможные значения: proxy, jpeg, rgb, xv и yuv.
VGLTransport=прокси
# Список путей, по которым выполняется поиск primus libGL.so.1 при использовании
# мост примус
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Должна ли программа работать под управлением optirun, даже если сервер Bumblebee или карта nvidia
# не доступен?
AllowFallbackToIGC=false


# Настройки, специфичные для драйвера, сгруппированы в [имя-драйвера]. Разделы
# анализируется, если настройка драйвера в [bumblebeed] установлена ​​на ИМЯ (или если авто-
# обнаружение разрешается в ИМЯ).
# PMMethod: метод, используемый для экономии энергии путем отключения карты NVIDIA, допустимый
# значения: auto - автоматически определять, какой метод PM использовать
# bbswitch - новое в BB 3, рекомендуется, если доступно
# switcheroo - метод vga_switcheroo, используйте на свой страх и риск
# none - полностью отключить PM
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Сравнение-методов-PM

## Раздел с параметрами, специфичными для драйвера nvidia, анализируется только если Driver=nvidia
[драйвер-nvidia]
# Имя модуля для загрузки, по умолчанию Driver, если пусто или не задано
KernelDriver=nvidia_331_updates
Метод PM=авто
# разделенный двоеточием путь к библиотекам nvidia
LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates
# разделенный запятыми путь к каталогу, содержащему nvidia_drv.so и
# путь к модулям Xorg по умолчанию
XorgModulePath=/usr/lib/nvidia-331-updates/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Раздел с параметрами, специфичными для драйвера nouveau, анализируется только если Driver=nouveau
[драйвер-нуво]
KernelDriver=nouveau
Метод PM=авто
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Мой xorg.conf.nvidia:

# nvidia-settings: файл конфигурации X, созданный nvidia-settings
# nvidia-settings: версия 331.20 (buildd@roseapple) Пн Фев 3 15:07:22 UTC 2014

Раздел "ServerLayout"
    Идентификатор "Layout0"
    Экран 0 "Экран0" 0 0
    Устройство ввода "Keyboard0" "CoreKeyboard"
    Устройство ввода "Mouse0" "CorePointer"
    Параметр "AutoAddDevices" "false"
    Параметр "AutoAddGPU" "false"
    Вариант "Xinerama" "0"
КонецРаздела

Раздел «Устройство ввода»
    # сгенерировано по умолчанию
    Идентификатор "Клавиатура0"
    Драйвер "kbd"
КонецРаздела

Раздел «Устройство ввода»
    # сгенерировано по умолчанию
    Идентификатор "Mouse0"
    Драйвер "мышь"
    Опция "Протокол" "авто"
    Параметр "Устройство" "/dev/psaux"
    Опция "Emulate3Buttons" "нет"
    Опция "ZAxisMapping" "4 5"
КонецРаздела

Раздел "Устройство"

# Если X-сервер не обнаруживает автоматически ваше VGA-устройство,
# вы можете вручную установить его здесь.
# Чтобы получить свойство BusID, запустите `lspci | egrep 'VGA|3D'` и введите данные
# как вы видите в прокомментированном примере.
# Эта настройка может потребоваться на некоторых платформах с более чем одним
# карта nvidia, которая может сбить с толку фирменный драйвер (например,
# попытка стать владельцем неправильного устройства). Также необходимо в Ubuntu 13.04.
# Установка ProbeAllGpus в значение false предотвращает установку нового фирменного драйвера
# экземпляр создан для попытки управления интегрированной видеокартой,
# который уже управляется извне bumblebee.
# Эта опция не повредит и она необходима на платформах, работающих под управлением
# более одной видеокарты nvidia с фирменным драйвером.
# (Например, Macbook Pro до 2010 года с nVidia 9400M + 9600M GT).
# Если эта опция не установлена, новый Xorg может сделать экран черным и
# сделать его непригодным для использования (если только у вас нет способа запустить killall Xorg).
    Идентификатор "DiscreteNvidia"
    Драйвер "nvidia"
    Название поставщика "NVIDIA Corporation"
    Опция "ProbeAllGpus" "ложь"
    Вариант "NoLogo" "истина"
    Параметр "UseEDID" "ложь"
    Параметр "UseDisplayDevice" "нет"
    BusID "PCI:01:00:0"
КонецРаздела

Раздел "Устройство"
    Идентификатор "Device0"
    Драйвер "nvidia"
    Название поставщика "NVIDIA Corporation"
    Название платы "GeForce GT 540M"
КонецРаздела

Раздел "Экран"
    Идентификатор «Экран по умолчанию»
    Устройство "ДискретноеNvidia"
КонецРаздела

Раздел "Экран"
    Идентификатор "Screen0"
    Устройство "Device0"
    DefaultDepth 24
    Параметр "UseDisplayDevice" "нет"
    Подраздел «Дисплей»
        Виртуальный 1600 900
        Глубина 24
    КонецПодраздела
КонецРаздела

После новой установки Bumblebee, Nvidia, DKMS и т. д.

  1. Создать резервную копию (если файл существует)sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

  2. Введите optirun -b none nvidia-settings -c :8и сохраните config xorg в/etc/bumblebee/xorg.conf.nvidia

  3. nvidia-settingsне сохраняется в /etc/bumblebee/xorg.conf.nvidia. Конфигурация из nvidia-settingsбыла сохранена в/etc/X11/xorg.conf

    Вам необходимо переместить этот файл в конфигурацию bumblebee xorg-nvidia. Введитеsudo rm /etc/bumblebee/xorg.conf.nvidia && sudo mv /etc/X11/xorg.conf /etc/bumblebee/xorg.conf.nvidia

  4. Перезагрузить ;)

Меня устраивает

Связанный контент