Linux Kernel for Surface Devices
Go to file
2017-11-08 21:58:30 -05:00
kernel updating multitouch driver to specify touchscreen devices 2017-11-08 21:58:30 -05: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_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
README.md updating ipts firmware files 2017-11-08 21:47:57 -05:00

Linux Surface

Linux running on the Surface Book and Surface Pro 4. 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 a version. v76 has been reportedly the best for the Surface Book and v78 for the Surface Pro 4 and 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