Segfault > IT > Hardware > Notebook Dell XPS 13 9350 (2015)
First published on: 02.Feb.2016

Last update: 22.Aug.2016

Notes about notebook Dell XPS 13 9350 (2015) running Gentoo Linux

General

This notebook replaced my older Lenovo Yoga S240.

There isn't really much to say: I'm using it since 1 week and so far it worked well and had no surprises.

Edit 22.Aug.2016:
- I advice to avoid this laptop if you can - due to problems with backlight&display and keyboard.
- the "suspend" (to RAM) function works great.

 

Useful notes/remaks by Arch Linux are here.

Important information #1
Perform a BIOS update before getting rid of Windows - mine is currently using BIOS version 1.1.9 (more recent versions exist).
There were some interferences on the screen while performing the BIOS update (they then disappeared).

Important information #2
Use at least kernel 4.4.0 - all devices work out of the box with this kernel version.

Important information #3
The notebook does not use one of the usual SATA-drives, but an "NVM Express".
The usual "ahci" module is therefore useless => you'll need the module "nvme" in oder to be able to see and handle the harddisk/SSD.

Important information #4
I tried to use UEFI & GPT, but gave up after having tried for 2 days.
Maybe it did not work because I wasn't yet aware of the next point, but in any case the classic MBR & MS-DOS partitions works perfectly.

For MBR & MS-DOS to work go into the BIOS-setup (keep pressing F2 during boot), then set:

  • "System Configuration => SATA Operation" to "AHCI"
  • "General => Boot Sequence => "Boot List Option" to "Legacy" (ensure that the "SSD" is selected at the top).

Important information #5
Even when using the normal "old-style" MSDOS partitions and MBR, Grub2 was not able to make the harddisk/SSD bootable because it did not properly recognize the nvme-device.
I fixed this by using the Gentoo package "grub-2.02_beta2-R9" and by performing Grub's installation with the following command: "grub2-install --modules=part_msdos /dev/nvme0n1".
I'm not sure if just 1 of the things would have fixed the problem.


CPU

My variant has an "Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz".


Backlight

On Gentoo the hotkeys did not work out of the box (maybe better on Ubuntu & Co.) but the HW & kernel are ready for it.
In the worst case you can use "xbindkeys" or acpi events that trigger shell scripts like these ones:

Increase the brightness:
================
#!/bin/bash

#CHANGEME - Settings
BRIGHTNESSDEVICE="/sys/class/backlight/intel_backlight/brightness"
INCREASEBY=50

CURBRIGHTNESS=$(cat $BRIGHTNESSDEVICE)

NEXTBRIGHTNESS=$(expr $CURBRIGHTNESS + $INCREASEBY)

echo CURBRIGHTNESS $CURBRIGHTNESS
echo NEXTBRIGHTNESS $NEXTBRIGHTNESS

$(echo $NEXTBRIGHTNESS > $BRIGHTNESSDEVICE)
================

Decrease the brightness:
================
#!/bin/bash

#CHANGEME - Settings
BRIGHTNESSDEVICE="/sys/class/backlight/intel_backlight/brightness"
DECREASEBY=50

CURBRIGHTNESS=$(cat $BRIGHTNESSDEVICE)

NEXTBRIGHTNESS=$(expr $CURBRIGHTNESS - $DECREASEBY)

echo CURBRIGHTNESS $CURBRIGHTNESS
echo NEXTBRIGHTNESS $NEXTBRIGHTNESS

$(echo $NEXTBRIGHTNESS > $BRIGHTNESSDEVICE)

================

The hotkey keys to change the keyboard backlighting worked out of the box.

Edit 22.Aug.2016:
the laptop uses something that Dell called CABC ("Content Adaptive Brightness Control") which you cannot switch off in any way (built in some firmware without any option to switch it off - newer laptops seem to have it as well).
In my case on Linux, I switch often between a virtual desktop that displays only consoles/shell (therefore mainly a dark background) and a virtual desktop that displays only browsers (therefore mainly a white background) and the automatic&forced brightness change just drives me crazy => when I switch from console to browser everything I always think "mmhhh, quite dark" and then it slowly becomes brighter, and as well the opposite.
Absolutely stupid that something was forced upon the users without giving them a chance to disable the mechanism.


