Skip to content

Commit

Permalink
revise readme a little bit
Browse files Browse the repository at this point in the history
  • Loading branch information
jakeday committed Apr 19, 2018
1 parent 86b1043 commit 0e38002
Showing 1 changed file with 21 additions and 15 deletions.
36 changes: 21 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

Linux running on the Surface Book, Surface Book 2, Surface Pro 3, Surface Pro 4, Surface Pro 2017 and Surface Laptop. Follow the instructions below to install the latest kernel and config files.


### What's Working

* Keyboard (and backlight) (not yet working for Surface Laptop)
Expand All @@ -21,7 +20,9 @@ Linux running on the Surface Book, Surface Book 2, Surface Pro 3, Surface Pro 4,
* Sensors (accelerometer, gyroscope, ambient light sensor)
* Battery Readings (not yet working for SB2/SP2017)
* Docking/Undocking Tablet and Keyboard
* Surface Docks
* DisplayPort
* USB-C (including for HDMI Out)
* Dedicated Nvidia GPU (Surface Book 2)

### What's NOT Working
Expand All @@ -30,7 +31,7 @@ Linux running on the Surface Book, Surface Book 2, Surface Pro 3, Surface Pro 4,
* Cameras (not fully supported yet)
* Suspend (uses Connected Standby which is not supported yet)

### Notes on What's Working
### Disclaimer
* For the most part, things are tested on a Surface Book. While most things are reportedly fully working on other devices, your mileage may vary. Please look at the issues list for possible exceptions.

### Download Pre-built Kernel and Headers
Expand All @@ -39,10 +40,15 @@ Downloads for ubuntu based distros (other distros will need to compile from sour

https://github.com/jakeday/linux-surface/releases

You will need to download both the image and headers deb files for the version you want to install.
You will need to download the image, headers and libc-dev deb files for the version you want to install.

### Instructions

Surface Series Devices:
* Series 5 devices: Surface Book 2, Surface Pro 2017
* Series 4 devices: Surface Book, Surface Pro 4, Surface Laptop
* Series 3 devices: Surface Pro 3

For the ipts_firmware files (series 4/5 devices only), please select the version for your device.
* v76 for the Surface Book
* v78 for the Surface Pro 4
Expand All @@ -51,11 +57,12 @@ For the ipts_firmware files (series 4/5 devices only), please select the version
* v102 for the Surface Pro 2017
* v137 for the Surface Book 2 13"

For the i915_firmware files (series 3/4/5 devices only), please select the version for your device.
* kbl for series 5 devices (Surface Book 2, Surface Pro 2017)
* skl for series 4 devices (Surface Book, Surface Pro 4, Surface Laptop)
* bxt for series 3 devices (Surface Pro 3)
For the i915_firmware files (series 3/4/5 devices), please select the version for your device.
* kbl for series 5 devices
* skl for series 4 devices
* bxt for series 3 devices

These steps assume are you in the linux-surface repo.

1. Copy the files under root to where they belong:
```
Expand Down Expand Up @@ -95,22 +102,16 @@ For the i915_firmware files (series 3/4/5 devices only), please select the versi
sudo mkdir -p /lib/firmware/mrvl/
sudo cp mwifiex-firmware/mrvl/* /lib/firmware/mrvl/
```
9. Install the custom kernel and headers (or follow the steps for compiling the kernel from source below):
9. Install the headers, kernel and libc-dev (or follow the steps for compiling the kernel from source below):
```
sudo dpkg -i linux-headers-[VERSION].deb linux-image-[VERSION].deb linux-libc-dev-[VERSION].deb
```
10. Reboot on installed kernel.

### 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).
* If you are having issues with the position of the cursor matching the pen/stylus, you'll need to update your libwacom as mentioned here: https://github.com/jakeday/linux-surface/issues/46

### Compiling the Kernel from Source

If you don't want to use the pre-built kernel and headers, you can compile the kernel yourself following these steps:


0. (Prep) Install the required packages for compiling the kernel:
```
sudo apt-get install build-essential binutils-dev libncurses5-dev libssl-dev ccache bison flex
Expand Down Expand Up @@ -144,11 +145,16 @@ If you don't want to use the pre-built kernel and headers, you can compile the k
```
make -j \`getconf _NPROCESSORS_ONLN\` deb-pkg LOCALVERSION=-linux-surface
```
8. Install the kernel and headers:
8. Install the headers, kernel and libc-dev:
```
sudo dpkg -i linux-headers-[VERSION].deb linux-image-[VERSION].deb linux-libc-dev-[VERSION].deb
```

### 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).
* If you are having issues with the position of the cursor matching the pen/stylus, you'll need to update your libwacom as mentioned here: https://github.com/jakeday/linux-surface/issues/46

### Donations Appreciated!

PayPal: https://www.paypal.me/jakeday42
Expand Down

0 comments on commit 0e38002

Please sign in to comment.