J'essaie d'utiliser Bumblebee pour mon GPU NVIDIA et je rencontre des erreurs lors de l'exécution de programmes.
Je le teste avec un client Minecraft, qui démarre, mais se bloque au bout d'un moment.
$ primusrun Java -jar Minecraft.jar
# some normal output...
primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) No devices detected.
Je peux voir la carte très bien:
$ lspci | grep 3D
01:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)
Cette configuration a bien fonctionné sous Arch sur cette même machine. Pas sûr de ce qui n'est pas configuré correctement.
MODIFIER:
$ 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
Ma carte graphique principale est Intel, car il s’agit d’une machine optimus.
EDIT 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.
EDIT 3:
Mon /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
[ERROR] Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
Vous devez éditer le /etc/bumblebee/xorg.conf.nvidia
(ou /etc/bumblebee/xorg.conf.nouveau
si vous utilisez le pilote noveau) et spécifier le bon BusID en suivant les instructions qui y figurent.
votre xorg.conf
devrait ressembler à ceci par exemple:
Section "Device"
Identifier "DiscreteNvidia"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce XXXXX"
BusID "PCI:2:0:0"
EndSection
recherchez et remplacez XXXX
par votre exact BoardName
et BusID
par la commande suivante:
Sudo nvidia-xconfig --query-gpu-info
Après ce redémarrage, Sudo service lightdm restart
ou le redémarrage fonctionnera.
Dans /etc/bumblebee/xorg.conf.nvidia
, décommentez
BusID "PCI:01:00:0"
et le remplacer par
BusID "PCI:0x:00.0"
où x est le nombre que vous voyez dans la liste lspci
à côté de "contrôleur 3D", qui devrait être votre carte nvidia