Linux Kernel for Surface Devices
Go to file
2017-11-14 11:07:42 -05:00
kernel disable ipts debug thread 2017-11-12 21:18:38 -05:00
root updating udev rules for touchscreens on pen for SP4, SP2017 and SB 2017-11-08 21:58:54 -05:00
apparmor-fix-4.14.patch update apparmor patch to be more compatible with more distros 2017-11-14 11:07:42 -05:00
config updating kernel config 2017-10-20 16:04:32 -04:00
i915_firmware.zip update firmware files 2017-11-03 19:50:56 -04:00
ipts_firmware_v76.zip updating ipts firmware files 2017-11-08 21:47:57 -05:00
ipts_firmware_v78.zip updating ipts firmware files 2017-11-08 21:47:57 -05:00
ipts_firmware_v79.zip updating ipts firmware files 2017-11-08 21:47:57 -05:00
ipts_firmware_v102.zip adding missing file in ipts firmware v102 2017-11-13 14:06:20 -05:00
README.md adjust formatting of readme 2017-11-12 21:24:26 -05:00

Linux Surface

Linux running on the Surface Book, Surface Pro 4, Surface Pro 2017 and Surface Laptop. Follow the instructions below to install the latest kernel and config files.

What's Working

  • Keyboard (and backlight)
  • Touchpad
  • 2D/3D Acceleration
  • Touchscreen
  • Pen (if paired and multi-touch mode enabled)
  • WiFi
  • Bluetooth
  • Speakers
  • Power Button
  • Volume Buttons
  • SD Card Reader
  • Cameras (partial support)
  • Suspend/Hibernate
  • Sensors (accelerometer, gyroscope, ambient light sensor)
  • Battery Readings
  • Docking/Undocking Tablet and Keyboard

What's NOT Working

  • Dedicated GPU (if you have a performance base on a Surface Book, otherwise onboard works fine)
  • Cameras (not fully supported yet)

Download Pre-built Kernel and Headers

Downloads for ubuntu based distros (other distros will need to compile from source in the kernel folder):

https://goo.gl/QSZCwq

You will need to download both the image and headers deb files for the version you want to install.

Instructions

NOTE: For the ipts_firmware files, please select the version for your device.

  • v76 for the Surface Book
  • v78 for the Surface Pro 4
  • v79 for the Surface Laptop
  • v102 for the Surface Pro 2017
  1. Copy the files under root to where they belong:  * $ sudo cp -R root/* /
  2. Extract ipts_firmware_[VERSION].zip to /lib/firmware/intel/ipts/
  • $ sudo mkdir -p /lib/firmware/intel/ipts
  • $ sudo unzip ipts_firmware_[VERSION].zip -d /lib/firmware/intel/ipts/
  1. Extract i915_firmware.zip to /lib/firmware/i915/
  • $ sudo mkdir -p /lib/firmware/i915
  • $ sudo unzip i915_firmware.zip -d /lib/firmware/i915/
  1. (Ubuntu 17.10) Fix issue with Suspend to Disk:
  • $ sudo ln -s /lib/systemd/system/hibernate.target /etc/systemd/system/suspend.target && sudo ln -s /lib/systemd/system/systemd-hibernate.service /etc/systemd/system/systemd-suspend.service
  1. (all other distros) Fix issue with Suspend to Disk:
  • $ sudo ln -s /usr/lib/systemd/system/hibernate.target /etc/systemd/system/suspend.target && sudo ln -s /usr/lib/systemd/system/systemd-hibernate.service /etc/systemd/system/systemd-suspend.service
  1. Set permissions on mwifiex_pcie.sh script:
  • $ sudo chown root /lib/systemd/system-sleep/mwifiex_pcie.sh
  • $ sudo chmod 755 /lib/systemd/system-sleep/mwifiex_pcie.sh
  1. Install the custom kernel and headers:
  • $ sudo dpkg -i linux-headers-[VERSION].deb linux-image-[VERSION].deb
  1. Reboot on installed kernel.

NOTE: If your network won't connect on the 4.14.x series, you need to apply the apparmor-fix-4.14.patch file in /etc/: $ cd /etc/ && sudo patch -p1 < /path/to/apparmor-fix-4.14.patch

Donations Appreciated!

PayPal: https://www.paypal.me/jakeday42

Bitcoin: 1JkpbAJ41W6SUjH9vCRDpHNNpecjPK3Zid