Graphics card

No problems - I did not have to set any kernel parameter nor anything in xorg.conf.


Framebuffer

No problems at all - as soon as the Linux kernel is loaded and the i915 driver becomes active you switch to native resolution.
I did not have to set any kernel parameter.


Screen

My notbook has FullHD screen (1920x1080, no touchscreen) and as the big advantage of the XPS 13 is that its screen has very slim borders, I did not have to set any "zooming" settings anywhere - the characters/graphics is big enough to be read.

Edit 22.Aug.2016
Have since a few weeks a dead pixel - never happened before.


Clickpad

Very slick and big.

I did not fully configured it - the current contents of xorg.conf look like this:
=================
Section "InputDevice"
        Identifier "Clickpad"
        Driver "synaptics"
#All synaptics options available with "man 4 synaptics"

        Option "TapButton1" "1" #Left mouse button
        Option "TapButton2" "3" #Right mouse button
        Option "TapButton3" "2" #Middle mouse button

        Option "ClickPad" "true"
        Option "EmulateMidButtonTime" "0"

        Option "FingerLow" "35"
        Option "FingerHigh" "40"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"

EndSection

=================

(you can check how the current values are set using the command "synclient -l")


Keyboard

First impact: good
After a few weeks & months: bad

Reason:
I carried from time to time the XPS in my bag, and therefore sometimes I was sometimes a bit rough with it.
Now the XPS is slightly bent (the lower-right portion touches the desk only when I put my hand on it) and the lower-right portion of the keyboard (arrow-keys, enter-key, shift, etc...) does weird noise and gets sometimes stuck when I press the keys.
I treated my old Lenovo notebooks much worse but never had this kind of problems.


Audio

Works out of the box with Alsa.

Hotkeys did not work out of the box in Gentoo (maybe works immediately when using other distributions).

For the worst case, map the hotkeys using xbindkeys or acpi to commands like "amixer set Master 5%+" respectively "amixer set Master 5%-".


Lan

No LAN adapter on board!
When you order the notebook you should ideally order as well a USB to LAN adapter for ~30 CHF!!!


Wireless

Worked out-of-the-box with Kernel 4.4.0


Webcam

Not tested.


Cardreader

Not tested


Battery

Discharges by ~10%/hour when idle.

I'm running the following script on startup to activate some powersaving options:
========================
#!/bin/bash

echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host1/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host2/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host3/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host4/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host5/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host6/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host7/link_power_management_policy'

#Runtime PM for PCI Device Realtek Semiconductor Co., Ltd. Device 525a
echo 'auto' > '/sys/bus/pci/devices/0000:3b:00.0/power/control'

#Enable Audio codec power management
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save'

#Runtime PM for I2C Adapter i2c-2 (i915 gmbus dpd)
echo 'auto' > '/sys/bus/i2c/devices/i2c-2/device/power/control'

#Autosuspend for USB device Integrated_Webcam_HD
echo 'auto' > '/sys/bus/usb/devices/1-5/power/control'

#Runtime PM for PCI Device Broadcom Corporation Device 43a3
echo 'auto' > '/sys/bus/pci/devices/0000:3a:00.0/power/control'

#Runtime PM for PCI Device Intel Corporation Device 9d3a
echo 'auto' > '/sys/bus/pci/devices/0000:00:16.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d03
echo 'auto' > '/sys/bus/pci/devices/0000:00:17.0/power/control'
#Runtime PM for PCI Device Intel Corporation Sky Lake Host Bridge/DRAM Registers
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 1903
echo 'auto' > '/sys/bus/pci/devices/0000:00:04.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d2f
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d21
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d31
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.2/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d48
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d15
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.5/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d70
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control'

