linux:rbs

This is an old revision of the document!


Razer Blade Stealth Compatibility

As a Razer Blade Stealth owner, since Stealths have a few known issues with their Linux compatibility here is a good place to start for work-arounds and temporary fixes :

Roland Guelle GitHub

In this page I listed all the fixes and workarounds I had to implement to get a working version of Linux Mint 19.1 on my RBS. It was not very difficult and not a frustrating experience at all.

I have not encountered all the bugs listed in Roland Guelle's GitHub so I have not yet applied all the fixes he proposes. Some of them were of assistance though.

My Stealth Model is a RZ09-0239

Following Roland Guelle's instructions, the first things I did before attempting to install Linux in dual boot were :

  • Run all Windows 10 updates.
  • Check for INTEL-SA-00086 Intel Management Engine Critical Firmware Vulnerability (my Stealth passed the test successfully and was not vulnerable)
  • Clean up and free space using Windows utility (Start > cleanmgr (Run as Administrator))
  • Clean using Bleach Bit
  • I did not use Windows to resize the disk as Roland did. Instead, I ran a live session of GParted to resize the Windows partition to smaller than Windows 10 would allow (465GB > 120GB)
  • I ran a live session of Linux Mint 19 (linux kernel 4.15.0-20) and used the installer. Contrary to previous versions of Ubuntu installers it did not end with segfaults as Roland's did and the installation was correct.
  • Be mindful that the disk tag is not a classic /dev/sdx# but something more fancy like /dev/nvme0n1p#
  • The dual boot did not break Windows boot and Grub was installed correctly.
  • Setup timeshift to make system snapshots daily, weekly, monthly and at boot
  • Update intel microcode as advised by Roland (and reboot)
  • Update the system

Key rule in systems : if it works, don't break it

Apparently this issue was encountered on some laptops running different versions of Ubuntu from 16.04 upwards.

This fix uses pm-utils which is usually installed on fresh installs of mainstream distributions. We backup the configuration file we will tweak just in case.

sudo apt-get install pm-utils
sudo cp /etc/systemd/logind.conf /etc/systemd/logind.conf.bak
sudo gedit /etc/systemd/logind.conf

Uncomment the following lines and change the values accordingly :

HandleSuspendKey=suspend
HandleLidSwitch=suspend
HandleLidSwitchDocked=suspend
LidSwitchIgnoreInhibited=yes

Edit the Grub conf file and add this value :

sudo gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="button.lid_init_state=open"

More info on button.lid_init_state

The screen flickering issue causes the screen to flicker to black for an instant. You can check this by running :

dmesg | grep 'ERROR'

You have the issue if you see one or more lines like theese

[drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun

A work-around to this issue is adding the following parameter to the kernel :

intel_idle.max_cstate=4

To make the change apply on every boot add it in the file

/etc/default/grub

at the following line :

GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=4"

Run :

sudo update-grub

and reboot to apply.

You can check which parameters were passed to kernel at boot by running :

cat /proc/cmdline

Screen seems to randomly go black on external monitor.

GitHub thread on the subject

Setting the sound output to “HDMI / DisplayPort - Built in Audio” seems to fix the issue.

Another workaround if the previous option is not available could be to plug an audio output to the 3.5 jack → This needs to be validated by experience (23/06/19)

RBS set up for smooth mplayer experience

  • Remove media OSD in Cinammon > System Settings > Notifications
  • Switch Background to full black
  • Careful, switching workspaces causes little stutters on the external monitor
  • Some unidentified manipulations can cause the terminal running mplayer to have a CTRL-lock even with the CTRL unpressed. This locks you out of mplayer → Investigate

This requires to be using libinput instead of synaptics. You can check this by running these commands using the proper device ID.

xinput list
xinput list-props <DEVICE-ID>

Install the following packets :

sudo apt install xdotool wmctrl libinput tools
git clone http://github.com/bulletmark/libinput-gestures
cd libinput-gestures
sudo ./libinput-gestures-setup install

Add your user to 'input' group and log out/log in to validate the change :

sudo gpasswd -a $USER input

To start the process, or restart it :

libinput-gestures-setup start|stop|restart|autostart|autostop

Note : the autostart/autostop will enable the app to start/stop automatically on login

The configuration file is located at /etc/libinput-gestures.conf and a user-specific one can be created at ~/.config/libinput-gestures.conf

More ressources on libinput-gestures github

Install the OpenRazer Daemon :

sudo add-apt-repository ppa:openrazer/stable
sudo apt update
sudo apt install openrazer-meta

Install the Polychromatic Controller :

sudo add-apt-repository ppa:polychromatic/stable
sudo apt update
sudo apt install polychromatic

Add user to plugdev group :

sudo gpasswd -a $USER plugdev

Note : Hardware security signing features need to be disabled in BIOS for the daemon to work properly.

OpenRazer Official Site Polychromatic Controller GitHub

Horizontal scrolling is deactivated on the touchpad by default. You can check this by running

xinput list

A list will appear looking like this

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Razer Razer Blade Stealth               	id=12	[slave  pointer  (2)]
⎜   ↳ Razer Razer Blade Stealth               	id=13	[slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                        	id=14	[slave  pointer  (2)]
⎜   ↳ 1A586757:00 06CB:8323 Touchpad          	id=15	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ USB Camera: USB Camera                  	id=10	[slave  keyboard (3)]
    ↳ Razer Razer Blade Stealth               	id=11	[slave  keyboard (3)]
    ↳ Razer Razer Blade Stealth               	id=16	[slave  keyboard (3)]

My touchpad id is 15. You can list the device properties by running

xinput list-props 15

Change the following line from 0 to 1

libinput Horizontal Scroll Enabled (284):	0

By running :

xinput set-prop 15 284 1

Change your device ID and libinput property if required (respectively 15 and 284 here).

To render this change permanent at every boot, add this command at startup :

xinput set-prop "1A586757:00 06CB:8323 Touchpad" "libinput Horizontal Scroll Enabled" 1

Device IDs and libinput property numbers may vary so it's best to use the full identifiers in this case.

There might be a way to edit the config file located at /usr/share/X11/xorg.conf.d/40-libinput.conf and adding something but I haven't been able to make it work that way yet.

Updated procedure for Linux Mint 22 and eGPU running Nvidia GTX 1060 6GB

Thunderbolt (TB3/TB4) is explicitly designed for hot-plugging.

It uses :

  • Hot-plug–safe PCIe tunneling
  • Overcurrent protection
  • Digital handshaking before enabling high-power lanes
  • Cable and device negotiation before link-up
  • Mandatory protective circuitry required by Intel’s TB certification

You are supposed to plug and unplug TB devices while the system is powered — that’s how eGPUs, docks, displays, and drives are meant to work.

There is no scenario in which hot-plugging a functioning Thunderbolt cable damages the hardware.

Plug-in sequence

- Power on laptop normally
- Log into desktop
- Turn ON the eGPU enclosure
- Wait 2–3 seconds (GPU initializes)
- Plug in the Thunderbolt cable
- Wait for the OS to detect/authorize the eGPU

Unplug sequence

- Close any apps using the eGPU (optional but safer)
- Save your work
- Unplug the Thunderbolt cable
- Wait 2–3 seconds
- Power OFF the eGPU enclosure if desired

Note: On older Thunderbolt 3 laptops (e.g. 2017 Razer Blade Stealth), the eGPU must be plugged after boot, otherwise the system may hang during startup.

1. Install Thunderbolt tools

sudo apt install bolt thunderbolt-tools

Ensure the bolt service is running:

systemctl status bolt

2. Verify Thunderbolt controller

lspci | grep -i thunderbolt
lsmod | grep thunderbolt

Expected:

  • Intel Thunderbolt controller listed
  • thunderbolt kernel module loaded

3. BIOS configuration

In BIOS:

  • Thunderbolt: Enabled
  • Security Level: No Security (SL0)

⚠️ Required, otherwise devices may not enumerate under Linux.

4. Connect and authorize the eGPU

Boot the laptop without the eGPU connected.

Then:

  • Power ON the Core X
  • Plug the Thunderbolt cable

Check detection:

boltctl list

If needed:

sudo boltctl authorize <UUID>

Verify PCIe device:

lspci | grep -i nvidia

5. Install NVIDIA driver

Install the recommended driver (for GTX 1060):

sudo apt install nvidia-driver-535

⚠️ Do NOT use NVIDIA .run installer (breaks package management and updates)

6. Disable nouveau driver

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u

Reboot (without eGPU connected).

7. Create PRIME offload helper

Linux Mint 22 does not provide prime-run by default.

Create it manually:

sudo nano /usr/local/bin/prime-run

Content:

#!/bin/sh
__NV_PRIME_RENDER_OFFLOAD=1 \
__GLX_VENDOR_LIBRARY_NAME=nvidia \
__VK_LAYER_NV_optimus=NVIDIA_only \
__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 \
exec "$@"

Make executable:

sudo chmod +x /usr/local/bin/prime-run

8. Test GPU usage

Connect the eGPU after boot, then run:

nvidia-smi

You should see the GTX 1060 listed.

Test offloading:

prime-run glxinfo | grep "OpenGL renderer"

9. Usage

Run applications on the eGPU:

prime-run <application>

Example:

prime-run blender
prime-run steam

10. Important notes

  • Laptop must boot without eGPU connected (known limitation on this hardware)
  • eGPU must be hot-plugged after login
  • Internal display introduces a ~20–30% performance penalty (PCIe copy-back)
  • External monitor connected to the GPU removes this penalty completely
  • Cycles rendering (Blender) is not affected by this limitation
  • linux/rbs.1776202341.txt.gz
  • Last modified: 2026/04/14 23:32
  • by mh