Dell XPS 15

This article or section is a candidate for merging with
Laptop/Dell#XPS
.
Notes:
This page currently duplicates a good chunk of
Dell XPS 15 (9550)
but is actually older and was originally created for the 2011 model. Sections should be carefully compared to the successive models of Dell XPS, merged if not already present on the target pages, then the page would probably be a better fit as a redirect. (Discuss in
Talk:Dell XPS 15
)
This page is a work in progress! More info coming soon.
This article or section does not follow the
Laptop page guidelines
.
Reason:
Hardware table needs IDs added, headers messed up (Discuss in
Talk:Dell XPS 15
)
Hardware
PCI/USB ID
Working?
Ethernet
Yes
Wireless
Yes
Audio
Yes
Bluetooth
Yes
Touchpad
Yes
GPU
Partial
Webcam
Yes
Differences between XPS 9550 & Precision 5510
The Precision 5510 is essentially identical to the
XPS 9550
variant, with the exception of an Intel Wireless NIC & Quadro 1000M Graphics Chip. Compared to the 9550's Broadcom NIC & 960M graphics chip.
XPS 15 9560 and "early 2017" revision
There is
a dedicated page
for version 9560 from 2016 and 2017 (especially troubleshouting video related problems).
System Setup
Power Management
For the Sandy Bridge model (L502X): Suspend works; hibernation does not (it gets hung on a flashing cursor in text mode and does not even switch video modes).
If hibernation/resume fails, or does not consistently work, try each of the following:
Enable early KMS
for
intel_agp
and
i915
.
Create the following configuration file (
Source
):
/etc/systemd/sleep.conf
[Sleep]
HibernateState=disk
HibernateMode=shutdown
Sound
This article or section needs language, wiki syntax or style improvements. See
Help:Style
for reference.
Reason:
Does not conform to
Help:Style
(not using prompt, not using inline code, contractions, etc.) (Discuss in
Talk:Dell XPS 15
)
For the XPS 9550 variant, sound works out of the box with the linux kernel. If you try to plug in headphones, you will not hear any output from them. Upon restart, you will receive a
Dummy Output
as your sound card.
dmesg gives you this output:
snd_hda_intel 0000:00:1f.3: CORB reset timeout#1, CORBRP = 0
snd_hda_intel 0000:00:1f.3: no codecs found!
aplay -l should give you this output if Arch can detect your soundcard:
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3266 Analog [ALC3266 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
aplay -l will give you this output if Arch cannot detect your soundcard:
aplay: device_list:268: no soundcards found...
You may or may not get sound back after a few restarts. This is a bug and has been documented here:
FS#49157
Workarounds:
Install
alsa-utils
and run
hdajackretask
just toggle the drop down.
Suspend and resume your computer
(thank you spheenik)
Restart your computer
Disable sound BIOS, powerboot into Arch, enable sound in BIOS, start Arch with sound back
Connect external sound card via USB
Regardless, for now, it is recommended that you do not/reduce hot-plugging headphones as it makes
ALSA
/
PulseAudio
break/very unstable.
Microphone
Note
This might only apply for the 9560 variant
The XPS 15 provides a combo jack for audio input and output.
No audio input through combo jack
Headsets might only be recognized as headphones. Passing
model=auto
to the
snd-hda-intel
kernel module solves this issue. This can be done by creating:
/etc/modprobe.d/fix-audio-input.conf
options snd-hda-intel model=auto
Graphics
By default, both Intel and NVidia cards are active, which can consume a lot of power. Using the Intel-only setup below, you can reduce your battery usage by disabling the Nvidia card. The Intel and Nvidia setup describes how to utilize both cards and save power using
Bumblebee
. See also
Hybrid graphics
.
Intel only
If your model comes with an nVidia card which you do not use then you can try to disable it with an ACPI command. Depending on the model, this can have a small to
profound
effect on the laptop's temperature and battery life (it can more than
double
battery life!)
Install the Intel video driver using the
xf86-video-intel
package.
To make sure nVidia module will not load into your system:
Remove nouveau and/or nvidia drivers
Use acpi_call (compile
acpi_call
or use one of the
AUR packages
) to disable the nVidia card
acpi_call usage
modprobe acpi_call
./usr/share/acpi_call/examples/turn_off_gpu.sh
or:
sudo /usr/share/linux610-acpi_call/examples/turn_off_gpu.sh
One of the many results will be "works!". Use the value that works in the following call:
echo '\_SB.<YOUR>.<POSITIVE>.<VALUE>._OFF' > /proc/acpi/call
If none worked, you can try one of the other files in the
/usr/share/acpi_call/examples
directory.
For example, the following works on the XPS 15 9550 and L502x model:
echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
You can use this command
before
and
after
to see how the battery consumption change (you need to disconnect sector first and the lower the better):
cat /sys/class/power_supply/BAT0/current_now
To make this permanent, just create a
systemd unit file
with your working command.
Intel with Nvidia
The
Optimus
setup consists of the integrated Intel chip connected to the laptop screen and the Nvidia card runs through this. As such, the Nvidia chip cannot be used without the Intel chip (some other laptops have the option in BIOS to turn Intel off and use just Nvidia, but not this laptop).
See the
Bumblebee
page
set of instructions
, particularly the Intel/Nvidia section which has been tested. The main thing to note is that installing both  the Intel and Nvidia packages at once tends to avoid dependency issues.
Screen
9550 Flickering Screen:
To fix screen flickering issues add
i915.edp_vswing=2
to your boot parameters
.
External Display
Since the Display Port is controlled by the Intel driver, it tends to work quite well and will usually mirror the laptop display without configuration. Getting both the HDMI and DP adapters to display separate requires additional setup.
The Display Port can be accessed with a USB-C to Display Port adaptor, it should be a adaptor that works via "alternate mode" such as the plugable cable
[1]
(known to work), there are other adaptors that did not work (KiWiBiRD USB 3.1 Type C THUNDERBOLT 3 to DisplayPort 4K Adapter), though why it did not is unknown.
Multihead
The following instructions should help configure the laptop to display separate output on two external monitors. These instructions are similar in nature to the
instructions
on the
Bumblebee
page, though recent advancements in virtual displays on Intel reduce the number of steps and packages needed.
First, follow the instructions in the previous section to install drivers for both Intel and Nvidia with Bumblebee.
Run
Xorg -configure
to generate a
xorg.conf
file. It may have a different filename, so watch the output and regardless of where it generates it, copy it to
/etc/X11/xorg.conf
. This should generate something like the following (for two external monitors):
/etc/X11/xorg.conf
Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	Screen      1  "Screen1" RightOf "Screen0"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	ModulePath   "/usr/lib/xorg/modules"
	FontPath     "/usr/share/fonts/misc/"
	FontPath     "/usr/share/fonts/TTF/"
	FontPath     "/usr/share/fonts/OTF/"
	FontPath     "/usr/share/fonts/Type1/"
	FontPath     "/usr/share/fonts/100dpi/"
	FontPath     "/usr/share/fonts/75dpi/"
