Howto use Nvidia native on an external display on an Optimus system.

All my results have only been tested on one single Optimus netbook, using openSUSE 13.1 64 bit,this one:

As you can see it’s not a very powerful system, but it has some advantages, the most important being that I can run it in Intel or Nvidia only, or Optimus mode, but for this test I switched it to Optimus mode of course. Most systems aren’t switchable at all, they run in Optimus mode only, this HOWTO is mainly for such systems. Most, if not all, systems has one or two connectors for external displays, usually one HDMI and one VGA, I will only deal with the HDMI connector in this HOWTO. Although there’s a lot of confusion on this issue it seems to be true that the HDMI connector usually, possibly always, is wired to the Nvidia card. To add to the confusion there are many machines with port connectors for a docking station, how those works and are wired for your particular machine you must work out yourself.

Bumblebee has been available and working for some time now, but there are still features to be explored on those machines, the two most asked for, I believe, are access to an external monitor, preferably using the Nvidia card, and how to utilise the full power of the Nvidia card. Bumblebee, or more correctly bbswitch handles power management very well, as does later, 3.12 and up, kernels, but graphics performance is, for bumblebee, not at par with running the Nvidia card in native mode.

So what I’m proposing is to install and configure two instances of openSUSE, one for running a bumblebee instance using your laptops built in display when you’re running on battery and one using an external display when running on AC to run the Nvidia card with native Nvidia performance.

If you’re not familiar with bumblebee there’s an excellent guide here:

If you already have openSuse installed don’t worry, adding a new instance only requires an extra root partition and if you at your first install chose to go with a separat home partition you can shrink that partition to get an extra 20 GB for root for the new instance, you’ll share the home and swap partitions between the instances. If you’re installing from scratch reserve 20 GB when installing the first instance for the second instances root partition.

Having set this up boot into the Nvidia instance, install the Nvidia drivers, I used the easy way adding the Nvidia repo in Yast and installed via Yast, but I see no reason why this shouldn’t work the hard way, downloading the installer from Nvidia and then run it. After this I added the line “blacklist i915” to /etc/modprobe.d/50-blacklist and ran the command mkinitrd, I don’t know if this is really necessary, but necessary is to run the command nvidia-xconfig, yes we need an xorg.conf and we need to edit it. First we need to find out what to add to it, run this command:

/sbin/lspci | grep VGA

You’ll get an output containing one line like this, don’t worry about the line about Intel:

03:00.0 VGA compatible controller: NVIDIA Corporation ...

Your numbers might differ.

In this case we would add a line before the end of the Section “Device” in /etc/X11/xorg.conf like this,

BusID   "PCI:03:00:0"

Now connect your external display and reboot, if all is well Grub will show up on the laptops built in display and the login will show up on your external display and your instance will run there using Nvidia. Keep an eye on the temperature in Nvidia-settings, mine start​s at 70-75 C, but I have to run stuff rather agressivly to force it up to 90 C where the red indicator starts.

Time to update some of the info here.
The preferred guide on how to install Bumblebee is here:

To determin if your system is an Optimus one use this command, later Nvidia cards don’t present them selfes as VGA but instead as 3D:

/sbin/lspci | egrep 'VGA|3D'