Ubuntu – No – error: Could not load GPU driver; Cannot access secondary GPU – error: Could not load GPU driver

13.10bumblebeenvidianvidia-optimusxorg

My notebook specs:

CPU: Intel Core i5 3230m
RAM: 4gb 1600mhz
I have 2 GPUs:
    1st: Intel HD 4000 
    2nd: Nvidia GT 720m

Today, I installed bumblebee and Nvidia 331 driver. The install was successful so notebook started without black screen. The problem is that notebook won't start programs with Nvidia. And it won't recognize the GPUs. Here is what I did:

sudo apt-get install nvidia-331 bumblebee linux-headers-generic
sudo gedit /etc/bumblebee/bumblebee.conf

Replaced matching keywords with these values:

Driver=nvidia
KernelDriver=nvidia-331
LibraryPath=/usr/lib/nvidia-331:/usr/lib32/nvidia-331
XorgModulePath=/usr/lib/nvidia-331/xorg,/usr/lib/xorg/modules

Save and exit

I then removed the 304-driver

sudo jockey-text -d kmod:nvidia_304

Then reconfigure some stuff, by running this and pressing ok.

sudo pam-auth-update --force

Rebooted.

Then i installed VirtualGL
http://sourceforge.net/projects/virtualgl/files/VirtualGL/2.3.3/

sudo dpkg -i virtualgl_2.3.3_amd64.deb

After running optirun, here is the output :

nikola95o@nikola95o-X550VC:~$ optirun -vvv glxgears
[ 2454.183529] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 2454.184219] [DEBUG]optirun version 3.2.1 starting...
[ 2454.184240] [DEBUG]Active configuration:
[ 2454.184248] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 2454.184255] [DEBUG] X display: :8
[ 2454.184261] [DEBUG] LD_LIBRARY_PATH: 
[ 2454.184267] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 2454.184273] [DEBUG] Accel/display bridge: auto
[ 2454.184279] [DEBUG] VGL Compression: proxy
[ 2454.184285] [DEBUG] VGLrun extra options: 
[ 2454.184291] [DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
[ 2454.184340] [DEBUG]Using auto-detected bridge virtualgl
[ 2454.187518] [INFO]Response: No - error: Could not load GPU driver
[ 2454.187546] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver
[ 2454.187555] [DEBUG]Socket closed.
[ 2454.187582] [ERROR]Aborting because fallback start is disabled.
[ 2454.187595] [DEBUG]Killing all remaining processes.</Code></Pre>

With lspci -v | less :

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core process
or Graphics Controller (rev 09) (prog-if 00 [VGA controller])
    Subsystem: ASUSTeK Computer Inc. Device 124d
    Flags: bus master, fast devsel, latency 0, IRQ 46
    Memory at f7400000 (64-bit, non-prefetchable) [size=4M]
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at f000 [size=64]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915

01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M / GT 620M/625M/630M/720M] (rev a1)
    Subsystem: ASUSTeK Computer Inc. GeForce GT 720M
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
    Memory at e0000000 (64-bit, prefetchable) [size=256M]
    Memory at f0000000 (64-bit, prefetchable) [size=32M]
    I/O ports at e000 [size=128]
    Expansion ROM at f7000000 [disabled] [size=512K]
    Capabilities: <access denied> </Code></Pre>

And here is my Bumblebee.conf file :

# 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=
# 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
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-331:/usr/lib32/nvidia-331
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-331/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</Code></Pre>

If you need something else from my side, please ask.

Best Answer

  • Ok, we share very simmilar specs! You need to get rid of Bumblebee and 304 Nvidia driver. Bumblebee does not run on my Optimus machine, same problems. get Prime indicator.

    To remove and purge bumblebee run terminal (if you got black screen, press Ctrl+Alt+F2) and type:

    sudo apt-get remove --purge bumblebee
    

    To install Prime run:

    sudo add-apt-repository ppa:nilarimogard/webupd8
    sudo apt-get update
    sudo apt-get install prime-indicator
    

    It should work out from the box with Prime.Indicator. If not, purge them all with:

    sudo apt-get remove nvidia* prime-indicator && sudo apt-get autoremove
    

    and start from scratch with:

    sudo apt-get install nvidia-331 prime-indicator
    

    When you get it work, install mesa-utils with sudo apt-get install mesa-utils which allows us to recognize the GPU. Switch to Intel GPU from Prime Indicator and get Intel Graphics Installer, find the Installer in Dash and run it to update your Intel 4000 with latest drivers.

    EDIT: After installing the Intel package, if sudo apt-get update will fail on "download.01.org" public key, run this in terminal:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A902DDA375E52366