The 2016 Razer Blade is a fantastic laptop with cutting edge hardware in a great form factor. The cutting edge, of course, is the problem for people trying to run Linux on this system and has prevented many from being able to get up and running at all. This guide focuses on the special installation procedures necessary to get Ubuntu 16.04 to install and function correctly on this laptop.

NOTE: Once Ubuntu has been installed and fully configured, all laptop components operate as expected with the exception of the Webcam that flickers intermittently.

Step 1: Booting the Ubuntu Live CD / USB on the Razer Blade (2016)

Plug in a live Ubuntu 16.04 USB or USB CDROM drive into a free USB port on the Razer Blade and press the power button. The system will begin the POST process. During the POST process press the F12 button repeatedly until the boot device selection screen is presented. Use the arrow keys to select the device you want to boot from and press the ENTER key to start the system.

When in the bootloader and the option ‘Try Ubuntu Without Installing’ is highlighted, press the E button to edit the startup entry. This opens the startup entry editor which allows changes to the way the system boots. Add the three following options to the end of the line which starts with linux:

i915.preliminary_hw_support=1 nolapic nouveau.modeset=0

Once these three kernel arguments have been added to the end of the linux line, press the F10 key to start booting the Live installation media.

Step 2: Install Ubuntu 16.04 onto the Razer Blade (2016) Laptop

At this point complete the installation of Ubuntu as you normally would a standard EFI Ubuntu installation. Further configuration will be completed once booted into the installed system.

Ubuntu 16.04 installation instructions are available at the Ubuntu website here: http://www.ubuntu.com/download/desktop/install-ubuntu-desktop

Once Ubuntu 16.04 has been installed, shutdown the laptop ensuring that the installation media is removed when instructed.

Step 3: Boot the Installed Ubuntu 16.04 System

Press the power button to turn on the laptop. The system will boot directly to the Grub selection menu.

While the option ‘Ubuntu’ is highlighted, press the E button to edit the startup entry. Add the following options to the end of the line which starts with linux:

i915.preliminary_hw_support=1 nolapic nouveau.modeset=0

Once the three kernel arguments above have been added to the linux line; press the F10 key to boot the installed system.

Step 4: Modify the Grub Defaults file to Block the Nouveau Driver from Loading

Once at the desktop, open a terminal and edit the /etc/defaults/grub file.

xipher@RazerBlade:~$ sudo nano /etc/defaults/grub

Edit the file so that the GRUB_CMDLINE_LINUX_DEFAULT= option contains the nouveau.modeset=0 argument. Reference the example below taking note of the bold area.

# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="nouveau.modeset=0 quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"

Step 5: Install Linux 4.7.0 Kernel

To fully support the Razer Blade 2016 hardware, Linux Kernel version 4.7.0 or newer must be used. Ubuntu prepared 4.7 kernel packages can be obtained from the Ubuntu Mainline Kernel repository hosted at kernel.ubuntu.com.

Navigate to the following directory and acquire the 3 necessary packages for the 4.7.0 Linux kernel.

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7/

NOTE: Ensure that both the amd64 and all versions of the header packages are downloaded as well as the amd64 version of the image package.

linux-headers-4.7.0-040700_4.7.0-040700.201608021801_all.deb linux-headers-4.7.0-040700-generic_4.7.0-040700.201608021801_amd64.deb linux-image-4.7.0-040700-generic_4.7.0-040700.201608021801_amd64.deb

Once the three kernel packages have been downloaded, install them using your preferred package installation method. The simplest method is to use the gdebi-core application which can be installed from the system repositories.

xipher@RazerBlade:~$ sudo apt-get install gdebi-core

Use the gdebi application to complete the installation of the kernel packages in the order provided in example below. Attempting to install the kernel and header packages in any other order will fail with dependency errors.

sudo gdebi linux-headers-4.7.0-040700_4.7.0-040700.201608021801_all.deb sudo gdebi linux-headers-4.7.0-040700-generic_4.7.0-040700.201608021801_amd64.deb sudo gdebi linux-image-4.7.0-040700-generic_4.7.0-040700.201608021801_amd64.deb

Example of Linux 4.7.0 header package installation using gdebi:

xipher@RazerBlade:~/Downloads$ sudo gdebi linux-headers-4.7.0-040700_4.7.0-040700.201607241632_all.deb Reading package lists... Done Building dependency tree Reading state information... Done Reading state information... Done Header files related to Linux kernel version 4.7.0 This package provides kernel header files for version 4.7.0, for sites that want the latest kernel headers. Please read /usr/share/doc/linux-headers-4.7.0-040700/debian.README.gz for details Do you want to install the software package? [y/N]: Y (Reading database ... 230438 files and directories currently installed.) Preparing to unpack linux-headers-4.7.0-040700_4.7.0-040700.201607241632_all.deb ... Unpacking linux-headers-4.7.0-040700 (4.7.0-040700.201607241632) over (4.7.0-040700.201607241632) ... Setting up linux-headers-4.7.0-040700 (4.7.0-040700.201607241632) ...

NOTE: The most recent version of the linux kernel available at the time of writing is 4.7.3. Future versions may have improvements which increase the performance and / or stability of Ubuntu on this hardware. Check the mainline kernel repository regularly for Linux kernel updates and use this process to complete updates as new kernel releases are made available.

Once the Linux 4.7.X kernel has been installed, reboot the laptop to begin using the updated kernel.

Step 6: Remove the 4.4.0 Linux Kernel to Prevent Future Accidental Use

Once booted to the desktop, verify that Linux kernel version 4.7.0 is actively being used by running the uname -a command in a terminal.

xipher@RazerBlade:~$ uname -a Linux RazerBlade 4.7.3-040703-generic #201609070334 SMP Wed Sep 7 07:36:45 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Remove the original linux 4.4.0 kernel, which was installed at the time of system installation, and the generic kernel meta packages to prevent the installation of incompatible kernels as Ubuntu releases updates to the 4.4.0 kernel line in the future.

When the 4.4.0 kernel(s) have been removed, ensure the update-grub command is run to update the bootloader so that the 4.4.0 kernel entries are removed from the Grub menu as well.

sudo apt-get remove linux-image-generic linux-signed-generic linux-headers-generic linux-signed-image-generic linux-image-4.4.0-21-generic linux-headers-4.4.0-21-generic linux-headers-4.4.0-21 sudo update-grub

Step 7: Install the NVidia Drivers and Bumblebee to Enable Optimus GPU Switching

Install the NVidia Drivers and Bumblebee GPU switching application. Ensure that NVidia driver version 367.35 or newer is used so that the NVidia kernel module build does not fail for the Linux 4.7.0 kernel.

Follow the Ubuntu NVidia Optimus Guide for detailed instructions on completing the installation of the NVidia driver:

https://xipherzero.com/ubuntu-optimus-configuration/

Step 8: Install the Intel Processor Microcode Firmware

Open the Software & Updates application from the Dash menu. Select the ‘Additional Drivers‘ tab from the top of the application.

Below the NVIDIA Corporation drivers section is an Unknown device section. Click the radio button to use the proprietary Intel firmware to enable advanced features of the intel CPU. Select the ‘Apply Changes‘ button to complete the firmware application.

Once the Intel Firmware has been applied, reboot the laptop one last time to complete the installation.