web-dev-qa-db-ja.com

nvidia-331-updatesのバンブルビー。 「--driver nvidia」で動作しますが、サービスとしては動作しません

Ubuntu 12.04でバンブルビーをセットアップしようとしています。 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では、「ドライバー」の値は「nvidia」です。最初のコマンドで、なぜ「nvidia-331-updates」ではなくドライバモジュール「nvidia」をロードしようとするのですか?どちらのコマンドも実行可能である必要があります。一緒。この問題を解決するには?

1
Andrew

LibraryPath=/usr/lib/nvidia-331-updates:/usr/lib32/nvidia-331-updatesLibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-currentに変更

[driver-nvidia]

Driver=nvidia [driver-nvidia]

[driver-nouveau]

Driver=nouveau [driver-nouveau]

KernelDriver=nvidia-331-updatesKernelDriver=nvidia_331_updatesまたはKernelDriver=nvidiaに変更します

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

[〜#〜] update [〜#〜]これを試してください:LibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updatesLibraryPath=/usr/lib/nvidia-331-updates,/usr/lib32/nvidia-331-updatesに変更します

私のバンブルビー構成:

#Bumblebeeの設定ファイル。値を引用符で囲んではいけません** 
 
 ##サーバーオプション。このセクションで行った変更を有効にするには、サーバーを再起動する必要があります。
#
 [bumblebeed] 
#セカンダリXorgサーバーのDISPLAY番号
 VirtualDisplay =:8 
#未使用のXorgサーバーを実行し続ける必要がありますか? Xの準備が完了するまで待つ
#が長すぎて電源管理がまったく必要ない場合は、これをtrueに設定します。
 KeepUnusedXServer = false 
#Bumblebleeサーバーの名前グループ名(GID名)
 ServerGroup = bumblebee 
#終了時のカードの電源状態。 Bumblebee 
#サーバーの終了時にカードがオンになっている場合はfalseに設定します。
 TurnCardOffAtExit = false 
#optirunの「-f」オプションのデフォルトの動作。 「true」に設定すると、「-f」は無視されます。
#は無視されます。
 NoEcoModeOverride = false 
#Bumblebeeサーバーが使用するドライバー。この値が設定されていない(または空の)場合、
#自動検出が実行されます。利用可能なドライバーはnvidiaとnouveau 
#です(以下のドライバー固有のセクションも参照してください)
 Driver = 
#ダミーの構成ファイルを含むディレクトリで、-configdirをセカンダリに渡します。 X 
 XorgConfDir =/etc/bumblebee/xorg.conf.d 
 
 ##クライアントオプション。次に実行されるoptirunで有効になります。
 [optirun] 
#アクセラレーション/レンダリングブリッジ。可能な値はauto、virtualgl、
#primus。
 Bridge =です。 auto 
#VirtualGLがXサーバー間でフレームを転送するために使用される方法。
#可能な値は、proxy、jpeg、rgb、xvおよびyuvです。
 VGLTransport = proxy 
#使用時にprimus libGL.so.1が検索されるパスのリスト
#primusブリッジ
 PrimusLibraryPath =/usr/lib/x86_64-linux-gnu/primus:/ usr/lib/i386-linux-gnu/primus 
#Bumblebeeサーバーまたはnvidiaカード
#が利用できない場合でも、プログラムをoptirunで実行する必要がありますか?
 AllowFallbackToIGC = false 
 
 
#ドライバ固有の設定は[driver-NAME]の下にグループ化されています。セクションは
#[bumblebeed]のDriver設定がNAMEに設定されている場合(またはauto-
#検出がNAMEに解決される場合)解析されます。
#PMMethod:使用するメソッドnvidiaカードを無効にして電力を節約する場合、有効な値は
#です。auto-使用するPM使用するメソッドを自動的に検出します
#bbswitch-BB 3の新機能可能であれば推奨
#switcheroo-vga_switcherooメソッド、自己責任で使用
#なし-disable PM完全に
#https:// github .com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods 
 
 ## nvidiaドライバー固有のオプションを含むセクション。Driver= nvidia 
 [driverの場合にのみ解析されます-nvidia] 
#ロードするモジュール名。空または未設定の場合、デフォルトでDriverに設定されます。
 KernelDriver = nvidia_331_updates 
 PMMethod = auto 
#コロンで区切られたnvidiaへのパスlibraries 
 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 
 [driver-nouveau] [.____の場合にのみ解析されます。] KernelDriver = nouveau 
 PMMethod = auto 
 XorgConfFile =/etc/bumblebee/xorg.conf.nouveau 

私のxorg.conf.nvidia:

#nvidia-settings:nvidia-settingsによって生成されたX構成ファイル
#nvidia-settings:バージョン331.20(buildd @ roseapple)Mon Feb 3 15:07:22 UTC 2014 
 
セクション "ServerLayout" 
識別子 "Layout0" 
画面0 "Screen0" 0 0 
 InputDevice "Keyboard0" "CoreKeyboard" 
 InputDevice "Mouse0 "" CorePointer "
オプション" AutoAddDevices "" false "
オプション" AutoAddGPU "" false "
オプション" Xinerama "" 0 "
 EndSection 
 
セクション "InputDevice" 
#デフォルトから生成されます
識別子 "Keyboard0" 
ドライバー "kbd" 
 EndSection 
 
セクション "InputDevice" 
#デフォルトから生成されます
識別子 "Mouse0" 
ドライバー "mouse" 
オプション "Protocol" "auto" 
オプション "Device" "/dev/psaux"
オプション" Emulate3Buttons "" no "
 Opt ion "ZAxisMapping" "4 5" 
 EndSection 
 
 Section "Device" 
 
#XサーバーがVGAデバイスを自動的に検出しない場合、
#ここで手動で設定できます。
#BusIDプロップを取得するには、 `lspci | egrep 'VGA | 3D'`と入力して、コメントの例にあるようにデータを入力します
#。
#この設定は、複数のプラットフォームで必要になる場合があります
#nvidia独自のドライバーを混乱させる可能性のあるカード(例:
#が間違ったデバイスの所有権を取得しようとしている)。 Ubuntu 13.04でも必要です。
#ProbeAllGpusをfalseに設定すると、新しい専用ドライバ
#が生成され、統合グラフィックスカードを制御しようとするために生成されます。
#すでに外部で管理されています。 bumblebee。
#このオプションは問題ありません。
#独自のドライバーを備えた複数のnvidiaグラフィックカードを実行しているプラ​​ットフォームで必要です。
#(例:Macbook Pro pre- 2010とnVidia 9400M + 9600M GT)。 。
識別子 "DiscreteNvidia" 
ドライバー "nvidia" 
 VendorName "NVIDIA Corporation" 
 Option "ProbeAllGpus" "false" 
 Option "NoLogo" "true" 
オプション "UseEDID" "false" 
オプション "UseDisplayDevice" "none" 
 BusID "PCI:01:00:0" 
 EndSection 
 [.__ __。]セクション「デバイス」
識別子「デバイス0」
ドライバー「nvidia」
ベンダー名「NVIDIA Corporation」
ボード名「GeForce GT 540M」
 EndSection 
 
セクション「画面」
識別子「デフォルト画面」
デバイス「DiscreteNvidia」
 EndSection 
 
セクション "Screen" 
識別子 "Screen0" 
デバイス "Device0" 
 DefaultDepth 24 
オプション "UseDisplayDevice" "none" 
サブセクション "Display "
仮想1600 900 
深さ24 
 EndSubSection 
 EndSection 

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. 再起動;)

私にとってはうまくいく

1
TheAifam5