Jump to content

Microsoft Surface Pro 5 (Project Cobalt)

From Nura Wiki
Microsoft Surface Pro 5
[[
|200px|alt=Microsoft Surface Pro 5 i5 on Windows 10 (ReviOS 10)]]
Microsoft Surface Pro 5 i5 on Windows 10 (ReviOS 10)
Manufacturer Microsoft
Name Surface Pro 5
Codename Project Cobalt
Model Pro 5
Released 2017
Type convertible
Hardware
Chipset Intel 7th Gen Coffee Lake
CPU Intel Core m3 processor / i7-8650U Quad-Core @ 1.60 GHz (up to 3.40 GHz Turbo)
GPU Intel UHD Graphics 620
Display 12.3" PixelSense 2736x1824 touchscreen
Storage 128 GB / 256 GB / 512 GB / 1 TB SSD
Memory 8 GB / 16 GB LPDDR3
Architecture x86_64
Software
Original software
The software and version the device was shipped with.
Windows 10 10
Extended version
The most recent supported version from the manufacturer.
Windows 10
Nura
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
no
pmOS kernel
The kernel version that runs on the device's port.
LTSC (Generic x86_64)

Users owning this device

  • MelvinSGjr (Notes: Running EndeavourOS with Phosh.)

Maintainer

How to enter flash mode

Power down the Surface device. Subsequently, the USB stick should be inserted into the appropriate port. While holding the volume-down button, the power button should be pressed.

Installation

Installation the same as Generic x86_64 UEFI

Notes

Bluetooth

In some desktop environments when trying to turn on the Bluetooth it will freeze, and will not perform any action, if that is the case run the following command in the terminal:

# systemctl start bluetooth # On systemd
or
# service bluetooth start # On OpenRC

It works without problems in Phosh, but in Gnome you have to execute that command, I assume that in some other environments the same.

Touch Screen

To make the touch screen work it is necessary to compile and install iptsd [1] which according to its own definition is:

"This is the userspace part of IPTS (Intel Precise Touch & Stylus) for Linux."

The following dependencies must be installed in order to compile:

# add git build-base linux-headers meson inih inih-dev openrc-dev

Run the uinput module:

# modprobe uinput

Use meson and ninja to build iptsd, and then run it as root.

$ git clone https://github.com/linux-surface/iptsd
$ cd iptsd
$ nano meson_options.txt

Here change value: ['systemd'] to value: ['openrc'] and save the file

$ meson build
$ ninja -C build
# ./build/iptsd

With this the touch screen should already work, if the LTS Kernel is used with the respective linux-surface patches

If you want to install it and have it run automatically as a service when the device starts up you need to run:

# ninja -C build install
# rc-update add iptsd
# nano /etc/modules.load.d/uinput-module.conf

Inside that file put the following:

# Load uinput at boot
uinput

Save it with Ctrl + X and restart the device, it should load the touch at each boot


How to disable touchscreen

Check/update all packages:
# apk update && apk upgrade

Download evtest via pkg:
# apk add evtest

Run evtest:
# evtest

Find the touchscreen. 

Here you will see the number of your touchscreen, for example my number is 8, so this is /dev/input/event8, and when you find your touchscreen, press CTRL+C.

Disable our touchscreen (temporarily, you can't turn off the terminal, also there is no solution how to do it permanently):
# evtest --grab /dev/input/event8
 
Press CTRL+C to stop.

Key Considerations