Linux Kernel for Surface Devices
Go to file
2017-11-03 19:50:56 -04:00
kernel updating ipts to be more compatible with newer i915 modules 2017-11-03 19:47:27 -04:00
root update udev rules 2017-11-03 19:50:47 -04:00
apparmor-fix-4.14.patch fix typo in apparmor patch file 2017-10-30 11:42:44 -04: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.zip update firmware files 2017-11-03 19:50:56 -04:00
README.md fix firmware files and update readme 2017-11-01 19:34:51 -04:00

Linux Surface

Linux running on the Surface Book and Surface Pro 4. Following 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 (for Surface Book)

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, Headers and IPTS_firmware

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 :

  • linux_image-*
  • linux_header-*

Instructions

  1. Copy the files under root to where they belong:  * $ sudo cp -R root/* /
  2. Extract ipts_firmware.zip to /lib/firmware/intel/ipts/
  • $ sudo mkdir -p /lib/firmware/intel/ipts
  • $ sudo unzip ipts_firmware.zip -d /lib/firmware/intel/ipts/
  1. 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: contact for details!

Bitcoin: 1JkpbAJ41W6SUjH9vCRDpHNNpecjPK3Zid