尝试使用 NVIDIA GPU 时找不到设备

2ma*_*mac 3 nvidia nvidia-optimus bumblebee primus

我正在尝试将 Bumblebee 用于我的 NVIDIA GPU,但在运行程序时遇到了错误。

我正在使用 Minecraft 客户端对其进行测试,该客户端实际上已启动,但片刻后崩溃。

$ primusrun java -jar Minecraft.jar
# some normal output...
primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) No devices detected.
Run Code Online (Sandbox Code Playgroud)

我可以很好地看到卡片:

$ lspci | grep 3D
01:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)
Run Code Online (Sandbox Code Playgroud)

这个设置在同一台机器上的 Arch 下运行良好。不确定什么配置不正确。

编辑:

$ lspci -nnk | grep -iA2 VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06)
Subsystem: CLEVO/KAPOK Computer Device [1558:0650]
Kernel driver in use: i915
Run Code Online (Sandbox Code Playgroud)

我的主要显卡是 Intel,因为这是一台 Optimus 机器。

编辑2:

$ optirun -vv --debug glxspheres
[ 2643.983966] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 2643.984989] [DEBUG]optirun version 3.2.1 starting...
[ 2643.985038] [DEBUG]Active configuration:
[ 2643.985066] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 2643.985096] [DEBUG] X display: :8
[ 2643.985123] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia-304:/usr/lib32/nvidia-304
[ 2643.985152] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 2643.985179] [DEBUG] Accel/display bridge: auto
[ 2643.985207] [DEBUG] VGL Compression: proxy
[ 2643.985235] [DEBUG] VGLrun extra options: 
[ 2643.985262] [DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
[ 2643.985525] [DEBUG]Using auto-detected bridge primus
[ 2644.041849] [INFO]Response: No - error: [XORG] (EE) No devices detected.

[ 2644.041877] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.

[ 2644.041890] [DEBUG]Socket closed.
[ 2644.041912] [ERROR]Aborting because fallback start is disabled.
[ 2644.041923] [DEBUG]Killing all remaining processes.
Run Code Online (Sandbox Code Playgroud)

编辑 3:

我的/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
Run Code Online (Sandbox Code Playgroud)

JoK*_*KeR 6

[ERROR] Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
Run Code Online (Sandbox Code Playgroud)

您需要编辑/etc/bumblebee/xorg.conf.nvidia(或者/etc/bumblebee/xorg.conf.nouveau如果使用 noveau 驱动程序)并按照其中的说明指定正确的 BusID。

xorg.conf例如,您应该看起来像这样:

Section "Device"
    Identifier     "DiscreteNvidia"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce XXXXX"
    BusID          "PCI:2:0:0"
EndSection
Run Code Online (Sandbox Code Playgroud)

找出并替换XXXX为您的确切命令BoardNameBusID命令:

sudo nvidia-xconfig --query-gpu-info
Run Code Online (Sandbox Code Playgroud)

在此重新启动sudo service lightdm restart或重新启动后将起作用。