Matt Moore

C++

Linux » MSI GS60 Ghost Pro-052 with Ubuntu Linux 14.04 and Bumblebee

Aug 19, 2014

I just got myself an MSI GS60 Pro-052 laptop. The specs are:

  • Intel i7 4710HQ
  • 12 GB 1600 MHz RAM (supports 16GB max)
  • nVidia GTX 870M 3GB GDDR5
  • 128 GB SSD
  • 1 TB 7200 RPM HD

Doing the install with Ubuntu 14.04 was fairly easy. In case anyone finds this information useful, here's what I did to install Ubuntu:

  1. First I booted off the live Ubuntu image (using a flash drive).

  2. This particular model came with two drives: 1x128GB SSD preloaded with Windows 8.1, and 1x1TB 7200RPM drive for data. I wanted to leave Windows 8.1 on the SSD (for gaming) and install Linux on the data drive. I wanted specifically to keep half the 1TB drive for storage use in Windows. From the remaining half of the 1TB drive, I wanted to have 20GB assigned as the root partition, and the remainder of free space mounted as the home partition. That in mind, I launched gparted and resized the 1TB data drive that came with the laptop with 20GB for the root partition and around 400 GB or so for the home partition (didn't exactly measure it, just picked around half the available space on the 1TB drive). Then I wrote changes to the drive. Note that you should always backup your data and verify that you're doing the correct actions on the correct drives/partitions - standard disclaimers apply!

  3. Next, start the Ubuntu installation. For the target, I chose the 20GB partition I created earlier for root - in my case /dev/sdb3 - and the other 400GB partition for home. For the boot manager, I chose the data drive so as not to interfere with the Windows bootloader. In my case, this was /dev/sdb4.

  4. The rest of the installation was like any other. I had no issues with any drivers. Everything was automatic and simple, with the small exception of Bumblebee.

I added the Ubuntu PPA for Bumblebee, and installed the necessary packages:

$ sudo apt-add-repository ppa:bumblebee/stable
$ sudo apt-get update
$ sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic virtualgl

Now, reboot your machine.

At this point, Bumblebee should be set up and working. To verify, run this command:

$ glxspheres64

Take note of the framerate. On my machine it was around 60 fps. Next, run this command:

$ optirun glxspheres64

Now you should see a massive increase in framerate. On mine it was around 210 fps. If you get a huge bump in framerate, your nVidia card is working. Another way you can tell:

$ cat /proc/acpi/bbswitch

If the output says OFF, the discrete card is not being used. If the output says ON, the discrete card is being used.

optirun vs primusrun

There are currently two commands I'm aware of that will run applications using the discrete GPU. optirun will run an application with full capacity directly on the discrete GPU. This gets the full power of the discrete GPU without restriction. The second option is to use primusrun, which will process as needed on the Intel GPU and automatically switch to the discrete GPU when required for performance. primusrun operates through a bridge between the shared and dedicated GPUs and limits the discrete GPU to a framerate of 60 fps to lower power consumption.

When running Steam games Valve recommends adding a launch option to each game you want to run with the discrete card using primusrun. To do this right-click the game in Steam, click Properties, then on the Properties window for the game, click "SET LAUNCH OPTIONS...". For the launch option enter:

primusrun %command%

Then click OK and close the game's Properties window. Now when you launch that game it will make use of Bumblebee and schedule GPU time between the shared Intel GPU and the discrete nVidia GPU.