Razer Blade

This page aims to document the problems and solutions that occur when running the latest Ubuntu on a Razer Blade. Due to the young age of this laptop this page is a work in progress, so feel free to contribute. Please note that this page is not for the Pro or the Stealth. Following is the support status of various parts of the different models when running Ubuntu 16.10.

Legend

  • IconsPage/ok.png (works out-of-the-box)

  • IconsPage/ok.png IconsPage/info.png (works after modifications)

  • IconsPage/warning.png (doesn't completely work)

  • IconsPage/dont.png (doesn't work)

  • IconsPage/question.png (not yet documented)

Suspend

The OS does not detect that the lid has been opened if the laptop is suspended. This can be fixed through the following modification:

1. Edit the default grub config:

  • sudo nano /etc/default/grub

2. Add button.lid_init_state=open to the end of the GRUB_CMDLINE_LINUX_DEFAULT option, like this:

  • GRUB_CMDLINE_LINUX_DEFAULT="quiet splash button.lid_init_state=open"

3. Run the following command to update grub one you are done:

  • sudo update-grub

Basic Graphics

Works fine out-of-box.

Switchable Graphics

There are two parts to switching between the Intel graphics and the NVIDIA graphics.

Per Session

If the official NVIDIA driver is in use, and the nvidia-prime package is installed, it is possible to switch either in the nvidia-settings GUI or using the CLI.

  • To switch using the GUI, run nvidia-settings and then click PRIME Profiles in the menu to the left.
  • To switch using the CLI, run prime-select <GPU> where GPU can be either nvidia or intel.

The main drawback of using this method is that it requires you to completely logout and log back in for the switch to happen. As in, all open programs have to be closed.

Per Application/Game (Offloading)

Offloading can be done through the old (but still working) Bumblebee package, or with the help of NVIDIAs official PRIME, or using the nouveau driver.

Bumblebee & NVIDIA driver

This method, despite being old and hacky, is the only straightforward one. Worth noting is that this will only work using the laptop monitor or an external monitor connected via USB-C (Thunderbolt/DisplayPort). It will NOT allow you to use the HDMI port on the Blade.

1. Make sure you are using the nvidia driver and make note of which major version you are running (e.g. 384 is the latest as of July 2017).

2. Switch to intel and then reboot:

  • sudo prime-select intel

3. Install bumblebee:

  • sudo apt-get install bumblebee bumblebee-nvidia

4. Edit the bumblebee config to point to the nvidia driver you are using:

  • sudo nano /etc/bumblebee/bumblebee.conf

5. Edit the following values in the [bumblebeed] section:

  • Driver=nvidia

6. Edit the following values in the [optirun] section:

  • Bridge=primus

7. Edit the following values in the [driver-nvidia] section:

  • KernelDriver=nvidia-384
    ...
    LibraryPath=/usr/lib/nvidia-384:/usr/lib32/nvidia-384
    ...
    XorgModulePath=/usr/lib/nvidia-384/xorg,/usr/lib/xorg/modules

8. Save and reboot.

9. To run an application or game using the NVIDIA card, prefix the command by "optirun" (e.g. "optirun mygame").

10. To test if it works, first run "glxinfo | grep OpenGL" and make sure it says Intel in the output, then run "optirun glxinfo | grep OpenGL" and make sure it says NVIDIA in the output.

(11.) To run a Steam game using optirun, edit the launch parameters and set them to "optirun %COMMAND%".

NVIDIA PRIME

Recently development for supporting Optimus through the official driver has finally picked up the pace. However, as of July 27th, 2017, it does still not support render offloading. The latest development can be found in this thread.

nouveau driver

Offloading is supposedly already supported when using the Nouveau driver. The commands for controlling it are these:

xrandr --listproviders
xrandr --setprovideroutputsource
xrandr --setprovideroffloadsink

However, more research needs to be done on how to get it all working on the Blade.

External Monitor

There are a few different parts to the problem of connecting an external monitor depending on which driver and GPU are in use. The HDMI port is directly connected to the NVIDIA graphics, while the USB-C/Thunderbolt can be used as a DisplayPort/HDMI using an adapter/hub. That one is connected to the Intel chipset and can therefore work no matter which GPU is in use (and will even output during BIOS/Pre-boot).

Also worth noting is that a major bug in Unity 7 prevents you from using both the external and the internal monitor in an extended configuration (the desktop will appear stretched out over both monitors, instead of actually being extended). Using only one of the monitors, or the mirror mode, works fine. Other desktop environments work flawlessly, such as GNOME Desktop (the default starting with Ubuntu 17.10).

NVIDIA driver: Using the Intel graphics

The DisplayPort (through the USB-C/Thunderbolt port) works flawlessly. The HDMI port is inaccessible.

Tested NVIDIA version: 384

NVIDIA driver: Using the NVIDIA graphics

Both the DisplayPort (through the USB-C/Thunderbolt port) and the HDMI port work fine.

Tested NVIDIA version: 384

nouveau driver: Using the Intel graphics

The DisplayPort (through the USB-C/Thunderbolt port) is untested, and a known configuration to output to the HDMI port has not been found. However, it should be possible according to this documentation page, but running the xrandr --listproviders command only yields one provider, the Intel (aka modesetting) one. The first step in figuring this out is to get it to detect the second provider (nouveau).

nouveau driver: Using the NVIDIA graphics

No testing has been done with this configuration, as it is unclear how to switch to the NVIDIA graphics using the nouveau driver.

Keyboard

Works fine out-of-box.

Chroma

The keyboard can be controlled using terrycain's drivers combined with Polychromatic. The full installation instructions for both can be found on the Polychromatic github repo.

Multimedia Keys

Works fine out-of-box.

Touchpad

Tap-to-click might not be enabled out-of-box. Everything else (two-finger scrolling, the buttons, navigation etc.) works fine. If the Xorg Synaptics library (xserver-xorg-input-synaptics) is in use, tap-to-click can be enabled from the interface (Settings -> Mouse & Touchpad). If you are running a newer version of Unity/Gnome etc. libinput (xorg-input-libinput) might be in use instead. As of April 3rd, 2017, the "Mouse & Touchpad" configuration interface does not support all the options of libinput, therefore the CLI has to be used.

How to change the touchpad settings via the CLI

1. Execute the following command and note down the ID for the last item in the Virtual Core Pointer list:

  • xinput list

2. Execute this command to list the available settings for the touchpad:

  • xinput list-props <device ID>

3. To change a property, execute this command:

  • xinput set-prop <device ID> <prop ID> <new value>

Wireless

Works fine out-of-box.

Bluetooth

Works fine out-of-box.

Sound

Works fine out-of-box.

Microphone

Works fine out-of-box.

Combo Jack

Works fine out-of-box.

Webcam

It activates but it is unusable due to graphical glitches. There is no known solution at the moment. Reportedly, decreasing the resolution of it might fix it.

Fan Control

Feel free to add to this section (and to the table above) if you have experimented with controlling the fans. Other than that, they run fine out-of-box. Similar to Windows.

RazerBlade (last edited 2017-07-28 15:47:46 by fgblomqvist)