linux-surface / linux-surface
git clone https://github.com/linux-surface/linux-surface.git
debian-7.2.11-1 · 4d ago
🔥 on GitHub Trending today
Patched Linux kernel and support packages that add drivers for Microsoft Surface hardware not yet upstream.
Why you might care
Surface devices use hardware like the SAM embedded controller and Intel ISP that mainline Linux lacks or only partly supports. This kernel carries those patches so keyboard, touchpad, touch, pen, and webcam can work sooner, and it serves as a testbed before upstreaming. Try your distribution kernel first and switch here if features are missing.
+4
stars, 24h · #6,481
+43
stars, 7 days · #4,559
+~140
stars, 30 days · #5,229
7.8k
★ total · +1% this week
379
forks · 902 open issues
Star history (as recorded here)
LanguageShell
License—
Created2018-10-27 (7y ago)
Last push1d ago
Watchers145
OwnerOrganization
Seen on GitHub Trending
- 2026-10-23 — #12 weekly in shell · +43 ★
- 2026-10-22 — #16 weekly in shell · +39 ★
- 2026-10-21 — #13 daily in shell · +6 ★
- 2026-10-20 — #13 daily in shell · +5 ★
GitHub topics
Links
README excerpt
# Linux Surface Linux running on the Microsoft Surface devices. Follow the instructions below to install the latest kernel. Announcements and Updates | Upstream Status ### Why / About this Project These days, Linux supports a lot of devices out-of-the-box. As a matter of fact, this includes a good portion of the Microsoft Surface devices—for most parts at least. So why would you need a special kernel for Surface devices? In short, for the parts that are not supported upstream yet. Unfortunately, Surface devices tend to be a bit special. This is mostly because some hardware choices Microsoft made are rarely (if at all) used by other, more "standard", devices. For example: - Surface devices (4th generation and later) use their own embedded controller (the Surface Aggregator Module, or SAM). In contrast to other devices, however, some newer Surface devices route their keyboard and touchpad input via this controller. Unfortunately, every new Surface device requires some (usually small) patch to enable support for it, since devices managed by SAM are generally not auto-discoverable. - Surface devices (4th generation and later, excluding the Go series) use a rather special system for touch and pen input. In short, this requires user-space processing of touch and pen data to enable multitouch support and has not been upstreamed yet. - Surface devices rely on Intel's ISP for camera image processing. This means that the webcam also requires some user-space processing. While patches are being upstreamed, not all devices are supported (even with this project), and more work remains to be done. We aim to send all the changes we make here upstream, but this may take time. This kernel allows us to ship new features faster, as we do not have to adhere to the upstream release schedule (and, for better or worse, code standards). We also rely on it to test and prototype patches before sending them upstream, which is crucial because we maintainers cannot test on all Surface devices (which also means we may break things along the way). _So should you install this custom kernel and the associated packages?_ It depends: We generally recommend you try your standard distribution kernel first. If that works well for you, great! But if you're missing any features or experiencing issues, take a look at our feature matrix and give our kernel and packages a try. If your device is not listed as supported yet, feel free to open an issue. ### Supported Devices * Surface Book * Surface Book 2 * Surface Book 3 * Surface 3 * Surface Go * Surface Go 2 * Surface Go 3 * Surface Laptop * Surface Laptop 2 * Surface Laptop 3 * Surface Laptop 4 * Surface Laptop 5 * Surface Laptop 6 * Surface Laptop Go * Surface Laptop Go 2 * Surface Laptop Go 3 * Surface Laptop Studio * Surface Laptop Studio 2 * Surface Pro 1 * Surface Pro 3 * Surface Pro 4 * Surface Pro (5th Gen) / Surface Pro 2017 * Surface Pro 6 * Surface Pro 7 * Surface Pro 7+ * Surface Pro 8 * Surface Pro 9 * Surface Pro 10 * S
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.