Microsoft Surface Pro 5 (Project Cobalt)
[[![]() 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 | Windows 10 |
Original version | 10 |
postmarketOS | |
Category | Works with some tweaks |
postmarketOS kernel | LTSC (Generic x86_64) |
Users owning this device
- MelvinSGjr (Notes: Using Windows 10 (ReviOS 10) and MacOS Ventura)
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:
sudo service bluetooth start
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:
$ sudo apk add git build-base linux-headers meson inih inih-dev openrc-dev
Run the uinput module:
$ sudo modprobe uinput
Use meson and ninja to build iptsd, and then run it with sudo.
$ 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
$ sudo ./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:
$ sudo ninja -C build install
$ sudo rc-update add iptsd
$ sudo 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:
sudo pkg update && sudo pkg upgrade
download evtest via pkg:
sudo pkg add evtest
run evtest:
sudo 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):
sudo evtest --grab /dev/input/event8
Press CTRL+C to stop.
Key Considerations
- Image Requirements: Use GPT-partitioned FAT32 USB
- Community Status: Marked as "testing" due to partial hardware support
- Cross-Device References: Similar installation process to Microsoft Surface Pro 4, Microsoft Surface Pro 6 (Carmel) and Asus Transformer T100Ta