Linux Kernel for Surface Devices
Go to file
Maximilian Luz 7c0e669f67
Update v5.8 patches
Changes:
 - SAM:
   - Update DTX driver state after resume.
   - Add DTX Documentation, misc. fixes, and cleanup.

 - IPTS:
   This implements a new and refined UAPI interface that should improve
   stability during suspend and move some responsibility into userspace,
   making the driver simpler.

   It also fixes some sleep issues due to improper shutdown of the device.

   Shortlog:
     0a4a44c Add missing include
     31ae03d Improve error handling of ipts_control_* functions
     287dea0 Prevent lockups if stop is called from the receiver thread
     b737a9c On remove, wait until CLEAR_MEM_WINDOW returned.
     c5b66a5 Add GET_DEVICE_READY ioctl
     af0f84a Seperate UAPI initialization and device probing
     4ae7674 Patch the MEI bus to allow sending commands on remove
     27772bc Just a few refactorings...

Links:
- SAM: af4bb01042
- IPTS: 0a4a44c2a9
- kernel: 6e8bb10ad8
2020-10-22 18:27:17 +02:00
.github Update Debian kernel to 5.8.15 2020-10-16 19:51:04 +02:00
configs Update v5.8 patches 2020-10-16 19:40:10 +02:00
patches Update v5.8 patches 2020-10-22 18:27:17 +02:00
pkg Update v5.8 patches 2020-10-22 18:27:17 +02:00
FUNDING.yml Add FUNDING.yml 2020-08-06 15:59:10 +02:00
README.md Added the Surface Go 2 to the supported devices 2020-06-10 21:55:06 +02:00
setup.sh Update setup.sh 2020-02-27 09:47:38 +09:00

Linux Surface

Linux running on the Microsoft Surface devices. Follow the instructions below to install the latest kernel.

Supported Devices

  • Surface Book
  • Surface Book 2
  • Surface 3
  • Surface Go
  • Surface Go 2
  • Surface Laptop
  • Surface Laptop 2
  • Surface Laptop 3
  • Surface Pro 3
  • Surface Pro 4
  • Surface Pro 2017
  • Surface Pro 6
  • Surface Pro 7
  • Surface Studio

Features / What's Working

See the feature matrix for more information about each device.

Disclaimer

  • For the most part, things are tested on a Surface Book 2. While most things are reportedly fully working on other devices, your mileage may vary. Please look at the issues list for possible exceptions.

Installation and Setup

We provide package repositories for the patched kernel and other utilities. Please refer to the detailed installation and setup guide. There, you may also find device-specific caveats.

If you want to compile the kernel yourself (e.g. if your distribution is not supported), please have a look at the wiki.

Additional Information

Notes

  • If you are getting stuck at boot when loading the ramdisk, you need to install the Processor Microcode Firmware for Intel CPUs (usually found under Additional Drivers in Software and Updates).
  • Using TLP can cause slowdowns, laggy performance, and occasional hangs if not configured properly! You have been warned.
  • If you want to use hibernate instead of suspend, you need to create a swap partition or file, please follow your distribution's instructions (or here).

Support

If you have questions or need support, please use our Gitter Community! For development related questions and discussions, please consider joining our IRC channel on freenode (freenode/##linux-surface) or the equivalent Matrix bridge.