EndSection

Section "Module"
	Load  "glx"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Monitor"
	Identifier   "Monitor1"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Device"
	Identifier  "Card0"
	Driver      "nvidia"
	BusID       "PCI:1:0:0"
EndSection

Section "Device"
	Identifier  "Card1"
	Driver      "intel"
	BusID       "PCI:0:2:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "Screen"
	Identifier "Screen1"
	Device     "Card1"
	Monitor    "Monitor1"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection
Change the
bumblebee.conf
file to the following settings (these are scattered throughout the conf file):
/etc/bumblebee/bumblebee.conf
KeepUnusedXServer=true
Driver=nvidia
# In the [driver-nvidia] section,
XorgConfFile=/etc/X11/xorg.conf
Add the following to your
.xinitrc
file.
~/.xinitrc
# Start Bumblebee, create VIRTUAL display, and configure monitors.
optirun true
intel-virtual-output
xrandr --output VIRTUAL2 --left-of HDMI1 --mode 1920x1080 --auto

# Turn off the laptop display (optional of course, leave out if you want triple display).
xrandr --output LVDS1 --off

# Execute a window manager or desktop environment here.
# ex: exec awesome
Run
startx
and check that your displays are working.
The modifications to
.xinitrc
automate the configuration of the displays. First,
optirun
is launched to run
Bumblebee
. Then, the
intel-virtual-output
utility (included with
xf86-video-intel
versions 2.99+) creates a few
VIRTUAL
displays;
VIRTUAL2
was the display mapping to my HDMI port, run
xrandr
to double check this for yourself. The remaining commands may vary for your configuration, note that
LVDS1
is the laptop screen and
HDMI1
is actually the Display Port.
WLAN
Remember that
wireless_tools
will be needed for using a network manager such as
NetworkManager
, see
Wireless network configuration
for more information.
Bluetooth
Some users may need to run
hciconfig hci0 reset
to get blueman working
Using power management with
TLP
might cause a problem. Excluding Bluetooth devices from USB autosuspend by setting:
/etc/default/tlp
…
USB_BLACKLIST_BTUSB=1
can resolve the issue.
BIOS
XPS 9550 with InfinityEdge 4K
The XPS 9550 4K, with its current state, is unstable due to its young age. A majority of the bugs stem from Dell's BIOS.
Listed below are you may encounter with the XPS 9550 4K:
01.02.00
Brightness works with slow fade (XF86MonBrightnessUp / xbacklight -inc:-dec)
Sleep resume working around 80% of the time
Resume from sleep restarts the laptop
01.02.10+
Increased speeds (faster boot, applications feel snappier when loading, especially in 01.02.13)
Black screen upon resume (the computer will operate as if it's on, to get display to work, set brightness to max using keyboard shortcut)
Brightness flickers/stutters when dimming or increasing the brightness (demonstrated in
i3wm
)
Screen flickers on low brightness settings
Possible poor fan behavior (not confirmed)
Battery will not charge beyond 60%. The fix is to download and flash
1.2.14 BIOS or later
Flashing 01.02.00 will be pointless after, as the issue carries over to this version of BIOS.
01.02.14
Download
User
report
that the issue with the battery is fixed
Still has black screen upon resume issue. To turn screen on, increase brightness to maximum using keyboard. It is not possible to decrease brightness after resume, either maximum or off.
Increasing the brightness (eg, with xbacklight) by less than 9% does not have any effect. Decreasing by less than 9% always results in a decrease of 9%.
1.02.16
Download
"Black screen upon resume" issue appears to have been fixed!
Many users have recommend the 01.02.00 BIOS, as it proves to be the most balanced out of all of the updates.
Webcam
If the camera does not seem to work (black image), try to enable/disable auto-exposure. In reality, the camera tries to record at 0.5 fps and this is why it seems not to work, even if everything seems normal.
Special Touch Keys
The special touch keys are strangely mapped by default. One changes brightness, one does next track. They seem to be linked to the same key sequences as the Fn+F# keys that do the same job. To fix this, make this new file:
/opt/dell_touchkeys_keymap
0x90 previoussong # Previous song
0xA2 playpause # Play/Pause
0x99 nextsong # Next song
0xDB computer # First touch key, Dell apparently uses a key sequence here where 0xDB is a modifer, 0x2D stands for the touch key and 0x19 for the monitor toggle
0x85 prog1 # Second touch key
0x84 media # Third touch key
and add this to /etc/rc.local:
/etc/rc.local
…
# Fix touch keys
/usr/lib/udev/keymap input/event0 /opt/dell_touchkeys_keymap
Source
Alternative method
For L502x model the above method can be improved:
No need to remap Play/Pause, Previous song, Next song keys as they are mapped correctly by default.
For the first (leftmost) touch key: it's wired in a weird way on the hardware level.  It seems to be wired to both Super_L and x.  Your best bet would be to remap this using your DE or something like xbindkeys.  You may want to double-check with
xev
or
xbindkeys -mk
to see exactly what keys it is producing.
Thus the keymap file should be (I prefer standard location):
/usr/lib/udev/keymaps/dell-xps-l502x
0x85 prog1 # Second touch key
0x84 media # Third touch key
and add this to /etc/rc.local:
/etc/rc.local
…
# Fix touch keys
/usr/lib/udev/keymap input/event0 /usr/lib/udev/keymaps/dell-xps-l502x
OR make a udev rule (the former remaps keys on boot, this lets udev take care of the remapping):
/etc/udev/rules.d/99-local.rules
…
# Keymap Dell Touch keys
SUBSYSTEM=="input", KERNEL=="event0", RUN+="keymap $name dell-xps-l502x"
Hidden Keyboard Keys
For L502X model: there are additional Fn+<Key> (sequences) that are not marked at all on the keyboard but underlying hardware generates them anyway. Here they are (if you find more add them to the table below):
Hidden Fn Keys
Fn+<Key>
Resulting key (sequence)
Fn+Esc
Sleep
Fn+Super_L
Super_R
Fn+Ins
Pause/Break
Fn+Del
Ctrl + Pause/Break
Fn+PrntScr
Alt + PrtSc/SysRq
Touchpad Gestures
The 1.2.21 BIOS update has caused many users to lose mouse scrolling in Chromium.
A bug report has been opened about the issue.
A workaround would be to disable Smooth Scrolling in chrome://flags
libinput
XPS 9550
Working, using libinput and libinput-gestures.
Synaptics
If using Synaptics, read
Synaptics
.
Notes
Remember to turn on Wi-Fi and Bluetooth by pressing the F2 button.
Card reader is finnicky.  Try booting with a card inserted or inserting a card after it is booted and running
# echo 1 > /sys/bus/pci/rescan
Otherwise, card reader will not be detected.  It seems that a certain kernel update results in the workaround not working as well.  More info needed.
See also
A fairly comprehensive writeup of running Arch Linux on an XPS 15 9530.
Comprehensive coverage of Arch Linux on XPS 15 9550
Multitouch gestures with libinput and libinput-gestures
Fixing 9550 screen flickering and black screen on resume from suspend
Arch on New XPS 15 (Late 2015)