Linux Kernel for Surface Devices
Go to file
2017-11-03 21:15:33 -04:00
kernel cleanup surface laptop keyboard hid ids 2017-11-03 21:15:33 -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 update readme 2017-11-03 19:51:05 -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 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

  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. Extract i915_firmware.zip to /lib/firmware/i915/
  • $ sudo mkdir -p /lib/firmware/i915
  • $ sudo unzip i915_firmware.zip -d /lib/firmware/i915/
  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