Installing Ubuntu 16.04 on Razer Blade (2016)

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.

additional_drivers

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

58 thoughts on “Installing Ubuntu 16.04 on Razer Blade (2016)

  1. tlang

    Hi Xipher,

    I have been trying to make Mint work on my blade. I got everything to work except for nvidia card, webcam and suspend.
    Does your solution fix the suspend issue? Since I have not tried the new kernel 4.7, I don’t know if it fixed my issue.
    Please let me know.

    Thanks!

    Reply
      1. xipher Post author

        Yep. Power management including P and C State transitions were addressed in the 4.7.X kernel releases. This means that all power states work including sleep and resuming from sleep.

        Reply
        1. Adam

          Hmm personally I’m not so sure. I tried out the 4.7.3 kernel today and after reverting HandleLidSwitch in /etc/systemd/logind.conf to suspend and restarting systemd-logind, I’m still seeing suspend loops after resuming a suspend with the lid switch.

          Reply
          1. xipherzero

            Hmm, I wonder if there are slightly different hardware revisions of the Blade out there. I have not experienced any problems with sleep / wake or low power modes since upgrading to the 4.7.x series of kernels.

  2. xipher Post author

    To get the NVidia card working you can follow the Optimus Guide. The 4.7.0 kernel supplies all the needed Intel Skylake Mobile APIC fixes so proper power management works (IE Sleep).

    Mint is really just Ubuntu. You can follow this guide to get it working as well (Just substitute Mint specific stuff for Ubuntu stuff). Your other option may be to just install the mainline 4.7.0 kernel and add the nouveau.modeset=0 flag in grub.

    The webcam is the only thing I haven’t been able to get working.

    Reply
  3. Corentin Valleroy

    Hello,
    The sound does not work on the speakers, However it works when I plugged headphones.
    Do you have any idea how to fix it?

    Reply
    1. xipher Post author

      I have been running into this intermittently when connected to a TV via HDMI. For me the fix has been to unplug the HDMI and reboot the laptop, but I’m not sure if that will work for you.

      Reply
  4. Addison Merchut

    Awesome guide! This has almost pushed me over the edge to buy one. How’s your battery performance? And does the backlit keyboard work?
    I’m looking at getting the 13inch Stealth. Think this process will work for that guy as well?
    Thanks for the write up!

    Reply
    1. xipher Post author

      Hi Addison! The battery performance under Linux is still on the poorer side coming in around the 3 hours mark, but I expect that to improve as the drivers get sorted out.

      The way I installed Ubuntu left Windows on the system. The keyboard can be configured in Windows and will stay when you boot Linux, so I set it in the Synapse app and then forget it.

      I’m confident the process should work on the Stealth since it has the same Intel parts. The biggest difference between the Stealth and the Blade is the graphics card and size. They are both Skylake Intel systems. The biggest thing holding the blade back was Intel drivers for Skylake Mobile so you should be fine with the Stealth.

      Reply
      1. Liz

        Are there any parts of this guide that shouldn’t be followed if installing Ubuntu on the Stealth. I recently installed Ubuntu on my stealth and have been experiencing several graphics problems. Wondering if I got a lemon or if it’s because I installed incorrectly.

        Reply
  5. Dylan Silva

    Hello! Did wireless work on install OOB? Also, have you thought about Fedora at all on your box as a comparison?

    Reply
    1. xipher Post author

      Hi Dylan! Wireless worked fine OOB once a current Kernel was installed. I have noticed that the network speed capped at 6Mbps, but this is due to incorrect firmware being loaded by the ath10k kernel module:

      [    5.163213] ath10k_pci 0000:3b:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:3b:00.0.bin failed with error -2
      [    5.163226] ath10k_pci 0000:3b:00.0: Direct firmware load for ath10k/cal-pci-0000:3b:00.0.bin failed with error -2
      [    5.163716] ath10k_pci 0000:3b:00.0: Direct firmware load for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2
      [    5.163720] ath10k_pci 0000:3b:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
      [    5.165067] ath10k_pci 0000:3b:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1a56:1535
      [    5.165070] ath10k_pci 0000:3b:00.0: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
      [    5.165561] ath10k_pci 0000:3b:00.0: firmware ver WLAN.RM.2.0-00180-QCARMSWPZ-1 api 4 features wowlan,ignore-otp,no-4addr-pad crc32 75dee6c5
      [    5.230073] ath10k_pci 0000:3b:00.0: board_file api 2 bmi_id N/A crc32 46b57247
      

      If someone can find the correct firmware file for the Atheros wifi chip (0x05030000 chip_id 0x00340aff) we should be able to get the full 802.11ac speeds out of it.

      As for Fedora; Redhat’s package management system and I have never really gotten along 😉 . There is no reason Fedora shouldn’t run on the Blade, but I’m not in any hurry to test it myself.

      Reply
      1. Eric Anders

        I’m having the same problem where the buttons are working but the touchpad surface itself isn’t. For me it’s on the fully installed system.

        Reply
          1. xipher Post author

            It looks like there maybe different HW pads being used on the Blade. Many of the touchpads work with the default synaptics driver. You can try installing the libinput driver to see if it will work better.

            sudo apt-get install xserver-xorg-input-libinput

            Let me know if this fixes the issue. If so, Ill add it to the guide.

          2. Vlad Zamfir

            Removing “nolapic” from the grub + linux launcher fixed this issue for me. Hope this helps.

  6. Amazing Grace

    Just an edit I would suggest: Do not use linux kernel 4.7.1, and stick to kernel 4.7.0 instead. The Razer Blade has an issue where linux will not register a lid open, and will thus go on a suspend loop once you open the lid to resume from suspend. Fixing this requires acpi_call, which is not supported for 4.7.1.

    Additionally, you can extend your battery time by unloading the nvidia driver completely (such that “cat /proc/acpi/bbswitch” shows OFF.) This bumped up my battery from ~4 hours at most (3 average) to ~8 hours at most (7 average.)

    Reply
    1. xipher Post author

      Hello Amazing Grace!
      Thanks for the edit recommendation, I have reverted the guide to instruct installation of the 4.7.0 kernel. This may help people who are experiencing the suspend issue. Also, thank you for the tip on extending battery life. I may write a guide to walk people through unloading the Nvidia binary driver and setting bbswitch OFF.
      Cheers!

      Reply
    2. jacob

      Could you briefly explain how to unload the nvidia driver completely? After following this guide, no matter what I try, `cat /proc/acpi/bbswitch` shows ON.

      Reply
      1. xipher Post author

        The bumblebee package has a bug that does not end the nvidia modules and does not turn off the graphics card after use. To manually turn the nVidia card off the following should be done:

        sudo rmmod nvidia_uvm
        sudo rmmod nvidia_drm
        sudo rmmod nvidia_modeset
        sudo rmmod nvidia
        sudo tee /proc/acpi/bbswitch < << OFF
        

        This can be scripted to make life easier.

        Reply
  7. Tim Felbinger

    I also have the Blade 2016. Is it possible to install Ubuntu on a flash drive and still have it run on the Blade? I want to keep my internal drive for windows only and use Ubuntu only on the USB.

    Reply
    1. xipher Post author

      Because of the need to use a 4.7 kernel using the current ISO image from Ubuntu will be painful. You can use the kernel options in the guide to get the live instance booted, but you will only have access to a single core with no hyperthreading so its performance will be horrible. I would suggest possibly using an external USB 3 harddrive and installing on that. It will still be much slower than if you were installing natively, but will be simpler than trying to get the live USB instance to work.

      Reply
  8. Jason Libbey

    Hey thanks for the guide, followed it to the letter and just about everything works perfectly. The one thing I cannot figure out is how to get my touchpad working (it’s not a huge deal because I usually use a mouse, but it would be nice). I’ve exhausted google so if you have any suggestions I’d really appreciate it.

    Reply
    1. xipher Post author

      You can try using the libinput driver instead of the synaptics driver. I suspect there are different trackpads in the Razer Blade which is making it so that the default drivers work for some, but not for others.

      sudo apt-get install xserver-xorg-input-libinput
      sudo apt-get remove xserver-xorg-input-synaptics
      
      Reply
      1. Eric Anders

        Hello, first thanks for the great guide! However, I tried following your instructions to install the libinput drivers instead of the synaptics drivers, but the trackpad still isn’t working. Do you have any other recommendations?

        Reply
  9. victorcui

    Hi thanks for this post. when i am on step 2 i dont see a install ubuntu alongside with windows 10 option , is this suppose to happen or my bootstick is damaged somehow?

    Reply
  10. brian

    Wow, this was outstanding! I got everything working except the touchpad. It seems there are multiple flavors and my razer blade has the 20f version as well. That aside, without thinking too much of it I ran the regular ubuntu software update today (2016/11/03) and now on reboot it freezes with a small text login and lightdm never comes up. Any suggestions on which of the bazillion packages ubuntu crushed I need to try to rollback =(?

    Reply
  11. Tim

    Hi, I followed your guide and I think I got everything working! So thank you! Except two things: the touchpad doesn’t work no matter what I do, so I’m forced to use a mouse. and the second thing is my screen flickers every time I use chrome the screen begins to flicker and I don’t know why. Any suggestions?

    Reply
    1. Tim

      Also! Whenever I try to witch cat /proc/acpi/bbswitch to off using tee /proc/acpi/bbswitch, the process says it turns off, but when I check the status, it’s still on. Any ideas as to why that might be happening?

      Reply
  12. Kyle Melton

    Have you tried using your setup with an external monitor (or tv in my case)? I have an issue with the latest nvidia driver not recognizing that there are 2 separate monitors, and instead being super glitchy and breaks just about everything.

    Reply
  13. jerome

    Installed it on my blade 2016, worked like a charm thanks, is there anything newer than 4.7.0 that you would recommend?

    Reply
  14. ash

    Firstly Thank you for this guide! Do you have a donate button or something I can contribute to?
    Secondly, I got everything working after following the guide exactly however the steam launch option “LD_PRELOAD=”libpthread.so.0 libGL.so.1″ __GL_THREADED_OPTIMIZATIONS=1 optirun %command%
    ” leads to games loading in the background and freezing. Basically If im running on intel I cannot get the nvidia driver to work unless I go into the nvidia app, switch and log out (and vice versa for nvidia to intel).

    Is there something I may have done wrong?

    Again thank you. I’m willing to pay for the solution

    Reply
  15. tsawallis

    Hi, thanks for the great guide. I’m trying to get this installation running on a Razer Blade 2016 European model (with German keyboard). I’m stuck on step 5: booting into the 4.7.0 kernel inactivates my keyboard. It works again if I plug in an external USB keyboard on boot. That is, with the external keyboard plugged in, both keyboards work, whereas if the external keyboard is not plugged in at boot then only the external keyboard works.

    I tried installing the 4.7.10 kernel (current most updated) but this doesn’t even boot — hangs trying to access ramdisk.

    Any ideas? I’ve not found anything informative in /var/log/syslog.

    Reply
  16. Rems

    Hello Xipher,
    Thanks a lot for these tutorials, very helpful!
    I’m running into the suspend loop issue though (or so I think), with the 4.7.0 kernel. After closing and opening the lid, it logs out and I see a message on the screen mentioning “mei_me timer: init client timeout hbm_state=2”. I tried blacklisting mei and mei_me modules but it didn’t solve it (as suggested here and there).
    Would you have any idea on how to solve this?
    Cheers!

    Reply
    1. xipher Post author

      I have moved away from the Razer due to dodgy hardware and tepid support from Razer, so I’m not really able to help answer this.

      Reply
      1. Laura

        Hi Xipher,
        Thanks. This post was very helptful. Out of curiosity, what laptop did you end up getting? I am trying to decide on a laptop that could run Ubuntu alongside Windows, and found your post. Thank yo so much.

        Reply
        1. xipher Post author

          I ended up on an Alienware 15R3 since I can use the external PCIe bus for GPU upgrades in the future. The Razer Core is NOT working and will probably never work with Linux… 🙁

          Reply
          1. Iiari

            Interestingly, Razer has signaled their intent recently to do a Linux exclusive laptop. For those of us considering current models for Linux, How easy was the 15R3 to adapt to use with Linux? Thanks!

          2. xipher Post author

            Well, I moved from Ubuntu due to update package quality issues, but on Manjaro I have had exactly ZERO problems! Using the non-free boot option on the live installer media I was able to boot into a graphical desktop and haven’t had to do anything. Much simpler experience than on the Razer. Not sure if Manjaro would be simpler on the Blade, but at this point things are working very well on the 15R3 and Manjaro.

          3. Scott

            Not true. Currently I am using the laptop with the Core and an NVIDIA 1070 with Ubuntu 16.04. Works perfectly….Unfortunately, it required using a hacked BIOS to get an option that doesnt exist in the standard one that they ship with. But my guess is Razer will eliminate that hurdle in a future BIOS upgrade.

          4. xipher Post author

            Hello Scott,

            That’s great news! When I gave up on the Razer there wasn’t any real information on how to configure that. By chance can you direct me to instructions on how to get that running?

            Xipher

  17. Davd

    Thank you for the guide! I decided to install Ubuntu 16.10 instead of 16.04 so I didn’t need to do all of the kernel stuff.

    My Razer Blade is now mostly working. The only thing that I’m having problems with is external monitors. If I plug in an HDMI cable into the laptop, I don’t get any display on the external monitor. In addition, it disables click and scroll on the trackpad which is really annoying.

    I can open NVIDIA X Server Settings, enable the GPU, logout, re-open and click on “X Server Display Configuration,” I can change displays from “PRIME Display” to “X Screen 0.” At that point, I can connect an external display; however, now my laptop’s built-in monitor no longer works.

    Any ideas?

    For reference, I have the Razer Blade 256GB option, and have installed 378.13 NVIDIA drivers (open source). I didn’t enable any of the sexy graphics stuff (FXAA). I also executed ‘sudo prime-select nvidia’ to just use the real gpu all the time.

    If you need any other information from my system, let me know. Thank you!

    Reply

Leave a Reply