NVidia Optimus works well under Linux when configured properly. Install the base Ubuntu system and complete the following steps to enable High Quality 3D graphics using the NVidia GPU:

Step 1: Add the Ubuntu Graphics PPA to APT Sources

Add the Ubuntu Graphics Drivers PPA to the system to gain access to the latest NVidia drivers:

Step 2: Install NVidia Driver and Bumblebee Switching Application

Install the bumblebee application and its constituent components and the desired NVidia proprietary driver to enable GPU switching. Accept any other required packages identified by the package management system.

Step 3: Edit Bumblebee Configuration Files

Modify the /etc/bumblebee/bumblebee.conffile so that it points to the correct NVidia driver. This will be the version of the NVidia proprietary driver you installed in the last step. At the time of writing the lastest version was nvidia-367. As newer versions are released this will not be the case and you will need to modify this file to reflect the installed version.

The latest driver that works without issue for me is 350.12 for Windows 8.1. Yes - Using windows 8.1 drivers on windows 10 is more stable than the official drivers for Win10. I tested newer versions of windows 8.1 drivers, but none of them work and the windows 10 drivers are just broken on Nvidia Optimus. If Optimus is so dumb, or even if it worked fine, I (the user) should have the option to simply disable this nonsense, and use the better video card for which I PAID A PILE OF MONEY! I DEMAND that Nvidia provides an option for me to use my GTX 680M for EVERYTHING, without exception!!! Laptops and netbooks:: thinkpad edge laptops:: thinkpad e590 type 20nb 20nccontentdetail - Lenovo Support US. Recently I did a clean Windows install on a Dell 6430 laptop. The laptop has an NVIDIA dedicated GPU as well as integrated Intel HD graphics. The best part is, NVIDIA’s Optimus feature.

You must to change the specified driver, bridge and default library locations at the bottom of the file under the nvidia section. See example below taking note of the bolded areas.

Drivers Optimus Laptops & Desktops

Step 4: Edit NVidia Configuration File to Prevent Screen Tearing

Modify the /etc/bumblebee/xorg.conf.nvidiafile adding the following option to the end of the “Device” section. This will ensure that screen tearing is not present when using the NVidia GPU under Linux (Forces the NVidia driver to try to maintain a constant locked output at 60 FPS).

For reference here is my working /etc/bumblebee/xorg.conf.nvidiafile:

Step 5: Set the Intel GPU as the Primary system GPU

Drivers Optimus Laptops & Desktops Free

Set the Intel driver to be the default system GPU used to help save on battery life. If you want to use the NVidia GPU to render everything you can change the prime-select argument to nvidia, but this will have a significant negative impact on overall battery life.

Drivers Optimus Laptops & Desktops Reviews

Step 6: Install VirtualGL Package

Download and install the VirtualGL package to provide 3D application GPU testing prior to attempting to launch real applications using the NVidia GPU. The VirtualGL package can be obtained directly from their website:

Make sure to download the latest DEB version for your architecture. If you are using 64-bit Ubuntu you will want to download the amd64 package. Once the package has been downloaded install it using your preferred package installation method and symlink the /opt/VirtualGL/bin/glxspheres64 binary to /usr/bin/glxspheres so it can be run easily from the command line.

Step 7: Reboot the System

Reboot the system.

Drivers Optimus Laptops & Desktops Download

Step 8: Run GLXSPHERES Using Intel and NVidia GPUs

Once logged in following the reboot, open a terminal and verify that the Intel and NVidia drivers are working properly. Use the optirun command as a prefix to launch applications with the NVidia GPU. Applications you want to run using the Intel GPU do not require the optirun prefix.

Run glxspheres using the Intel i915 driver:

Run glxspheres using the NVidia driver:

OPTIONAL: Configure Steam Games to Use NVidia GPU

Steam applications must be launched using a special pre-load command to use the NVidia GPU. When looking at your steam library, Right-Clickthe game you want to run with the NVidia GPU and select the ‘Properties’ option. On the window that opens, select ‘Set Launch Options…’.

Use the following launch option to tell Steam to run the game with the NVidia GPU:

OPTIONAL: Configure NVidia GPU to Enable FXAA for all Applications

Optimus

Many applications do not have an option to enable Anti-Aliasing within the applications settings. You can enable FXAA (Fast Approximate Anti-Aliasing, a low cost implementation of AA) for all applications in the nvidia-settings application. This will apply Anti-Aliasing at the driver level and provides it to all applications run using the NVidia GPU.

Drivers Optimus Laptops & Desktops Software

The nvidia-settings application must be launched using the optirun command so that the driver can access the NVidia GPU. By default bumblebee uses the 8th screen for the NVidia GPU, so use the -c :8flag to specify which screen nvidia-settings should use.