Linux Kernel for Surface Devices
Go to file
Jake Day 0386bc9df9 fixes for marvell mwifiex driver
this disables power save, fixes handling of amsdu packets, and adds checking len on cmd complete
2017-10-03 18:52:03 -04:00
kernel fixes for marvell mwifiex driver 2017-10-03 18:52:03 -04:00
root adding NetworkManager.conf to fix wifi mac address changing 2017-09-08 18:44:53 -04:00
config updating to mainline 4.13 2017-09-04 22:31:27 -04:00
ipts_fw_config.bin adding firmware file in case it's missing for compiling 2017-09-04 22:44:14 -04:00
README.md update readme with notes for script permissions 2017-09-06 20:25:59 -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
  • 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 :

  • ipts_firmware.zip
  • 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
  • $ unzip ipts_firmware.zip
  • $ sudo mv ipts_firmware/* /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 chmow 755 /lib/systemd/system-sleep/mwifiex_pcie.sh
  1. Install the custom kernel and headers:
  • $ sudo dpkg -i linux-imagedev linux-headersdeb
  1. Reboot on installed kernel.

Donations Appreciated!

PayPal: contact for details!

Bitcoin: 1JkpbAJ41W6SUjH9vCRDpHNNpecjPK3Zid