├── A02_01 └── 90-eDP1.conf ├── A04_03 ├── 50-synaptics.conf └── 99-no-touchscreen.conf ├── A05_02 ├── configure_touchpad.sh ├── console-setup └── rc.local ├── A11_01 ├── 50-synaptics.conf ├── 90-libinput.conf ├── displaylink-installer.sh └── psmouse-blacklist.conf ├── A20_01 ├── .xsession ├── intel-hda.conf └── psmouse-blacklist.conf ├── HiDPI ├── grub.md └── tty.md ├── README.md └── configurations.md /A02_01/90-eDP1.conf: -------------------------------------------------------------------------------- 1 | # Internal display attached to embedded DisplayPort 1. 2 | Section "Monitor" 3 | Identifier "eDP1" 4 | VendorName "Dell" 5 | ModelName "Infinity Display" 6 | DisplaySize 293.76 165.24 7 | EndSection 8 | -------------------------------------------------------------------------------- /A04_03/50-synaptics.conf: -------------------------------------------------------------------------------- 1 | # Touchpad 2 | Section "InputClass" 3 | Identifier "touchpad catchall" 4 | Driver "synaptics" 5 | MatchIsTouchpad "on" 6 | # This option is recommend on all Linux systems using evdev, but cannot be 7 | # enabled by default. See the following link for details: 8 | # http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html 9 | MatchDevicePath "/dev/input/event*" 10 | EndSection 11 | 12 | Section "InputClass" 13 | Identifier "touchpad ignore duplicates" 14 | MatchIsTouchpad "on" 15 | MatchOS "Linux" 16 | MatchDevicePath "/dev/input/mouse*" 17 | Option "Ignore" "on" 18 | EndSection 19 | 20 | # This option enables the bottom right corner to be a right button on clickpads 21 | # and the right and middle top areas to be right / middle buttons on clickpads 22 | # with a top button area. 23 | # This option is only interpreted by clickpads. 24 | Section "InputClass" 25 | Identifier "Ignore clickpad buttons" 26 | MatchDriver "synaptics" 27 | Option "SoftButtonAreas" "0 0 0 0 0 0 0 0" 28 | EndSection 29 | 30 | # inspired by 31 | # https://github.com/mpalourdio/xps13/blob/main/config9/50-synaptics.conf 32 | # https://wiki.archlinux.org/index.php/Touchpad_Synaptics 33 | Section "InputClass" 34 | Identifier "Palm detection" 35 | MatchDriver "synaptics" 36 | 37 | # Enables Palm Detection to prevent bad clicks 38 | # This seems to work on PS/2, but not on i2c 39 | Option "PalmDetect" "1" 40 | Option "PalmMinWidth" "8" 41 | Option "PalmMinZ" "100" 42 | 43 | # TapButton1 => (integer) configures which mouse-button is reported on a non-corner, one finger tap. 44 | # TapButton2 => (integer) configures which mouse-button is reported on a non-corner, two finger tap 45 | # TapButton3 => (integer) configures which mouse-button is reported on a non-corner, three finger tap 46 | Option "ClickPad" "true" 47 | Option "TapButton1" "1" 48 | Option "TapButton2" "3" 49 | Option "TapButton3" "2" 50 | 51 | Option "ClickFinger1" "1" 52 | Option "ClickFinger2" "3" 53 | Option "ClickFinger3" "2" 54 | 55 | # Disable right button 56 | Option "RBCornerButton" "0" 57 | 58 | # Prevents cursor to move when clicking with buttons 59 | Option "HorizHysteresis" "10" 60 | Option "VertHysteresis" "10" 61 | 62 | Option "VertTwoFingerScroll" "on" 63 | Option "HorizTwoFingerScroll" "on" 64 | Option "VertScrollDelta" "-27" 65 | Option "HorizScrollDelta" "-27" 66 | Option "CircularScrolling" "on" 67 | Option "CircScrollTrigger" "2" 68 | Option "EmulateTwoFingerMinZ" "40" 69 | Option "EmulateTwoFingerMinW" "8" 70 | # Option "CoastingSpeed" "0" 71 | Option "FingerLow" "35" 72 | Option "FingerHigh" "40" 73 | 74 | # Inertia 75 | Option "MinSpeed" "0" 76 | Option "ConstantDeceleration" "7" 77 | 78 | # Cursor speed 79 | Option "AccelFactor" "0.2" 80 | EndSection 81 | -------------------------------------------------------------------------------- /A04_03/99-no-touchscreen.conf: -------------------------------------------------------------------------------- 1 | # Disable touchscreen 2 | Section "InputClass" 3 | Identifier "Touchscreen catchall" 4 | MatchIsTouchscreen "on" 5 | Option "Ignore" "on" 6 | EndSection 7 | -------------------------------------------------------------------------------- /A05_02/configure_touchpad.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | synclient TapButton1=1 4 | synclient TapButton2=2 5 | synclient PalmDetect=1 6 | synclient PalmMinWidth=8 7 | synclient PalmMinZ=100 8 | -------------------------------------------------------------------------------- /A05_02/console-setup: -------------------------------------------------------------------------------- 1 | # CONFIGURATION FILE FOR SETUPCON 2 | 3 | # Consult the console-setup(5) manual page. 4 | 5 | ACTIVE_CONSOLES="/dev/tty[1-6]" 6 | 7 | CHARMAP="UTF-8" 8 | 9 | CODESET="guess" 10 | FONTFACE="Terminus" 11 | FONTSIZE="16x32" 12 | 13 | VIDEOMODE= 14 | 15 | # The following is an example how to use a braille font 16 | # FONT='lat9w-08.psf.gz brl-8x8.psf' 17 | -------------------------------------------------------------------------------- /A05_02/rc.local: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | # 3 | # rc.local 4 | # 5 | # This script is executed at the end of each multiuser runlevel. 6 | # Make sure that the script will "exit 0" on success or any other 7 | # value on error. 8 | # 9 | # In order to enable or disable this script just change the execution 10 | # bits. 11 | # 12 | # By default this script does nothing. 13 | 14 | setupcon --force 15 | rfkill block bluetooth 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /A11_01/50-synaptics.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "touchpad" 3 | Driver "synaptics" 4 | MatchIsTouchpad "on" 5 | Option "ClickPad" "true" 6 | Option "SoftButtonAreas" "60% 0 82% 0 40% 59% 82% 0" 7 | Option "VertTwoFingerScroll" "on" 8 | Option "HorizTwoFingerScroll" "on" 9 | EndSection 10 | -------------------------------------------------------------------------------- /A11_01/90-libinput.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "libinput touchpad catchall" 3 | MatchIsTouchpad "on" 4 | MatchDevicePath "/dev/input/event*" 5 | Driver "libinput" 6 | Option "Tapping" "True" 7 | Option "PalmDetection" "True" 8 | #Option "TappingDragLock" "True" 9 | Option "TappingDrag" "True" 10 | Option "ClickMethod" "buttonareas" 11 | EndSection 12 | -------------------------------------------------------------------------------- /A11_01/displaylink-installer.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2015 DisplayLink (UK) Ltd. 3 | 4 | SELF=$0 5 | COREDIR=/usr/lib/displaylink 6 | LOGSDIR=/var/log/displaylink 7 | PRODUCT="DisplayLink Linux Software" 8 | VERSION=1.0.335 9 | ACTION=default 10 | SYSTEMINITDAEMON=upstart 11 | 12 | add_udev_rule() 13 | { 14 | echo 'ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{bNumInterfaces}=="*5", GROUP="plugdev", MODE="0660"' > /etc/udev/rules.d/99-displaylink.rules 15 | chmod 0644 /etc/udev/rules.d/99-displaylink.rules 16 | } 17 | 18 | remove_udev_rule() 19 | { 20 | rm -f /etc/udev/rules.d/99-displaylink.rules 21 | } 22 | 23 | install_module() 24 | { 25 | TARGZ="$1" 26 | MODVER="$2" 27 | ERRORS="$3" 28 | 29 | SRCDIR="/usr/src/evdi-$MODVER" 30 | mkdir -p "$SRCDIR" 31 | if ! tar xf $TARGZ -C "$SRCDIR"; then 32 | echo "Unable to extract $TARGZ" to "$SRCDIR" > $ERRORS 33 | return 1 34 | fi 35 | 36 | echo "Registering EVDI kernel module with DKMS" 37 | dkms add evdi/$MODVER -q 38 | if [ $? != 0 -a $? != 3 ]; then 39 | echo "Unable to add evdi/$MODVER to DKMS source tree." > $ERRORS 40 | return 2 41 | fi 42 | 43 | echo "Building EVDI kernel module with DKMS" 44 | dkms build evdi/$MODVER -q 45 | if [ $? != 0 ]; then 46 | echo "Failed to build evdi/$MODVER. Consult /var/lib/dkms/evdi/$MODVER/build/make.log for details." > $ERRORS 47 | return 3 48 | fi 49 | 50 | echo "Installing EVDI kernel module to kernel tree" 51 | dkms install evdi/$MODVER -q 52 | if [ $? != 0 ]; then 53 | echo "Failed to install evdi/$MODVER to the kernel tree." > $ERRORS 54 | return 4 55 | fi 56 | 57 | echo "EVDI kernel module built successfully" 58 | } 59 | 60 | remove_module() 61 | { 62 | MODVER="$1" 63 | SRCDIR="/usr/src/evdi-$MODVER" 64 | dkms remove evdi/$MODVER --all -q 65 | [ -d "$SRCDIR" ] && rm -rf "$SRCDIR" 66 | } 67 | 68 | is_64_bit() 69 | { 70 | [ "$(getconf LONG_BIT)" == "64" ] 71 | } 72 | 73 | add_upstart_script() 74 | { 75 | cat > /etc/init/displaylink.conf <<'EOF' 76 | description "DisplayLink Manager Service" 77 | # Copyright (c) 2015 DisplayLink (UK) Ltd. 78 | 79 | start on login-session-start 80 | stop on desktop-shutdown 81 | 82 | # Restart if process crashes 83 | respawn 84 | 85 | # Only attempt to respawn 10 times in 5 seconds 86 | respawn limit 10 5 87 | 88 | chdir /usr/lib/displaylink 89 | 90 | script 91 | [ -r /etc/default/displaylink ] && . /etc/default/displaylink 92 | modprobe evdi 93 | exec /usr/lib/displaylink/DisplayLinkManager 94 | end script 95 | EOF 96 | 97 | chmod 0644 /etc/init/displaylink.conf 98 | } 99 | 100 | add_systemd_service() 101 | { 102 | cat > /lib/systemd/system/displaylink.service <<'EOF' 103 | [Unit] 104 | Description=DisplayLink Manager Service 105 | After=display-manager.service 106 | Conflicts=getty@tty7.service 107 | 108 | [Service] 109 | ExecStartPre=/sbin/modprobe evdi 110 | ExecStart=/usr/lib/displaylink/DisplayLinkManager 111 | Restart=always 112 | WorkingDirectory=/usr/lib/displaylink 113 | RestartSec=5 114 | 115 | [Install] 116 | WantedBy=graphical.target 117 | 118 | EOF 119 | 120 | chmod 0644 /lib/systemd/system/displaylink.service 121 | systemctl enable displaylink.service 122 | } 123 | 124 | remove_upstart_script() 125 | { 126 | rm -f /etc/init/displaylink.conf 127 | } 128 | 129 | remove_systemd_service() 130 | { 131 | systemctl disable displaylink.service 132 | rm -f /lib/systemd/system/displaylink.service 133 | } 134 | 135 | add_pm_script() 136 | { 137 | cat > $COREDIR/displaylink.sh < $COREDIR/PmMessagesPort_in 148 | 149 | #wait until suspend of DisplayLinkManager finish 150 | read -n 1 -t 10 SUSPEND_RESULT < $COREDIR/PmMessagesPort_out 151 | } 152 | 153 | resume_dlm() 154 | { 155 | #resume DisplayLinkManager 156 | echo "R" > $COREDIR/PmMessagesPort_in 157 | } 158 | 159 | EOF 160 | 161 | if [ "$1" = "upstart" ] 162 | then 163 | cat >> $COREDIR/displaylink.sh <> $COREDIR/displaylink.sh <&2 240 | cleanup 241 | exit 1 242 | fi 243 | 244 | is_64_bit && ARCH="x64" || ARCH="x86" 245 | local DLM="$ARCH/DisplayLinkManager" 246 | echo "Installing $DLM" 247 | [ -x $DLM ] && mv -f $DLM $COREDIR 248 | 249 | echo "Installing libraries" 250 | local LIBEVDI="$ARCH/libevdi.so" 251 | local LIBUSB="$ARCH/libusb-1.0.so.0.1.0" 252 | 253 | [ -f $LIBEVDI ] && mv -f $LIBEVDI $COREDIR 254 | [ -f $LIBUSB ] && mv -f $LIBUSB $COREDIR 255 | ln -sf $COREDIR/libusb-1.0.so.0.1.0 $COREDIR/libusb-1.0.so.0 256 | ln -sf $COREDIR/libusb-1.0.so.0.1.0 $COREDIR/libusb-1.0.so 257 | 258 | chmod 0755 $COREDIR/DisplayLinkManager 259 | chmod 0755 $COREDIR/libevdi.so 260 | chmod 0755 $COREDIR/libusb*.so* 261 | 262 | echo "Installing firmware packages" 263 | mv -f *.spkg $COREDIR 264 | chmod 0644 $COREDIR/*.spkg 265 | 266 | echo "Installing license file" 267 | mv -f LICENSE $COREDIR 268 | chmod 0644 $COREDIR/LICENSE 269 | 270 | echo "Adding udev rule for DisplayLink DL-3xxx/5xxx devices" 271 | add_udev_rule 272 | 273 | if [ "upstart" == "$SYSTEMINITDAEMON" ]; then 274 | echo "Starting DLM upstart job" 275 | add_upstart_script 276 | add_pm_script "upstart" 277 | start displaylink 278 | elif [ "systemd" == "$SYSTEMINITDAEMON" ]; then 279 | echo "Starting DLM systemd service" 280 | add_systemd_service 281 | add_pm_script "systemd" 282 | systemctl start displaylink.service 283 | fi 284 | } 285 | 286 | uninstall() 287 | { 288 | echo "Uninstalling" 289 | 290 | echo "Removing EVDI from kernel tree, DKMS, and removing sources." 291 | remove_module $VERSION 292 | 293 | if [ "upstart" == "$SYSTEMINITDAEMON" ]; then 294 | echo "Stopping DLM upstart job" 295 | stop displaylink 296 | remove_upstart_script 297 | elif [ "systemd" == "$SYSTEMINITDAEMON" ]; then 298 | echo "Stopping DLM systemd service" 299 | systemctl stop displaylink.service 300 | remove_systemd_service 301 | fi 302 | 303 | echo "Removing suspend-resume hooks" 304 | remove_pm_scripts 305 | 306 | echo "Removing udev rule" 307 | remove_udev_rule 308 | 309 | echo "Removing Core folder" 310 | cleanup 311 | 312 | echo -e "\nUninstallation steps complete." 313 | if [ -f /sys/devices/evdi/version ]; then 314 | echo "Please note that the evdi kernel module is still in the memory." 315 | echo "A reboot is required to fully complete the uninstallation process." 316 | fi 317 | } 318 | 319 | missing_requirement() 320 | { 321 | echo "Unsatisfied dependencies. Missing component: $1." >&2 322 | echo "This is a fatal error, cannot install $PRODUCT." >&2 323 | exit 1 324 | } 325 | 326 | version_lt() 327 | { 328 | local left=$(echo $1 | cut -d. -f-2) 329 | local right=$(echo $2 | cut -d. -f-2) 330 | local greater=$(echo -e "$left\n$right" | sort -Vr | head -1) 331 | [ "$greater" != "$left" ] && return $true 332 | return $false 333 | } 334 | 335 | check_requirements() 336 | { 337 | # DKMS 338 | which dkms >/dev/null || missing_requirement "DKMS" 339 | 340 | # Required kernel version 341 | MIN_KVER="3.14" 342 | MAX_KVER="4.4" 343 | KVER=$(uname -r) 344 | 345 | version_lt $KVER $MIN_KVER && 346 | missing_requirement "Kernel version $KVER is too old. At least $MIN_KVER is required" 347 | version_lt $MAX_KVER $KVER && 348 | echo "WARNING: Kernel version $KVER is not supported. Highest supported version is $MAX_KVER." 349 | 350 | # Linux headers 351 | [ ! -f "/lib/modules/$KVER/build/Kbuild" ] && missing_requirement "Linux headers for running kernel, $KVER" 352 | } 353 | 354 | usage() 355 | { 356 | echo 357 | echo "Installs $PRODUCT, version $VERSION." 358 | echo "Usage: $SELF [ install | uninstall ]" 359 | echo 360 | echo "If no argument is given, a quick compatibility check is performed but nothing is installed." 361 | exit 1 362 | } 363 | 364 | detect_distro() 365 | { 366 | if which lsb_release >/dev/null; then 367 | local R=$(lsb_release -d -s) 368 | echo "Distribution discovered: $R" 369 | if [ -z "${R##Ubuntu 14.*}" ]; then 370 | SYSTEMINITDAEMON=upstart 371 | elif [ -z "${R##Ubuntu 15.*}" ]; then 372 | SYSTEMINITDAEMON=systemd 373 | fi 374 | else 375 | echo "WARNING: Unknown distribution, assuming defaults - this may fail." >&2 376 | fi 377 | } 378 | 379 | ensure_not_running() 380 | { 381 | if [ -f /sys/devices/evdi/version ]; then 382 | local V=$(< /sys/devices/evdi/version) 383 | echo "WARNING: Version $V of EVDI kernel module is already running." >&2 384 | if [ -d $COREDIR ]; then 385 | echo "Please uninstall all other versions of $PRODUCT before attempting to install." >&2 386 | else 387 | echo "Please reboot before attempting to re-install $PRODUCT." >&2 388 | fi 389 | echo "Installation terminated." >&2 390 | exit 1 391 | fi 392 | } 393 | 394 | if [ $(id -u) != 0 ]; then 395 | echo "You need to be root to use this script." >&2 396 | exit 1 397 | fi 398 | 399 | echo "$PRODUCT $VERSION install script called: $*" 400 | detect_distro 401 | check_requirements 402 | 403 | while [ -n "$1" ]; do 404 | case "$1" in 405 | install) 406 | ACTION="install" 407 | ;; 408 | 409 | uninstall) 410 | ACTION="uninstall" 411 | ;; 412 | 413 | *) 414 | usage 415 | ;; 416 | esac 417 | shift 418 | done 419 | 420 | if [ "$ACTION" == "install" ]; then 421 | ensure_not_running 422 | install 423 | elif [ "$ACTION" == "uninstall" ]; then 424 | uninstall 425 | fi 426 | -------------------------------------------------------------------------------- /A11_01/psmouse-blacklist.conf: -------------------------------------------------------------------------------- 1 | #After creating this file in /etc/modprobe.d, execute 'depmod -ae && update-initramfs -u' as root 2 | blacklist psmouse 3 | -------------------------------------------------------------------------------- /A20_01/.xsession: -------------------------------------------------------------------------------- 1 | # ~/.xsession 2 | 3 | # Set touchpad options. 4 | #/usr/bin/synclient TapButton1=1 EmulateMidButtonTime=0 HorizTwoFingerScroll=1 PalmDetect=1 PalmMinWidth=8 PalmMinZ=100 5 | #/usr/bin/synclient ClickPad=1 RightButtonAreaLeft=660 MiddleButtonAreaRight=659 MiddleButtonAreaLeft=575 RightButtonAreaTop=557 MiddleButtonAreaTop=557 6 | xinput --set-prop 'DLL0665:01 06CB:76AD Touchpad' 'libinput Tapping Enabled' 1 7 | xinput --set-prop 'DLL0665:01 06CB:76AD Touchpad' 'libinput Tapping Drag Enabled' 1 8 | xinput --set-prop 'DLL0665:01 06CB:76AD Touchpad' 'libinput Natural Scrolling Enabled' 0 9 | xinput --set-prop 'DLL0665:01 06CB:76AD Touchpad' 'libinput Disable While Typing Enabled' 0 10 | 11 | # Start window manager. 12 | /usr/bin/x-window-manager 13 | -------------------------------------------------------------------------------- /A20_01/intel-hda.conf: -------------------------------------------------------------------------------- 1 | # /etc/modprobe.d/intel-hda.conf 2 | # Change the order of HDA devices (PCH first, then HDMI). 3 | 4 | options snd_hda_intel index=1,0 5 | -------------------------------------------------------------------------------- /A20_01/psmouse-blacklist.conf: -------------------------------------------------------------------------------- 1 | # /etc/modprobe.d/psmouse-blacklist.conf 2 | # Make sure touchpad is used in I2C mode, PS2 mode is buggy. 3 | 4 | blacklist psmouse 5 | -------------------------------------------------------------------------------- /HiDPI/grub.md: -------------------------------------------------------------------------------- 1 | To improve readability in the grub menu at boot, particularly if you have more than 1 entry : 2 | 3 | - ``sudo nano /etc/default/grub`` 4 | - Add or modify : ``GRUB_GFXMODE=1024x768`` for example 5 | -------------------------------------------------------------------------------- /HiDPI/tty.md: -------------------------------------------------------------------------------- 1 | TTY are hardly readable. To increase font-size, do the following : 2 | 3 | - ``sudo dpkg-reconfigure console-setup`` 4 | - Choose UTF-8 5 | - Choose the default Combined - Latin, ... option ("Latin" includes the English alphabet) 6 | - Select the terminus font 7 | - Select 16x32 8 | 9 | Changes will be ok and permanent at next reboot. 10 | 11 | More informations [here](http://askubuntu.com/questions/173220/how-do-i-change-the-font-or-the-font-size-in-the-tty-console) 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DELL xps13 2015 (9343) Linux Support 2 | 3 | Tips and tricks to make XPS13 2015 work with linux. 4 | 5 | ## Contributors Configurations 6 | 7 | See the collected configurations [here](configurations.md) (ordered by BIOS version) 8 | 9 | ## BIOS 10 | 11 | ~~BIOS A01 is [out](http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverID=RHPC0)~~ 12 | ~~BIOS A02 is [out](http://www.dell.com/support/home/en/en/nldhs1/Drivers/DriversDetails?driverId=F2PRR)~~ 13 | ~~BIOS A03 is [out](http://www.dell.com/support/home/en/en/nldhs1/Drivers/DriversDetails?driverId=XY677)~~ 14 | ~~BIOS A04 is [out](http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=133FN)~~ 15 | ~~BIOS A05 is [out](http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverID=YMRTD)~~ 16 | ~~BIOS A06 coming [soon](http://bartongeorge.net/2015/08/28/recent-fixes-for-xps-13-developer-edition/)~~ 17 | ~~BIOS A07 is [out](http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=28M21)~~ 18 | ~~BIOS A08 is [out](http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=KTW00)~~ 19 | ~~BIOS A09 is [out](http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=MNWHN)~~ 20 | ~~BIOS A11 is [out](http://www.dell.com/support/home/fr/fr/frbsdt1/Drivers/DriversDetails?driverId=MYXCY)~~ 21 | ~~BIOS A12 is [out](http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=W57K8)~~ 22 | ~~BIOS A13 is [out](http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=5K69V)~~ 23 | ~~BIOS A14 is [out](http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=43Y56)~~ => removed. See this [post](https://github.com/mpalourdio/xps13/issues/103#issuecomment-367957009) 24 | ~~BIOS A15 is [out](http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=RTNYC)~~ 25 | ~~BIOS A17 is [out](https://www.dell.com/support/Home/ue/en/brbsdt1/Drivers/DriversDetails?driverId=X45GJ)~~ => removed. See this [post](https://github.com/mpalourdio/xps13/issues/105#issuecomment-408702876) 26 | ~~BIOS A18 is [out](https://www.dell.com/support/home/us/en/sebsdt1/drivers/driversdetails?driverId=RR83R)~~ 27 | ~~BIOS A19 is [out](https://www.dell.com/support/home/en/en/nlbsdt1/drivers/driversdetails?driverid=TRF18)~~ 28 | BIOS A20 is [out](https://www.dell.com/support/home/en/en/nlbsdt1/drivers/driversdetails?driverid=W5C0W) 29 | 30 | >After downloading a BIOS `.exe` file from one of the links above, you can install the update by copying the `.exe` file to `/boot/efi`. Alternatively, you may install the update via a USB device: 31 | 0. Download and **verify the checksum**. 32 | 1. Copy the downloaded file to a USB flash device. It does not need to be bootable. 33 | 2. Insert the USB flash device into any USB port. 34 | 3. Power on the system. 35 | 4. At the DELL logo screen, press F12 to access the one time boot menu. 36 | 5. Select BIOS Flash Update in the Other Options section. 37 | 6. Click on the ... button to browse the USB flash device to locate the downloaded file. 38 | 7. Select the file and click Ok. 39 | 8. Confirm the Existing System BIOS Information and the BIOS Update Information are as expected. 40 | 9. Click Begin Flash Update. 41 | 10. Reviewing the Warning message and click Yes to proceed with the update. 42 | 11. The system should restart and show a Flash Progress bar on the Dell logo screen as the BIOS update is being performed. 43 | 12. The system will restart once again when the Flash update is complete. 44 | 45 | ## DELL patches/firmwares/drivers 46 | 47 | * [QHD Patch to disable automatic adaptative brightness](https://drive.google.com/file/d/0BwSnIxxl4kxkbXdSX2FkNE5OR1E/view?pli=1) - Installs under windows only :worried: 48 | * [Touchpad firmware A00](http://downloads.dell.com/FOLDER02883019M/1/9343_Firmware_T792T_WN32_18.1.48_A00.EXE) - Installs under windows only :worried: 49 | * [XPS13 2015 drivers page](http://www.dell.com/support/home/us/en/04/product-support/product/xps-13-9343-laptop/drivers) 50 | * [DisplayLink Ubuntu drivers](http://www.displaylink.com/downloads/ubuntu.php) - Make Dell D3000, D3100 docks & DA100 external video adapter compatible 51 | 52 | ## Current Situation 53 | 54 | From **A01**, linux support is quite decent. The different encountered problems can be: 55 | - touchpad freezing (i2c / ps2 mode) 56 | - no sound (or sound after 2 cold reboots of some kernels, depending on boot options) 57 | - ~~repeating keystroke issue (should be fixed with BIOS A01)~~ (fixed with BIOS A01 & A04) 58 | - ? 59 | 60 | From **A02**, boot options are not needed anymore. Sound will be ok (HDA mode by default) and touchpad will be in i2c mode as ``!Windows 2013`` is not needed anymore to make audio work! 61 | It's still recommended to have a recent kernel (3.17+). Verify your touchpad mode with ``xinput``. 62 | It should give you something like ``DLL0665:01 06CB:76AD UNKNOWN`` if i2c mode is on. You could have to blacklist psmouse too. See [here](A07_02/psmouse-blacklist.conf). 63 | 64 | BIOS **A04**: ``relevant things to linux are: keyboard repeat delay, fix an intermittent hang up at POST, update EC, update CPU microcode, intel platform trust technology updates`` 65 | 66 | Anyway, you should upgrade BIOS to the latest version (at your own risk!). To upgrade, download the BIOS .exe, and save it in ``/boot/efi``. Double-check the checksum, reboot, press F12 and patch. 67 | 68 | **Quote about the repeating keystroke issue (Author?)** 69 | ``Someone asked about the fix for the repeating keypresses. Yes, it was traced back to the source and will be fixed on all affected Dell platforms soon. I just saw that the one for 9343 was promoted to our factories so should be up on support.dell.com any day now as BIOS A01`` 70 | 71 | ## Other Resources 72 | 73 | * [DELL Sputnik project on Launchpad](https://bugs.launchpad.net/dell-sputnik) (list of bugs known to both DELL and Canonical) 74 | * [major.io website](https://major.io/2015/02/03/linux-support-dell-xps-13-9343-2015-model/) ([@major](https://github.com/major)) 75 | * [Barton's blog last update, announcing BIOS A01](http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/) 76 | * [Installing ubuntu 14.04 on the new Dell XPS 13](http://forthescience.org/blog/2015/04/21/installing_ubuntu_14_04_on_the_new_dell_xps_13_v2) 77 | * [Promising patches from Matthew Garret about reducing power consumption on Haswell and Broadwell systems](https://mjg59.dreamwidth.org/34868.html) 78 | * [ArchWiki dedicated to Dell XPS 13 (2015)](https://wiki.archlinux.org/index.php/Dell_XPS_13_%282015%29) 79 | * [DebianOn documentation on the Dell XPS 13 9343 (Early 2015)](https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013%209343) 80 | * [Install Ubuntu 15.04 on the Dell XPS 13 9343 (2015): A complete guide](http://hgdev.co/installing-ubuntu-15-04-on-the-dell-xps-13-9343-2015-a-complete-guide-update/) 81 | * [Repository of issues with the XPS 13 (2015) Developer Edition](https://github.com/advancingu/XPS13Linux/issues) 82 | 83 | IRC: #xps13 (freenode) 84 | 85 | ## What About You? 86 | 87 | If you (are able to) use linux on this computer, please specify: 88 | - your xps13 model (FHD/QHD, CPU, wifi chipset) 89 | - kernel version 90 | - boot options 91 | - pros/cons of this combo 92 | - applied patches 93 | - distribution 94 | - anything you think is useful to know 95 | 96 | Thanks to contributors! 97 | -------------------------------------------------------------------------------- /configurations.md: -------------------------------------------------------------------------------- 1 | # << Return to [README](README.md) 2 | 3 | Configurations are organised by BIOS, since it has impact on all the 4 | rest. BIOS are listed from the most recent to the oldest 5 | 6 | # A20 7 | 8 | ## CONFIG #A20_01 (by [@timwienk](https://github.com/timwienk)) 9 | * Model: XPS 13 9343-6782 (Core i7-5600U, FullHD non-touchscreen, Intel 7265 Wifi) 10 | * Distribution: Debian Buster 10.6 11 | * Boot mode: UEFI 12 | * Kernel: 4.19.146-1 (2020-09-17) 13 | * Kernel Parameters: None 14 | * Patches: No patches applied manually 15 | * Specific packages used: 16 | - firmware-iwlwifi (>= 20151018, non-free) - [wiki page](https://wiki.debian.org/iwlwifi) 17 | + *Note:* Models with broadcom card have no use for these drivers, look at [this page for Debian](https://wiki.debian.org/wl) or [this page for Ubuntu](https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx) instead 18 | + Install from [backports](https://backports.debian.org/Instructions) when using Debian Jessie 8.x 19 | * Specific packages used for Debian Jessie 8.x only (from [backports](https://backports.debian.org/Instructions)): 20 | - linux-image-amd64 (>= 4.1+66) 21 | + With this newer kernel audio works completely (including microphone) 22 | + Audio still in HDA mode (if used in I2C mode on previous boot (i.e. in Windows), an extra cold boot is needed after booting once to switch to HDA) 23 | - xserver-xorg-video-intel (>= 2:2.99) 24 | + This newer version is required for DRI to work with the broadwell CPU 25 | * Config files: 26 | - Swap HDA devices: [/etc/modprobe.d/intel-hda.conf](A20_01/intel-hda.conf) 27 | - Blacklist psmouse: [/etc/modprobe.d/psmouse-blacklist.conf](A20_01/psmouse-blacklist.conf) 28 | - User specific xsession (with touchpad settings): [~/.xsession](A20_01/.xsession) 29 | * Untested: 30 | - Bluetooth 31 | - Actual DisplayPort output (only tested with HDMI adapter) 32 | * Known issues: 33 | - No palm detection on touchpad with "synaptics" or "multitouch" drivers, "libinput" (on Debian Stretch and Buster) does a better job 34 | + *Note:* When "xserver-xorg-input-synaptics" and/or "xserver-xorg-input-multitouch" are installed, default configuration prefers these over "libinput" 35 | * Other accessories used: 36 | - Dell 470-ABBT, USB 3 to Ethernet adapter (rtl8153 chip, works out of the box) 37 | - Dell 470-13629, Mini DisplayPort to HDMI adapter (works out of the box) 38 | - Dell 460-BBGZ, Padded sleeve with pocket (officially for 12" Dell notebooks, pocket used for accessories + charger, fits perfectly) 39 | 40 | 41 | # A11 42 | 43 | ## CONFIG #A11_01 (by [@mpalourdio](https://github.com/mpalourdio)) 44 | * QHD version, i7-5600u, intel 7265 wifi 45 | * Kernel: 4.8.0-42-generic #45~16.04.1-Ubuntu SMP 46 | * Kernel Parameters: i915.enable_rc6=1 i915.lvds_downclock=1 pcie_aspm=force 47 | * Distribution: Linux Mint 18.1 Sarah 48 | * Pro: Microphone ok / Touchscreen works / Sound ok 49 | * Cons : Suspend / Hibernate mode doesn't work all the time (From last months, OK most of the time) 50 | * Palmdetect and disable touchpad when typing work now (using libinput) 51 | * Touchpad config : [50-synaptics.conf](A11_01/50-synaptics.conf) or [90-libinput.conf](A11_01/90-libinput.conf) to create in ``/etc/X11/xorg.conf.d`` 52 | * Blacklist psmouse : [psmouse-blacklist.conf](A11_01/psmouse-blacklist.conf) 53 | * [HiDPI tweaks](HiDPI) 54 | * Dell D3100 docking station -> DisplayLink drivers v1.3.52 55 | 56 | 57 | # A06 58 | 59 | ## CONFIG #A06_01 (by [@fillier](https://github.com/fillier)) 60 | * Model: XPS 13 9343 (Core i5-5200U, Broadcom Wifi) 61 | * Kernel: 4.2.0-16-generic 62 | * Kernel Parameters: pcie_aspm=force i915.enable_fbc=1 i915.enable_rc6=7 63 | * Distribution: Ubuntu 15.10 (Wily) 64 | * Boot mode UEFI 65 | * Specific configurations: 66 | - i8k for fan control 67 | - smm to disable bios fan control (fights with i8k) 68 | - tlp for power management 69 | - psensor to monitor temps and fan speed 70 | - blacklisted psmouse 71 | - enabled TearFree xorg.conf 72 | * Cons: 73 | - using smm 30a3 disables brightness control and power button(s) 74 | - ~~battery life seem less than expected~~ (better since using tlp) 75 | - wifi does not always work when resuming (haven't seen this happen for a while) 76 | - ~~bluetooth connection to logitech H800 headset fails~~ (see notes) 77 | * Notes: 78 | - Followed instructions here: [http://askubuntu.com/a/632348] and got bluetooth fully working with Logitech M557 Mouse and Logitech H800 headset. 79 | 80 | 81 | # A05 82 | 83 | ## CONFIG #A05_01 (by [@kumy](https://github.com/kumy)) 84 | * Kernel: 3.19.0-30-generic 85 | * Kernel Parameters: None 86 | * Distri: Ubuntu 15.04 (Vivid) 87 | * Pro: Everything seems to be working fine. 88 | * Cons: 89 | - Microphone might not work? (not tested) 90 | - Mouse flickering on main screen while using Docking Station. 91 | * Boot mode UEFI 92 | * Wireless channels 12 and 13 are not available for use: [debian wiki](https://wiki.debian.org/wl#Known_Issues) 93 | * Docking Station D3100 working with one HDMI and one DisplayPort. Driver: 1.0.138 94 | 95 | ## CONFIG #A05_02 (by [@alessio](https://github.com/alessio)) 96 | * QHD Touchscreen version, Intel i7-5600U, Intel 7265 WiFi 97 | * Touchpad firmware A00 (http://downloads.dell.com/FOLDER02883019M/1/9343_Firmware_T792T_WN32_18.1.48_A00.EXE) 98 | * Kernel: 4.2.0-16-generic 99 | * Kernel Parameters: `video=vesafb:ywrap,mtrr:3 i915.enable_rc6=1 i915.lvds_downclock=1 pcie_aspm=force` 100 | * Distribution: Ubuntu 15.10 101 | * Touchpad config: Put [configure_touchpad.sh](A05_02/configure_touchpad.sh) somewhere and add it to the list of startup applications with `gnome-session-properties` to enable palm detect and mid-button emulation with left+right tap. 102 | * Blacklist psmouse as it seems causing X to be unstable: [psmouse-blacklist.conf](A11_01/psmouse-blacklist.conf) 103 | * TTY consoles font improvements: [console-setup](A05_02/console-setup) , overwrite the existing one in ``/etc/default/`` 104 | - This is needed to workaround [Debian bug#759657](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759657) 105 | * Disable Bluetooth and apply TTY's font improvements at boot : [rc.local](A05_02/rc.local) , overwrite the existing one in ``/etc/`` 106 | * Scale GRUB menu: [HiDPI tweaks](HiDPI/grub.md) 107 | * Sound works like a charm. Internal mic, speakers and headset automatic switch: it's all working well 108 | * Cons: none 109 | 110 | 111 | # A04 112 | 113 | ## CONFIG #A04_01 (by [@tombh](https://github.com/tombh)) 114 | * Kernel: 4.0.0-1-amd64 #1 SMP Debian 4.0.2-1 115 | * Kernel Parameters: none 116 | * Patches: None 117 | * Distro: Debian Sid 118 | * Pro: Sound, Suspend, no keyboard glitches, no touchpad freezes 119 | * Cons: Touchpad multitouch, no microphone (haven't tried to fix yet though) 120 | * HiDPI: I find `Xft.dpi: 125` in `~/.Xresources` is the best fit for resolution/font sizes 121 | 122 | ## CONFIG #A04_02 (by [@rpbaptist](https://github.com/rpbaptist)) 123 | * Kernel 4.0 ([Patched as instructed here](http://forthescience.org/blog/2015/04/21/installing_ubuntu_14_04_on_the_new_dell_xps_13_v2/)) 124 | * Kernel Parameters: pcie_aspm=force i915.i915_enable_fbc=1 125 | * Distribution: Linux Mint 17.1 126 | * Configuration as listed in same link as mentioned in kernel link. 127 | * Pro: Wifi works, sound, headphone detection, microphone. 128 | * Con: Touchpad palm detection not working. (ic2) Sound over displayport appears randomly. Cannot enable manually. 129 | * Boot mode: UEFI 130 | 131 | ## CONFIG #A04_03 (by [@bric3](https://github.com/bric3)) 132 | * Kernel: 4.1.2-040102-generic (installed from [ubuntu mainline builds](https://wiki.ubuntu.com/Kernel/MainlineBuilds) [4.1.2-unstable](http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/)) 133 | * Kernel Parameters: None 134 | * Patches: No patches applied manually 135 | * Distribution: Ubuntu Gnome 15.04 (Vivid) 136 | * Wifi driver : [build for 4.1+](https://launchpad.net/ubuntu/+source/bcmwl/6.30.223.248+bdcom-0ubuntu3/+build/7418309) as [recommended by this Dell guy](http://en.community.dell.com/techcenter/os-applications/f/4613/p/19638068/20780337#20780337) 137 | * Touchpad config : [`50-synaptics.conf`](A04_03/50-synaptics.conf) to put in `/etc/X11/xorg.conf.d/` 138 | * No button softarea (_à la Apple Trackpad_) 139 | * Third finger is the middle button on regular mouse (i.e. it pastes) 140 | * Also disabled [GNOME settings daemon](https://wiki.archlinux.org/index.php/Touchpad_Synaptics#GNOME.2FCinnamon) as it overrides my X11 config (no equivalent in GNOME settings dialog) 141 | * Disabled mouse 142 | * Touchscreen disabled : [`99-no-touchscreen.conf`](A04_03/99-no-touchscreen.conf) to put in `/etc/X11/xorg.conf.d/` 143 | * Pro: Almost everything seem to work fine 144 | * Cons: 145 | * I had to install (reinstall) manually drivers Bluetooth and Wifi to make it work well 146 | * Nasty trackpad bug in the kernel fixed in 4.1, but still palm detection nat working well, trackpad not disabled when typing (b/c Gnome settings disabled) 147 | * Boot mode: BIOS 148 | * HiDPI stuff: 149 | * Applied all (application and external displays) tricks from Arch Linux [wiki](https://wiki.archlinux.org/index.php/HiDPI) 150 | * And those [tweaks](HiDPI) by [@mpalourdio](https://github.com/mpalourdio) 151 | 152 | 153 | # A03 154 | 155 | ## CONFIG #A03_01 (by [@soleblaze](https://github.com/soleblaze)) 156 | * Kernel: 4.1-rc3 ([linux-xps9343](https://github.com/soleblaze/linux-xps13-9343/tree/testing) testing) 157 | * Kernel Parameters: i915.enable_rc6=1 i915.enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force 158 | * [/etc/X11/xorg.conf.d/50-synaptics.conf](https://gist.github.com/soleblaze/975bc2b0e5e69137fd08) is configured for palm detection and clickpad 159 | * Patches: None 160 | * Distribution: Arch Linux 161 | * Pros: touchpad and sound work. 162 | * Cons: palm detection does not work 163 | 164 | ## CONFIG #A03_02 (by [@xbcrespo](https://github.com/xbcrespo)) 165 | * Kernel: 3.16.0-4 166 | * Kernel Parameters: none 167 | * Distri : Debian Jessie 168 | * Cons : Mic doesn't work.Touchpad not working properly (touch clicks are not being detected and two-finger gestures block the touchpad) 169 | * Wifi config : Follow the next tutorial: [Broadcom drivers](https://wiki.debian.org/wl) 170 | * Sound is working, altough I had to select "Speakers" in the sound configuration menu (Gnome 3) 171 | 172 | ## CONFIG #A03_03 (by [@linquize](https://github.com/linquize)) 173 | * Touchpad firmware A00 174 | * Kernel: 3.19.0-18-generic #18-Ubuntu SMP 175 | * Kernel Parameters: None 176 | * Distribution: Ubuntu 15.04 (Vivid) x64 177 | * Pro: This kernel makes microphone to work. 178 | * Cons: None 179 | * Boot mode: UEFI with secure boot 180 | 181 | 182 | # A02 183 | 184 | ## CONFIG #A02_01 (by [@pcolby](https://github.com/pcolby)) 185 | * Kernel: 3.18.0-13-generic #14-Ubuntu SMP 186 | * Kernel Parameters: None 187 | * Distri: Kubuntu 15.04 Beta 1 (kubuntu-15.04-beta1-desktop-amd64) 188 | * Pro: Everything seems to be working fine, including audio (haven't had time to test thoroughly yet). 189 | * Cons: Microphone might not work? (not tested) 190 | * Custom HiDPI config : [90-eDP1.conf](A02_01/90-eDP1.conf) in `/usr/share/X11/xorg.conf.d` 191 | 192 | 193 | # A01 194 | 195 | ## CONFIG #A01_01 (by [@mpalourdio](https://github.com/mpalourdio)) 196 | * QHD version, i7-5600u, intel 7265 wifi 197 | * Kernel: 3.16.0-30-generic (#40-14.04.1-Ubuntu) 198 | * Kernel Parameters: psmouse.resetafter=0 && acpi_osi="!Windows 2013" 199 | * Distri : Linux Mint 17.1 Rebecca 200 | * Pro: Touchpad works / Touchscreen works 201 | * Sound seems ok, (3.13 and 3.16.30). 3.16.0.31 makes the touchpad freeze, and there's no sound (whatever the boot kernel parameters) 202 | * Stock kernel (3.13) has sound all the time 203 | * 3.16.x has very poor wifi (intel 7265), 3.13 doens't have this problem. 204 | 205 | ## CONFIG #A01_02 (by [@mpalourdio](https://github.com/mpalourdio)) 206 | * QHD version, i7-5600u, intel 7265 wifi 207 | * Kernel: 3.18.7 and/or 3.18.8 and/or 3.19.1/3.19.2 (3.19.0 = kernel panic) 208 | * Kernel Parameters: psmouse.resetafter=0 && acpi_osi="!Windows 2013" 209 | * Distri : Linux Mint 17.1 Rebecca 210 | * Pro: Touchpad works / Touchscreen works / Sound ok 211 | * Poor wifi (intel 7265). Fix : iwconfig wlan0 power off => seems much better with 3.18.8/3.19.1 and last linux firmware. 212 | * Cons : Microphone doesn't work. Suspend mode doesn't work all the time. Sometines, touchpad jumbs to screen border. Dmesg populated with message 213 | 214 | ## CONFIG #A01_03 (by [@timdj](https://github.com/timdj)) 215 | * Kernel: 4.0-rc1 custom build with patched i2c-hid and hid-multitouch 216 | * Kernel Parameters: acpi_osi="!Windows 2013" pmouse.resetafter=0 i915.enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force i915.enable_psr=1 217 | * Distribution : Linux Mint 17.1 Rebecca 218 | * Pro: Touchpad works / Touchscreen works / Sound ok 219 | * Applied patches: i2c-hid, hid-multitouch [latest firmware package](https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git) and [latest firmware for intel 7265](https://git.kernel.org/cgit/linux/kernel/git/iwlwifi/linux-firmware.git) 220 | * Cons 221 | - Still not happy with touchpad, no palmdetect, moving cursor on button click. 222 | - Suspend, poweroff and reboot does not always work. 223 | - Microphone not working 224 | * after using kernel parameters above and installing tlp my idle power usage (low brightness QHD+ screen) is down to 3.16W with WiFi / 3.03W withouth WiFi 225 | 226 | 227 | # A00 228 | 229 | ## CONFIG #A00_01 (by [@janhenke](https://github.com/janhenke)) 230 | * Kernel: 3.16.0-30-generic (Ubuntu 14.10) 231 | * Kernel Parameter: none 232 | * Pro: Touchpad works perfectly 233 | * Con: No audio (at all) 234 | --------------------------------------------------------------------------------