-
Notifications
You must be signed in to change notification settings - Fork 142
Troubleshooting
Common issues and their solution can be found here.
Only laptops have these kind of nVidia Optimus card, so this project won't apply to desktops (for now). Cards from the 4xxM and newer series are all Optimus-enabled. The M
stands for "Mobile". But having a 4xxM card isn't enough to be sure that you're having an Optimus laptop. There must also be an integrated video controller in your processor. To check that, run this command in a terminal:
lspci -vnn | grep '\''[030[02]\]'
If it outputs two lines, then you're likely having an Optimus laptop. Else, it's probably not one, ask on the hybrid graphics mailing list for more informations, providing the above command output.
Version 260.19.12 was the first to support Optimus enabled card (but does not support Optimus technology itself). Ensure that you've a recent driver installed. If you're using Ubuntu, install the ubuntu-x-swat/x-updates
PPA and upgrade nvidia-current
:
sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get upgrade
Also make sure that you don't have drivers installed for older cards. On Ubuntu, these are the packages nvidia-96
, nvidia-173
and nvidia-180
.
Some programs quit optirun by running detached. Workaround: run a shell with optirun and start the program from that shell:
optirun bash
$ yourprogram
When done, you can exit the shell with exit
. The idea is to keep at least one
optirun instance running.
If you've generated /etc/X11/xorg.conf
using nvidia-xconfig
, remove that file. It's not compatible with Optimus laptops:
sudo rm /etc/X11/xorg.conf
3D effects don't work and when running 3D apps in a terminal you get Xlib: extension "GLX" missing on display ":0"
First, if you are using Ubuntu using version 3.0-1~...ppa1
, upgrade to 3.0-1~...ppa2
or newer and be sure that bumblebee-nvidia
is installed if you are using the proprietary nvidia driver. A reboot may be necessary.
Otherwise, you've probably messed up GLX library in Xorg. To recover it, try to do the following things:
sudo apt-get install --reinstall libgl1-mesa-glx xserver-xorg-core
Then reboot and your should be OK.
First, if you are using Ubuntu using version 3.0-1~...ppa1
, upgrade to 3.0-1~...ppa2
or newer and be sure that bumblebee-nvidia
is installed if you are using the proprietary nvidia driver. A reboot may be necessary.
optirun
is quite helpful in debugging, i.e. when you need to re-login after installation or if you forgot to add yourself to the bumblebee
group. There are many reasons why optirun
would fail to run. To start debugging, look in /var/log/syslog
and /var/log/Xorg.8.log
(replace 8
by the VirtualDisplay
setting in /etc/bumblebee/bumblebee.conf
). New log messages are appended to the end, so make sure you look at the end of your log file for recent messages.
Power management relies on ACPI, disabling ACPI renders bbswitch unusable. Be
sure that your kernel boot parameters do not contain on of the options
noacpi
, pci=noacpi
, acpi=off
. You can read your current kernel parameters
by reading the /proc/cmdline
file.
bbswitch is ineffective due to nvidia
driver loading on boot -- bbswitch: device XXX is in use by driver 'nvidia', refusing OFF
In some configurations, proprietary GPU driver loads itself at boot-time, unconditionally enabling the device and rendering bbswitch unusable. Kernel messages you may see if this is the problem:
bbswitch: device XXX is in use by driver 'nvidia', refusing OFF
or
nvidia XXX: power state changed by ACPI to D0
nvidia XXX: enabling device (0006 -> 0007)
at system boot.
To fix this, you can
- blacklist the
nvidia
module (see e. g. ArchWiki) - if you are using DKMS to build the proprietary driver and have their startup script enabled (especially on ArchLinux), DKMS may unconditionally load all the modules on boot.
On ArchLinux, this is fixed by settingLOAD=no
in/etc/conf.d/dkms
.
Check your /var/log/Xorg.8.log
for possible errors. Use grep -Fn '(EE' /var/log/Xorg.8.log
for finding errors quickly, prefixed with the line number. Known errors messages and their description are listed below.
This is a harmless message.
Ensure that ConnectedMonitor
option from /etc/bumblebee/xorg.conf.nvidia
is valid:
cat /etc/bumblebee/xorg.conf.nvidia | grep ConnectedMonitor
Valid value for this option you can get from output of xrandr
command (valid value is LVDS1
in follow case):
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
PCI:1:0:0
may vary, but take a look at the last lines of the kernel log (usually located at /var/log/kern.log
, /var/log/kernel
or /var/log/messages
).
If you run Wine (or a 32-bit application) on Ubuntu Oneiric or later and get this error, you need to install the 32-bit libraries for VirtualGL:
sudo apt-get install virtualgl-libs:i386
Other reasons why you get this reason:
- The program you're trying to run is a statically linked program. There is no workaround for this
- The program you're trying to run has a setuid/setgid bit set which makes the program run under the owner of the file. For security reasons, virtualgl cannot hook into it. There is a workaround with
chmod u+s
, but it's very unsafe and not recommended. - The environment variable
LD_LIBRARY_PATH
is cleared. See the previous workaround for ways to solve it.
If you get this error, the nouveau driver may be overriding the official one. Even if you've installed the proprietary nvidia driver, if the nouveau driver is loaded it'll take precedence. So be sure to set Driver=nvidia
in /etc/bumblebee/bumblebee.conf
or blacklist and unload nouveau. If you want to use the nouveau driver, check the syslog for more log entries.
This can also happen if the driver and client versions don't match. If you get this error after an update, it's likely that one was upgraded but not the other. If this is the case, you'll get messages in your kernel log (/var/log/kernel.log
or similar) like this:
NVRM: API mismatch: the client has the version <version>, but
NVRM: this kernel module has the version <different version>. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
To fix it, just update the one that's behind (or downgrade the one that's ahead) so they're at the same version.
Verify if BusID is correctly set inside /etc/bumblebee/xorg.conf.nvidia
configuration file, because lspci
returns the values in hex format, e.g. 0a:00.0
, and BusID should be in decimals, e.g. BusID "PCI:10:0:0"
.
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load /usr/lib/xorg/modules/libglamoregl.so: /usr/lib/xorg/modules/libglamoregl.so: undefined symbol: _glapi_tls_Context
Update your nvidia propietary driver to the latest version. It happens in Ubuntu with nvidia-304 and nvidia-319 solves this issue.
[ERROR]Cannot access secondary GPU - error: could not start X Server and/or Kernel oops with GT 600M series cards (Kepler) on boot
Make sure you have a recent kernel and the latest nvidia driver, i.e. not only the one, which first claims support for GT600M cards (302.17). First working driver for the tested card (GT620M - inside ASUS UX32) is the (beta) driver 304.22. (tested with kernelversion 3.4.6 on ArchLinux).
To verify this issue, make sure bbswitch cannot be loaded (e.g. move it away) and try: "nvidia-xconfig -query-gpu-info".
On Ubuntu, if you get a kernel oops with something mumbling about the audio driver, try the workaround in https://github.com/Bumblebee-Project/Bumblebee/issues/205#issuecomment-8022153
You can find this message in your syslog when the configured nvidia driver is invalid, you might need KernelDriver=nvidia-current
for example. Find out the name by executing find /lib/modules/$(uname -r) -name 'nvidia*.ko*'
(ignore nvidiafb.ko
, you should be looking for something like nvidia_current.ko
or nvidia_325.ko
).
Can't find the nvidia module? Then ensure that you the module is built. You will need the kernel headers matching your kernel and maybe some patches if you run a very recent kernel with a slightly older nvidia driver.
if you see in your syslog/dmesg/messages such messages as : bumblebeed: rmmod: ERROR: Module nvidia is in use by: nvidia_modeset nvidia_uvm see closed issue : https://github.com/Bumblebee-Project/Bumblebee/issues/699
If you cannot solve your issue, continue at Reporting Issues.