Installing Linux Mint on an XPS13 (9350)

Multithreaded JavaScript has been published with O'Reilly!

The XPS13 2016 edition (the 9350) runs Linux pretty good, gets 8 hours of battery life, that is after you've done a bit of configuration. With this machine sporting a bleeding 6th Gen Intel Skylake you'll need to upgrade the Linux Kernel.

Upgrade BIOS

The BIOS is a bit outdated. With the old BIOS you'll find that audio sounds pretty bad. Upgrading the BIOS really isn't that hard.

If you're still on the Windows OS it ships with, download the 1.3.3 EXE and double click it to install.

If you're already in Linux, believe it or not you'll still need that EXE:

wget http://downloads.dell.com/FOLDER03596893M/1/XPS_9350_1.3.3.exe
sudo mv XPS_9350_1.3.3.exe /boot/efi/

Once the file is there reboot your machine, press F12 to go into BIOS settings, go the the BIOS update screen, select the EXE file from the menu and install it.

Note: The BIOS from Dell has been updating pretty regularly, so keep an eye on the Drivers Page for the latest version.

Replace Broadcom WiFi

The wireless card which ships with the device has poor range and poor Linux compatibility. I swapped mine out with an Intel 7265 and I recommend you do, too:

When I first tried to use pure Debian, I found the driver wasn't present (it's non-free ya know) and had to download the Linux 4.3+ Driver. Mint shouldn't need it, but just in case:

wget https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7265-ucode-16.242414.0.tgz

Kernel Upgrade

By default Mint 17.3 comes with the Linux kernel 3.19. A bunch of new Skylake compatibility arrived in kernel 4.4, 4.5, and 4.6. You'll want to upgrade to that:

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.6.2-yakkety/linux-headers-4.6.2-040602-generic_4.6.2-040602.201606100516_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.6.2-yakkety/linux-headers-4.6.2-040602_4.6.2-040602.201606100516_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.6.2-yakkety/linux-image-4.6.2-040602-generic_4.6.2-040602.201606100516_amd64.deb
sudo dpkg -i *.deb

Once you reboot you'll have the option to use the new Kernel in the GRUB menu. Stability has been fine for me with 4.4, 4.5, and even 4.6.

Uninstall VirtualBox Guest Addons

For some reason the VirtualBox client was installed both on my Dell XPS and Lenovo laptop. I'm guessing this is a flaw with Linux Mint. With these present I was seeing shutdowns hang.

sudo apt-get purge virtualbox*

Enable Suspend on Lid Close

Not sure why this wasn't configured to happen automatically, perhaps the feature wasn't compatible with the default kernel. By default closing the lid will simply lock the screen (and catch your laptop bag on fire).

vim /etc/systemd/logind.conf

Either uncomment or add the following line:

HandleLidSwitch=suspend

Pending a reboot (perhaps simply a logout) should enable suspend on close.

Configure Trackpad

The Trackpad is a bit fickle. Coming from an Apple computer, this is the biggest shortcoming for me.

What I did was create and edit a /etc/X11/xorg.conf.d/50-synaptics.conf file and add the following content:

Section "InputClass"
  Identifier "touchpad"
  Driver "synaptics"
  MatchIsTouchpad "on"
    Option "PalmDetect" "1"
    Option "HorizTwoFingerScroll" "1"
    Option "TapButton1" "0"
    Option "TapButton2" "0"
    Option "TapButton3" "0"
    Option "MaxTapTime" "0"
    Option "VertScrollDelta" "-50"
    Option "HorizScrollDelta" "-50"
    Option "VertEdgeScroll" "0"
EndSection

Basically this enables palm detection, increases scroll speed, adds natural scrolling, and disables tap to click (otherwise anytime I type, something is getting accidentally clicked). These settings get me closer to how the MBP feels.

External Video over USB-C

If you want to get external video working you're going to need to upgrade to at least the 4.5 kernel (go for the 4.6, it's ok!), and you'll want to buy a compatible device.

I purchased this one from Amazon for $50 and video, ethernet, VGA, and USB 3.0 ports all work great, video displays at 60Hz on my 1920×1080 external display.

201014-BLK-N
201014-BLK-N

Cable Matters USB-C to HDMI / VGA / Ethernet / USB Multiport 4K UHD Adapter

What Doesn't Work?

  • Fullscreen Youtube videos have a flickering HUD
  • Fullscreen Minecraft can have visual defects (maximized = OK)
  • Playback of some MKV videos are vertically flipped
  • When the machine boots there are horrible popping noises and 60Hz hum
  • Occasionally the machine will stay awake when the lid closes, be careful!
Tags: #linux #laptop
Thomas Hunter II Avatar

Thomas has contributed to dozens of enterprise Node.js services and has worked for a company dedicated to securing Node.js. He has spoken at several conferences on Node.js and JavaScript and is an O'Reilly published author.