# linux-surface/linux-surface

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/linux-surface-linux-surface).**

7,413 stars · 334 forks · Shell

## Links

- GitHub: https://github.com/linux-surface/linux-surface
- awesome-repositories: https://awesome-repositories.com/repository/linux-surface-linux-surface.md

## Topics

`linux` `linux-surface` `surface-devices`

## Description

This project provides a customized Linux kernel and driver suite designed to enable hardware compatibility for Surface devices. It focuses on building and patching the Linux kernel to provide driver support for proprietary hardware components that are missing from the upstream source.

The system includes a secure boot kernel signing mechanism and a process for enrolling custom keys into the system firmware. This allows the execution of patched kernels while maintaining system security protections.

The project covers peripheral driver support for touchscreens, styluses, and keyboards, as well as input management for multitouch and gestures. It also includes power and performance utilities for battery telemetry monitoring, discrete GPU power management, and system sleep state control.

Additional capabilities include pre-boot input support to enable keyboards during disk decryption and a coordination system for clipboard detachment.

## Tags

### Operating Systems & Systems Programming

- [Hardware Compatibility Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-compatibility-layers.md) — Provides custom Linux kernels and drivers to enable full hardware compatibility for Surface devices.
- [Custom Hardware Kernels](https://awesome-repositories.com/f/operating-systems-systems-programming/custom-hardware-kernels.md) — Ships a modified Linux kernel source optimized for power management and discrete GPU control on tablets.
- [Custom Kernel Compilation](https://awesome-repositories.com/f/operating-systems-systems-programming/custom-kernel-compilation.md) — Provides a process for building a customized Linux kernel from source to enable hardware compatibility on Surface devices. ([source](https://github.com/linux-surface/linux-surface/wiki/Compiling-the-Kernel-from-Source))
- [Device Drivers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/kernel-development/kernel-driver-implementation/device-drivers.md) — Provides kernel-mode drivers for touchscreens and styluses not available in the mainline kernel.
- [Power Management](https://awesome-repositories.com/f/operating-systems-systems-programming/power-management.md) — Controls discrete GPU power states and system sleep modes through custom kernel modules.
- [Device Power Profiling](https://awesome-repositories.com/f/operating-systems-systems-programming/power-management/battery-power-optimization/device-power-profiling.md) — Controls discrete GPU power states and battery telemetry to optimize energy usage and performance.
- [Performance Optimization Profiles](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-configuration-profiles/performance-optimization-profiles.md) — Ships configuration profiles used to balance power consumption and processing speed for specific hardware targets. ([source](https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features))
- [RAM-Disk Boot Environments](https://awesome-repositories.com/f/operating-systems-systems-programming/ram-disk-boot-environments.md) — The inclusion of hardware drivers in the initial RAM disk to ensure keyboard functionality during disk decryption. ([source](https://github.com/linux-surface/linux-surface/wiki/Disk-Encryption))
- [Driver Integration](https://awesome-repositories.com/f/operating-systems-systems-programming/ram-disk-boot-environments/driver-integration.md) — Adding hardware drivers to the initial RAM disk to enable keyboard input during disk decryption.
- [GPU Power Profile Switchers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-power-utilities/display-power-managers/server-power-profiles/gpu-power-profile-switchers.md) — Provides utilities to adjust discrete GPU power consumption profiles at runtime to optimize energy usage. ([source](https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features))

### Artificial Intelligence & ML

- [Custom Kernel Installations](https://awesome-repositories.com/f/artificial-intelligence-ml/amd-hardware-acceleration/driver-and-kernel-module-installations/custom-kernel-installations.md) — Enables the installation of specialized kernels containing critical drivers and firmware missing from the upstream source. ([source](https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup))

### Part of an Awesome List

- [Kernel Customization](https://awesome-repositories.com/f/awesome-lists/devops/linux-kernel-development/kernel-customization.md) — Modifies and recompiles the Linux kernel to add hardware support missing from the upstream source.
- [Input Driver Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/touch-and-gestures/input-driver-utilities.md) — Installs drivers and utilities to enable multitouch support, stylus functionality, and touchscreen gestures. ([source](https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup))

### Development Tools & Productivity

- [Handheld Gaming Kernel Patches](https://awesome-repositories.com/f/development-tools-productivity/gaming-utilities/performance-optimization-tools/game-performance-optimizers/gaming-hardware-optimizers/handheld-gaming-kernel-patches.md) — Integrates custom kernel patches to provide driver and hardware functionality missing from upstream sources. ([source](https://github.com/linux-surface/linux-surface#readme))

### Security & Cryptography

- [Secure Boot Key Management](https://awesome-repositories.com/f/security-cryptography/secure-boot-key-management.md) — Enrolls custom signing keys into the system firmware to allow patched kernels to boot securely.

### Software Engineering & Architecture

- [Kernel Source Patching](https://awesome-repositories.com/f/software-engineering-architecture/binary-patching-utilities/source-level-patch-integration/upstream-source-patching/kernel-source-patching.md) — Applies specific source code changes to the Linux kernel to enable missing hardware drivers.

### User Interface & Experience

- [Peripheral Input Drivers](https://awesome-repositories.com/f/user-interface-experience/input-controls/peripheral-input-drivers.md) — Provides low-level drivers for touchscreens, styluses, keyboards, and touchpads. ([source](https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features))

### Data & Databases

- [Initialization Drivers](https://awesome-repositories.com/f/data-databases/storage-abstraction/storage-provider-drivers/task-and-device-drivers/initialization-drivers.md) — Includes essential input drivers in the initial RAM disk to ensure hardware functionality during early boot.

### Hardware & IoT

- [Battery Level Sampling](https://awesome-repositories.com/f/hardware-iot/battery-power-regulation/battery-level-sampling.md) — Implements drivers for reading battery voltage and telemetry to provide accurate power reporting for the device. ([source](https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features))
- [Device Support Configurations](https://awesome-repositories.com/f/hardware-iot/device-support-configurations.md) — Applies customized kernels and patches based on the specific device model to ensure hardware functionality. ([source](https://github.com/linux-surface/linux-surface/blob/master/README.md))
