nvidia-331-updates を搭載した Bumblebee。"--driver nvidia" で動作しますが、サービスとしては動作しません。

nvidia-331-updates を搭載した Bumblebee。"--driver nvidia" で動作しますが、サービスとしては動作しません。

Ubuntu 12.04 に Bumblebee をセットアップしようとしています。319 はもう利用できないため、最新の NVIDIA ドライバーも使用しています。

これは私の設定ファイルです:

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

2番目のコマンド:

    $ 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-331-updates」ではなく「nvidia」というドライバー モジュールをロードしようとするのでしょうか? 両方のコマンドが機能するかどうかは、一緒に判断する必要があります。この問題を解決するにはどうすればよいでしょうか?

答え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_updatesKernelDriver=nvidia

その論理バンブルビー -.-

アップデート これを試してみてください:LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updatesに 変更LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updates

私のバンブルビーの設定:

# Bumblebee の設定ファイル。値は引用符で囲んではいけません。

## サーバーオプション。このセクションで変更を行った場合は、サーバーの再起動が必要になります。
# 有効になります。
[バンブルビー]
# セカンダリ Xorg サーバの DISPLAY 番号
仮想ディスプレイ=:8
# 未使用のXorgサーバーを実行したままにしますか?待機中の場合はこれをtrueに設定します
# X の準備が整うまでに時間がかかりすぎるため、電源管理はまったく必要ありません。
未使用XServerを維持する=false
# Bumbleblee サーバーグループ名 (GID 名)
サーバーグループ=バンブルビー
# 終了時のカード電源状態。バンブルビー終了時にカードがオンになっている必要がある場合はfalseに設定
# サーバーが終了します。
終了時にカードをオフにする=false
# optirun の '-f' オプションのデフォルトの動作。"true" に設定すると、'-f' は
# 無視されます。
NoEcoModeOverride=false
# Bumblebeeサーバーが使用するドライバー。この値が設定されていない場合(または空の場合)、
# 自動検出が実行されます。使用可能なドライバーは nvidia と nouveau です
# (以下のドライバー固有のセクションも参照してください)
ドライバー=
# セカンダリ X に -configdir として渡すダミー設定ファイルのあるディレクトリ
XorgConfDir=/etc/bumblebee/xorg.conf.d

## クライアント オプション。次に実行される optirun から有効になります。
[オプティラン]
# アクセラレーション/レンダリングブリッジ。可能な値はauto、virtualgl、
# プライマス。
ブリッジ=自動
# VirtualGL が X サーバー間でフレームを転送するために使用する方法。
# 可能な値は proxy、jpeg、rgb、xv、yuv です。
VGLトランスポート=プロキシ
# primus libGL.so.1 を使用する際に検索されるパスのリスト
# プリムス橋
プリムスライブラリパス=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Bumblebeeサーバーまたはnvidiaカードがあっても、プログラムはoptirunで実行する必要がありますか?
# 利用できません?
AllowFallbackToIGC=false


# ドライバー固有の設定は[driver-NAME]の下にグループ化されています。セクションは
# [bumblebeed]のドライバー設定がNAMEに設定されている場合(または自動
# 検出はNAMEに解決されます)。
# PMMethod: nvidia カードを無効にして電力を節約するために使用する方法、有効
# 値は次のとおりです: auto - 使用する PM メソッドを自動的に検出します
# bbswitch - BB 3 の新機能、利用可能な場合は推奨
# switcheroo - vga_switcheroo メソッド、自己責任で使用してください
# なし - PMを完全に無効にする
# https://github.com/Bumblebee-Project/Bumblebee/wiki/PM メソッドの比較

## nvidia ドライバー固有のオプションのセクション。Driver=nvidia の場合にのみ解析されます。
[ドライバー-nvidia]
# ロードするモジュール名。空または未設定の場合はデフォルトで Driver になります。
カーネルドライバー=nvidia_331_updates
PMメソッド=自動
# コロンで区切られたnvidiaライブラリへのパス
ライブラリパス=/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 の場合にのみ解析されます。
[ドライバー・ヌーボー]
カーネルドライバ=新しい
PMメソッド=自動
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

私のxorg.conf.nvidia:

# nvidia-settings: nvidia-settings によって生成された X 構成ファイル
# nvidia-settings: バージョン 331.20 (buildd@roseapple) 2014 年 2 月 3 日月曜日 15:07:22 UTC

セクション「ServerLayout」
    識別子「Layout0」
    スクリーン0「スクリーン0」0 0
    入力デバイス「Keyboard0」「CoreKeyboard」
    入力デバイス「Mouse0」「CorePointer」
    オプション「AutoAddDevices」が「false」
    オプション「AutoAddGPU」が「false」
    オプション「Xinerama」「0」
終了セクション

セクション「InputDevice」
    # デフォルトから生成
    識別子「Keyboard0」
    ドライバー「kbd」
終了セクション

セクション「InputDevice」
    # デフォルトから生成
    識別子「Mouse0」
    ドライバー「マウス」
    オプション「プロトコル」「自動」
    オプション「デバイス」「/dev/psaux」
    オプション「Emulate3Buttons」 「いいえ」
    オプション「ZAxisMapping」「4 5」
終了セクション

セクション「デバイス」

# XサーバーがVGAデバイスを自動的に検出しない場合は、
# ここで手動で設定できます。
# BusIDプロパティを取得するには、`lspci | egrep 'VGA|3D'`を実行し、データを入力します
# コメント付きの例にあるように。
# この設定は、複数のプラットフォームで必要になる場合があります。
# nvidia カード、これは独自のドライバーを混乱させる可能性があります (例:
# 間違ったデバイスの所有権を取得しようとしています。Ubuntu 13.04 でも必要です。
# ProbeAllGpusをfalseに設定すると、新しい専用ドライバーが
# 統合グラフィックカードを制御するためにインスタンスが生成されました。
# これはすでに Bumblebee の外部で管理されています。
# このオプションは問題にはならず、プラットフォーム上では必須です。
# 専用ドライバーを搭載した複数の NVIDIA グラフィック カード。
# (例: nVidia 9400M + 9600M GT を搭載した 2010 年以前の Macbook Pro)。
# このオプションが設定されていない場合、新しいXorgは画面を黒くし、
# 使用不可にします(killall Xorg を実行する方法がない限り)。
    識別子「DiscreteNvidia」
    ドライバー「nvidia」
    ベンダー名「NVIDIA Corporation」
    オプション「ProbeAllGpus」が「false」
    オプション「NoLogo」 「true」
    オプション「UseEDID」が「false」
    オプション「UseDisplayDevice」「なし」
    バスID「PCI:01:00:0」
終了セクション

セクション「デバイス」
    識別子「Device0」
    ドライバー「nvidia」
    ベンダー名「NVIDIA Corporation」
    ボード名「GeForce GT 540M」
終了セクション

セクション「スクリーン」
    識別子「デフォルト画面」
    デバイス「DiscreteNvidia」
終了セクション

セクション「スクリーン」
    識別子「Screen0」
    デバイス「Device0」
    デフォルトの深さ 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 :8config 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. 再起動してください ;)

わたしにはできる

関連情報