#Runtime PM for PCI Device Samsung Electronics Co Ltd Device a802
echo 'auto' > '/sys/bus/pci/devices/0000:3c:00.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d10
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d14
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.4/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d18
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control'
#Runtime PM for PCI Device Intel Corporation Device 9d23
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.4/power/control'
========================


Fan & fan noise

Perfect (no SW nor special config used).

The fan is usually idle, and even when all 4 CPUs are used 100% the noise is low and not irritating.


My xorg.conf

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0

        InputDevice    "Clickpad" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerFlags"
        Option "BlankTime" "20"
        Option  "AutoAddDevices"        "false"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option  "XkbLayout" "ch"
        Option  "XkbVariant" "de"
        Option  "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Section "InputDevice"
        Identifier "Clickpad"
        Driver "synaptics"

        Option "TapButton1" "1" #Left mouse button
        Option "TapButton2" "3" #Right mouse button
        Option "TapButton3" "2" #Middle mouse button

        Option "ClickPad" "true"
        Option "EmulateMidButtonTime" "0"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "My vendor"
EndSection

Section "Device"
        Identifier "Card0"
        VendorName  "My video card"
        BoardName   "Unknown Board"
        Driver  "intel"
        BusID       "PCI:0:2:0"
EndSection

Section "Extensions"
        Option      "Composite"   "enable"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes   "1920x1080"
        EndSubSection
EndSection

 


My lspci -k

===============
# lspci -k
00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 08)
    Subsystem: Dell Sky Lake Host Bridge/DRAM Registers
00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 07)
    DeviceName:  Onboard IGD
    Subsystem: Dell Sky Lake Integrated Graphics
    Kernel driver in use: i915
00:04.0 Signal processing controller: Intel Corporation Device 1903 (rev 08)
    Subsystem: Dell Device 0704
    Kernel driver in use: proc_thermal
    Kernel modules: processor_thermal_device
00:14.0 USB controller: Intel Corporation Device 9d2f (rev 21)
    Subsystem: Dell Device 0704
    Kernel driver in use: xhci_hcd
00:14.2 Signal processing controller: Intel Corporation Device 9d31 (rev 21)
    Subsystem: Dell Device 0704
00:15.0 Signal processing controller: Intel Corporation Device 9d60 (rev 21)
    Subsystem: Dell Device 0704
    Kernel driver in use: intel-lpss
00:15.1 Signal processing controller: Intel Corporation Device 9d61 (rev 21)
    Subsystem: Dell Device 0704
    Kernel driver in use: intel-lpss
00:16.0 Communication controller: Intel Corporation Device 9d3a (rev 21)
    Subsystem: Dell Device 0704
    Kernel driver in use: mei_me
    Kernel modules: mei_me
00:17.0 SATA controller: Intel Corporation Device 9d03 (rev 21)
    Subsystem: Dell Device 0704
    Kernel driver in use: ahci
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
    Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation Device 9d14 (rev f1)
    Kernel driver in use: pcieport
00:1c.5 PCI bridge: Intel Corporation Device 9d15 (rev f1)
    Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation Device 9d18 (rev f1)
    Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Device 9d48 (rev 21)
    Subsystem: Dell Device 0704
00:1f.2 Memory controller: Intel Corporation Device 9d21 (rev 21)
    Subsystem: Dell Device 0704
00:1f.3 Audio device: Intel Corporation Device 9d70 (rev 21)
    Subsystem: Dell Device 0704
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel
00:1f.4 SMBus: Intel Corporation Device 9d23 (rev 21)
    Subsystem: Dell Device 0704
    Kernel modules: i2c_i801
3a:00.0 Network controller: Broadcom Corporation Device 43a3 (rev 08)
    Subsystem: Dell Device 0021
    Kernel driver in use: brcmfmac
    Kernel modules: brcmfmac
3b:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 525a (rev 01)
    Subsystem: Dell Device 0704
    Kernel driver in use: rtsx_pci
    Kernel modules: rtsx_pci
3c:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a802 (rev 01)
    Subsystem: Samsung Electronics Co Ltd Device a801
    Kernel driver in use: nvme
===============