My first thoughts on this laptop are positive, in general the build quality is high, screen looks great, as fast (very fast for such a thin ultrabook). That said the unit initially shipped to me suffered from the dreaded coil whine issue discussed on this thread, as well as a few other issues which, with the help of others I’ve been able to solve pretty quickly.
There’s a great blog which details most of the things which you need to take care of to get this system working well. That said there’s a few more things that you’ll need to do. If you’re like me, you’ve probably blown away the stock OS, and installed something more recent.
First thing I did was modify the als.sh script on the xps13 blog:
--- als.sh 2014-10-15 22:20:26.592234453 -0600 +++ /usr/local/bin/als.sh 2014-10-11 23:37:33.150956572 -0600 @@ -85,15 +85,17 @@ fi # Check idle time -. /usr/share/acpi-support/power-funcs -getXuser -currIdleTime=`su $XUSER -c "dbus-send --session --dest=org.freedesktop.ScreenSaver \ - --type=method_call --print-reply --reply-timeout=1000 \ - /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime \ - | grep uint32 | sed 's:.*uint32 \+\([0-9]\+\).*:\1:g'"` -if [ $currIdleTime -gt $idleTimeout ]; then - echo "Timeout expired, ignoring ambient light changes" - exit 0 +if [ -f /usr/share/acpi-support/power-funcs ]; then + . /usr/share/acpi-support/power-funcs + getXuser + currIdleTime=`su $XUSER -c "dbus-send --session --dest=org.freedesktop.ScreenSaver \ + --type=method_call --print-reply --reply-timeout=1000 \ + /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime \ + | grep uint32 | sed 's:.*uint32 \+\([0-9]\+\).*:\1:g'"` + if [ $currIdleTime -gt $idleTimeout ]; then + echo "Timeout expired, ignoring ambient light changes" + exit 0 + fi fi # Use xbacklight if the given path is wrong @@ -115,6 +117,7 @@ fi for i in `seq $curr $incr $target`; do echo $i > $backlightPath + echo $i > /tmp/als_state sleep $timeout done else @@ -129,4 +132,4 @@ break fi j=$(($j+1)) -done \ No newline at end of file +done
Effectively the patch above simply checks to see if power-funcs actually exists.
Next I upgraded to 3.17 kernel. This solved problems with white noise, as well as wireless stability issues.
After that you’ll want to disable power features on the mSATA SSD by creating /etc/pm/config.d/hook_blacklist.conf and adding the following line:
HOOK_BLACKLIST="95hdparm-apm sata_alpm"
After some discovery, I found that not all power control features are here. A large number of them are stored in /etc/power.d/10-power_script. you’ll want to patch this file to omit the features which will adversely affect the SSD
--- power.d/10-power_script 2014-10-18 15:34:15.820269065 -0600 +++ power.d/10-power_script 2014-10-18 15:33:08.976265876 -0600 @@ -41,16 +41,16 @@ #echo $GOVERNOR > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor # Enable SATA link power Managmenet for host0 -echo $SATA > /sys/class/scsi_host/host0/link_power_management_policy +#echo $SATA > /sys/class/scsi_host/host0/link_power_management_policy # Enable SATA link power Managmenet for host1 -echo $SATA > /sys/class/scsi_host/host1/link_power_management_policy +#echo $SATA > /sys/class/scsi_host/host1/link_power_management_policy # Enable SATA link power Managmenet for host2 - it used to slow down keyboard typing -echo $SATA > /sys/class/scsi_host/host2/link_power_management_policy +#echo $SATA > /sys/class/scsi_host/host2/link_power_management_policy # Enable SATA link power Managmenet for host3 -echo $SATA > /sys/class/scsi_host/host3/link_power_management_policy +#echo $SATA > /sys/class/scsi_host/host3/link_power_management_policy # Autosuspend for USB device Synaptics Large Touch Screen [SYNAPTICS] findPath 06cb 0af8 @@ -79,7 +79,7 @@ echo $CONTROL > /sys/bus/pci/devices/0000:00:1f.3/power/control # Runtime PM for PCI Device Intel Corporation Lynx Point-LP SATA Controller 1 [AHCI mode] -echo $CONTROL > /sys/bus/pci/devices/0000:00:1f.2/power/control +#echo $CONTROL > /sys/bus/pci/devices/0000:00:1f.2/power/control # Runtime PM for PCI Device Intel Corporation Haswell-ULT Integrated Graphics Controller echo $CONTROL > /sys/bus/pci/devices/0000:00:02.0/power/control
Lastly, I had to upgrade xserver-xorg-video-intel to at least version 2.99.916 to ensure that resume would function correctly.