I recently purchased a Dell XPS13 (9365) (thanks to Bitnami for whom I now work) which comes with Windows 10 preinstalled. I was aware when purchasing that suspend on Linux is not yet working (thanks David Farrell. As of Aug 2017 suspend is fixed, see below), as well as other functionality (autorotate, pen integration etc.) and so was keen to have a few options to work on this machine:
- Running Ubuntu within VirtualBox.
- Dual booting to Ubuntu/Linux (once the suspend issues fixed, I’ll be using this most of the time)
- Bash on Windows (mainly just out of interest)
There were already various articles around for setting up dual booting on the Dell XPS13 9365 model, but none of them had a complete picture. Here’s what I did:
- Downloaded and installed all Dell driver, firmware and application updates from Windows 10
- Temporarily disabled hibernation, pagefile and system protection to be able to resize the drive using Windows 10’s partition software
- Switched the SSD drive (and Windows 10) to AHCI mode mode (as Linux doesn’t support the default NVMExpress RAID as David mentions)
With that done, I was able to install Ubuntu while still dual booting. I am currently booting Windows and working within an Ubuntu 17.04 VirtualBox image as I move around quite a bit and depend on suspend/resume. But the difference between running in a VM and on the metal is noticeable so I’ll be watching the suspend bug and testing newer kernel releases.
Edit July 2017: For the short-term, it actually works fine to just update my Ubuntu power settings so that the computer doesn’t suspend when the lid is closed.
Edit August 2017: Suspend now works perfectly with the 4.13 rc2 Linux kernel and later.
As one person mentioned on the bug report, after installing the 4.13 rc2 kernel I also installed
sysfsutils and added the following file to my system:
$ cat /etc/sysfs.d/suspend_dell_9365.conf # Changes from https://bugzilla.kernel.org/show_bug.cgi?id=192591 # Use s2idle (not deep) for suspend. power/mem_sleep = s2idle # Enable key press to wakeup devices/platform/i8042/serio0/power/wakeup = enabled # Disable heartbeat wakeups during suspend. module/acpi/parameters/ec_no_wakeup = Y