Nvidia Optimus + bumblebee for Audio playback via displayport

Hi,
I want to use my laptop to play music via my receiver. The receiver has an HDMI input and I am connecting it via an HDMI / DIsplayport adapter to my Lenovo T420s. Furthermore, I installed (hopefully it was successful) bumblebee. For me, it seems to be running. Here the output of ‘bumblebeed --debug’:


bumblebeed --debug
  208.331747] [DEBUG]bbswitch has been detected.
  208.331782] [INFO]Switching method 'bbswitch' is available and will be used.
  208.331789] [DEBUG]Active configuration:
  208.331794] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
  208.331800] [DEBUG] X display: :8
  208.331805] [DEBUG] LD_LIBRARY_PATH: /usr/lib64/nvidia:/usr/lib/nvidia
  208.331810] [DEBUG] Socket path: /var/run/bumblebee.socket
  208.331815] [DEBUG] xorg.conf file: /etc/bumblebee/xorg.conf.nvidia
  208.331821] [DEBUG] xorg.conf.d dir: /etc/bumblebee/xorg.conf.d
  208.331826] [DEBUG] ModulePath: /usr/lib64/nvidia/xorg/,/usr/lib64/xorg/modules
  208.331832] [DEBUG] GID name: bumblebee
  208.331837] [DEBUG] Power method: auto
  208.331842] [DEBUG] Stop X on exit: 0
  208.331847] [DEBUG] Driver: nvidia
  208.331852] [DEBUG] Driver module: nvidia
  208.331857] [DEBUG] Card shutdown state: 1
  208.331986] [DEBUG]Process /sbin/modprobe started, PID 2598.
  208.332072] [DEBUG]Hiding stderr for execution of /sbin/modprobe
  208.333682] [DEBUG]SIGCHILD received, but wait failed with No child processes
  208.333715] [DEBUG]Configuration test passed.
  208.334052] [INFO]bumblebeed 3.2.1 started
  208.334231] [INFO]Initialization completed - now handling client requests

optirun glxinfo2 | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVS 4200M/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 334.21
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 334.21
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

Normally ( at least under windows ) the receiver is detected as a normal monitor or TV because it is capable to pass through the complete video stream. Unfortunately, using opensuse its not beeing detected:

xrandr
Screen 0: minimum 320 x 200, current 1600 x 900, maximum 32767 x 32767
LVDS1 connected primary 1600x900+0+0 (normal left inverted right x axis y axis) 310mm x 174mm
   1600x900       60.0*+
   1024x768       60.0
   800x600        60.3     56.2
   640x480        59.9
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

I think for the same reason, also there is no additional audio device detected.

I appreciate any help! Thanks in advance!

Here some more information regarding my system:
I’m running Opensuse 13.1 with kernel 3.11.10-7-desktop and the following graphic cards are detected:


lspci | grep -E "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF119M [NVS 4200M] (rev ff)

my /etc/bumblebee/xorg.conf.nvidia file:

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"
    Option "ConnectedMonitor" "DFP"
    BusID         "PCI:01:00:0"
    Option "ProbeAllGpus" "false"
    Option "NoLogo" "true"
EndSection

I believe this laptop has options in the BIOS setup to toggle the graphics mode between Intel only, Nvidia only or Optimus. There should also be an option to set OS detection of Optimus to ON or OFF. Probably it would work better for you to set OS detection to OFF and Graphics Device to Nvidia.

thanks for your reply. Do I need some different driver than bumblebee when I want to use the NVIDIA graphics only?

You treat it just like any laptop with Nvidia graphics, so uninstall all bumblebee related and install the Nvidia drivers, preferably by adding the Nvidia repo in Yast and install the drivers in Yast. Ideally Yast should select the correct versions for you, probably the G03 ones, nvidia-computeG03, nvidia-gfxG03-kmp-desktop or -default, nvidia -glG03 and x11-video-nvidiaG03. Now if you don’t intend to do any gaming on this machine you can omit the package nvidia-glxG03, omitting this package will preserve mesa-support for the Intel grapchics if you should want to switch the system to Intel mode when running on battery. If you prefer to install the package you can still restore Intel mesa support by adding the following code to the file /etc/init.d/boot.local.

mode=$(/sbin/lspci | grep -E "VGA|3D");#Make shure we are in command of /usr/X11R6/lib
if  -e /etc/ld.so.conf.d/nvidia-gfxGO*.conf ]; then
    /bin/rm /etc/ld.so.conf.d/nvidia-gfxGO*.conf
fi  
#Check graphics mode and take apropriate action
if  `echo $mode | grep -c "Intel" ` -gt 0 ]; then
if  -e /usr/lib/xorg/modules/updates/extensions/libglx.so ]; then
    /bin/rm /usr/lib/xorg/modules/updates/extensions/libglx.so
fi 
if  -e /usr/X11R6/lib/libGL.so.1 ]; then
    /bin/rm /usr/X11R6/lib/libGL.so.1
fi
    
    




else
    /bin/ln -s /usr/lib/xorg/modules/updates/extensions/libglx.so.* /usr/lib/xorg/modules/updates/extensions/libglx.so
    /sbin/ldconfig /usr/X11R6/lib
        
    
    
fi    



I see I provided you the script for 32-bit, most likely you’re on 64-bit, so here’s the code for that.

mode=$(/sbin/lspci | grep -E "VGA|3D");#Make shure we are in command of /usr/X11R6/lib
if  -e /etc/ld.so.conf.d/nvidia-gfxGO*.conf ]; then
    /bin/rm /etc/ld.so.conf.d/nvidia-gfxGO*.conf
fi  
#Check graphics mode and take apropriate action
if  `echo $mode | grep -c "Intel" ` -gt 0 ]; then
if  -e /usr/lib64/xorg/modules/updates/extensions/libglx.so ]; then
    /bin/rm /usr/lib64/xorg/modules/updates/extensions/libglx.so
fi 
if  -e /usr/X11R6/lib/libGL.so.1 ]; then
    /bin/rm /usr/X11R6/lib/libGL.so.1
    /bin/rm /usr/X11R6/lib64/libGL.so.1
fi


#Else we must be in Nvidia mode
else
    /bin/ln -s /usr/lib64/xorg/modules/updates/extensions/libglx.so.* /usr/lib64/xorg/modules/updates/extensions/libglx.so
    /sbin/ldconfig /usr/X11R6/lib
    /sbin/ldconfig /usr/X11R6/lib64    
fi    



thanks for the scripts!
Is there also a way to enable screen dimming when in nvidia graphics only mode?

I suppose you could create a new user and set the screensaver to power off the display after a minute or so.