x11-video-nvidiaG04 conflicts with nvidia-bumblebee-32bit?

Hi guys,

I’m currently using an Nvidia gtx770m and the G04 driver from Nvidia official repo, with version 352.21. OS version OpenSUSE 13.2.
When I tried to install nvidia-bumblebee-32bit from the x11:bumlebee repo, it promts me a conflict:

x11-video-nvidiaG04 conflicts with x11-video-nvidiaG02 provided by nvidia-bumblebee-32bit

Does this mean I have to switch to the G02 driver to use bumblebee? Any idea?

What I have done is deinstalling x11-video-nvidiaG04( not other nvidia packages), and installed the nvidia-bumblee-32bit package.
Weirdly the graphics works fine, bumblebee also works,

$primusrun glxspheres

gives rendered perfectly.

This leads to my other question, what does x11-video-nvidiaG0x do exactly?

When I tried to run steam, primusrun fails:

$primusrun steam
/home/lynxiayel/.local/share/Steam/steam.sh: line 145: DISTRIB_ID: unbound variable
/home/lynxiayel/.local/share/Steam/steam.sh: line 159: DISTRIB_RELEASE: unbound variable
/home/lynxiayel/.local/share/Steam/steam.sh: line 145: DISTRIB_ID: unbound variable
/home/lynxiayel/.local/share/Steam/steam.sh: line 159: DISTRIB_RELEASE: unbound variable
Running Steam on   64-bit
/home/lynxiayel/.local/share/Steam/steam.sh: line 145: DISTRIB_ID: unbound variable
/home/lynxiayel/.local/share/Steam/steam.sh: line 159: DISTRIB_RELEASE: unbound variable
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1439401440)
primus: fatal: failed to load any of the libraries: /usr/$LIB/nvidia/libGL.so.1
libnvidia-tls.so.352.21: cannot open shared object file: No such file or directory
[2015-08-15 00:10:26] Startup - updater built Aug 12 2015 10:04:47

Any idea why it fails with steam but works well with glxspheres?

some complementary info:

$locate libnvidia-tls.so.352.21
/usr/lib64/libnvidia-tls.so.352.21
/usr/src/NVIDIA-Linux-x86_64-352.21/libnvidia-tls.so.352.21
/usr/src/NVIDIA-Linux-x86_64-352.21/32/libnvidia-tls.so.352.21
/usr/src/NVIDIA-Linux-x86_64-352.21/32/tls/libnvidia-tls.so.352.21
/usr/src/NVIDIA-Linux-x86_64-352.21/tls/libnvidia-tls.so.352.21

$cat /usr/bin/primusrun 
#!/bin/bash


# Readback-display synchronization method
# 0: no sync, 1: D lags behind one frame, 2: fully synced
# export PRIMUS_SYNC=${PRIMUS_SYNC:-0}


# Verbosity level
# 0: only errors, 1: warnings (default), 2: profiling
# export PRIMUS_VERBOSE=${PRIMUS_VERBOSE:-1}


# Secondary display
# export PRIMUS_DISPLAY=${PRIMUS_DISPLAY:-:8}


# "Accelerating" libGL
# $LIB will be interpreted by the dynamic linker
export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/nvidia/libGL.so.1'}


# "Displaying" libGL
export PRIMUS_libGLd=${PRIMUS_libGLd:-'/usr/$LIB/libGL.so.1'}


# Directory containing primus libGL
PRIMUS_libGL=/usr/lib64/primus:/usr/lib/primus:/usr/lib64/nvidia:/usr/lib/nvidia${PRIMUS_libGL:-$(dirname `readlink -ne $0`)/'$LIB'}


# On some distributions, e.g. on Gentoo, libnvidia-tls.so is not available
# in default search paths.  Add its path manually after the primus library
PRIMUS_libGL=/usr/$LIB/primus:/usr/lib64/nvidia:/usr/lib/nvidia${PRIMUS_libGL}:/usr/\$LIB/opengl/nvidia/lib


# Mesa drivers need a few symbols to be visible
# export PRIMUS_LOAD_GLOBAL=${PRIMUS_LOAD_GLOBAL:-'libglapi.so.0'}


# Need functions from primus libGL to take precedence
export LD_LIBRARY_PATH=${PRIMUS_libGL}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}


# And go!
exec "$@"

Yes, they conflict.
Both contain the same driver with the same files, nvidia-bumblebee is just adapted to work with bumblebee, as the standard driver will break intel graphics.
Why would you want to install both anyway?

Does this mean I have to switch to the G02 driver to use bumblebee? Any idea?

No.
If you want to use bumblebee, you have to install the nvidia driver completely and install nvidia-bumblebee instead, which is the same nvidia driver adapted for bumblebee.

What I have done is deinstalling x11-video-nvidiaG04( not other nvidia packages), and installed the nvidia-bumblee-32bit package.
Weirdly the graphics works fine, bumblebee also works,

$primusrun glxspheres

gives rendered perfectly.

So this is an Optimus system?
Then you should remove the standard nvidia driver and install bumblebee and nvidia-bumblebee instead.

The standard driver you had installed shouldn’t even have worked in that case.

And x11-video-nvidiaG04 alone is useless anyway. You need at least the kernel module (nvidia-gfxG04-kmp-xxx) too. But this is required and should be installed automatically too.

This leads to my other question, what does x11-video-nvidiaG0x do exactly?

What do you mean with that question?
It contains the proprietary nvidia graphics driver.

To be clear Bumblebee is only for one special hardware setup called optimus. If the machine does not have optimus (Intel_NVIDA GPU in a special hardware config) DO NOT use bumblebee. Just use the normal NVIDIA packages

If you do have an optimus system then first unistall all NVIDIA packages (nvidia in the name) that you installed and follow exactly the bumblebee instructions.

Yes it is an optimus system and I think I misunderstood the tutorial on the opensuse bumblebee page, did not know the proprietary and the bumblebee drivers are exclusive with each other.
I removed the proprietary drivers and redo the process in the bumblebee tutorial, everything works fine now.

Thank you two a lot for the help.