linux-surface/README.md

108 lines
5.2 KiB
Markdown
Raw Normal View History

# Linux Surface
2019-12-09 20:57:41 +00:00
Linux running on the Microsoft Surface devices.
Follow the instructions below to install the latest kernel and config files.
2019-02-12 13:52:22 +00:00
### Supported Devices
* Surface Book
* Surface Book 2
* Surface Go
* Surface Laptop
* Surface Laptop 2
2019-12-09 20:57:41 +00:00
* Surface Laptop 3
2019-02-12 13:52:22 +00:00
* Surface Pro 3
* Surface Pro 4
* Surface Pro 2017
* Surface Pro 6
2019-12-09 20:57:41 +00:00
* Surface Pro 7
2019-02-16 20:07:24 +00:00
* Surface Studio
### Features / What's Working
See the [feature matrix](https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features#feature-matrix) for more information about each device.
2018-04-19 01:04:30 +00:00
### Disclaimer
2017-11-19 13:06:23 +00:00
2019-12-09 20:57:41 +00:00
* 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.
2019-12-09 20:57:41 +00:00
## Installation and Setup
2019-05-01 00:55:43 +00:00
2019-12-09 20:57:41 +00:00
For a more detailed installation and setup guide, please refer to the corresponding [Wiki page][wiki-setup].
There, you may also find device-specific caveats.
A short overview of the process is provided below.
2019-12-09 20:57:41 +00:00
This repository is aimed at Debian based distributions (Ubuntu, Pop!_OS, elementary OS, ...).
Releases are provided for both, Debian and Arch Linux based distributions, but if you're running Arch, you may want to consider looking at [this][arch-linux-surface] project instead, or [here][fedora-linux-surface] if you're running Fedora.
2019-12-28 21:57:43 +00:00
These releases can be found here: https://github.com/linux-surface/linux-surface/releases.
2019-12-09 20:57:41 +00:00
You may also want to consider setting up one of the [package repositories][wiki-repos] to obtain automatic updates.
After the installation, you should have a look at the [post-installation notes][wiki-setup-post], specifically you may want to set up [secure-boot][wiki-secure-boot] and install the proprietary firmware package (usually named `linux-firmware`) if you have not done so already.
2019-12-09 20:57:41 +00:00
The following setup instructions re for Debian based systems (Debian, Ubuntu, Pop!_OS, elementary OS, ...).
If you're running something else, you may need to adapt them for your distribution (have a look at the setup.sh script for more information).
2019-12-09 20:57:41 +00:00
1. Before you can actually start, you will need to install some required packages.
On Debian based distributions, you can do this by simply running
```
sudo apt install git curl wget sed
2019-12-09 20:57:41 +00:00
```
2. Clone this repository.
To save some time, you can use the `--depth 1` flag.
```
2019-12-28 21:57:43 +00:00
git clone --depth 1 https://github.com/linux-surface/linux-surface.git
2019-12-09 20:57:41 +00:00
```
If you want to update this git repository later on, e.g. for re-running the `setup.sh` script, you can simply run `git pull` inside the repository.
3. Next, change into the `linux-surface` directory (`cd linux-surface`) and run the setup script via
```
sudo ./setup.sh
```
Follow the instructions and make your choices.
If you have/intend to set up the kernel and libwacom package via one of the package repositories, say `no` to installing them.
Alternatively, you can also install them manually via (for Debian)
```
sudo dpkg -i linux-headers-[VERSION].deb linux-image-[VERSION].deb linux-libc-dev-[VERSION].deb
```
after downloading these files from the [releases][releases] section of this repo.
4. Finally, you will need to re-boot your system and boot into the linux-surface kernel.
Please make sure that you actually boot in the right kernel via `uname -a` before opening any issues.
This should give you a version string containing `surface`.
If not, you may need to configure your bootloader.
For this, please refer to the instructions provided by your bootloader and/or distribution.
If you want to compile the kernel yourself (e.g. if your distribution is not supported), please have a look at the [wiki][wiki-compiling].
## Additional Information
### Notes
2018-04-19 01:04:30 +00:00
* 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).
2018-06-07 02:16:03 +00:00
* Do not install TLP! It can cause slowdowns, laggy performance, and occasional hangs! You have been warned.
2018-04-19 01:04:30 +00:00
### Support
2019-12-09 20:57:41 +00:00
If you have questions or need support, please use our [Gitter Community][gitter]!
For development related questions and discussions, please consider joining our IRC channel on freenode (`freenode/##linux-surface`) or the [equivalent Matrix bridge](https://matrix.to/#/#freenode_##linux-surface:matrix.org).
2019-12-09 20:57:41 +00:00
2019-12-28 21:57:43 +00:00
[wiki-setup]: https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup
[wiki-setup-post]: https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup#post-installation
[wiki-repos]: https://github.com/linux-surface/linux-surface/wiki/Package-Repositories
[wiki-secure-boot]: https://github.com/linux-surface/linux-surface/wiki/Secure-Boot
[wiki-compiling]: https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup#compiling-the-kernel-from-source
2019-12-09 20:57:41 +00:00
[arch-linux-surface]: https://github.com/dmhacker/arch-linux-surface
[fedora-linux-surface]: https://github.com/StollD/fedora-linux-surface/
[gitter]: https://gitter.im/linux-surface
[hibernate-setup]: https://fitzcarraldoblog.wordpress.com/2018/07/14/configuring-lubuntu-18-04-to-enable-hibernation-using-a-swap-file
[releases]: https://github.com/linux-surface/linux-surface/releases
2019-12-28 21:57:43 +00:00
[linux-surface-kernel]: https://github.com/linux-surface/kernel/