tareqmahmood / popos-surface-studio

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pop! OS in Surface Studio

This is a very rough write-up of how I installed Pop! OS in Surface Studio (2021).

Steps from linux-surface Repository

First you need to import the keys we use to sign packages.

wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \
    | gpg --dearmor | sudo dd of=/etc/apt/trusted.gpg.d/linux-surface.gpg

After this you can add the repository configuration and update APT.

echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" \
	| sudo tee /etc/apt/sources.list.d/linux-surface.list
sudo apt update

Now you can install the linux-surface kernel and its dependencies.

sudo apt install linux-image-surface linux-headers-surface libwacom-surface iptsd

Then, reboot.

Custom Steps

Dual boot with Windows

Open /boot/efi/loader/loader.conf

sudo gedit /boot/efi/loader/loader.conf

Add these lines at the end. Increase the boot wait time for systemd. This will make the systemd boot loader wait for 10 seconds before automatically booting into Pop!_OS.

timeout 10
entries 1

Then, install the os-prober utility which will automatically fetch all the installed operating systems in the machine. Open your terminal and run the following command.

sudo apt update
sudo apt install os-prober -y

Run the os-prober command and it will show you the windows boot manager entry,

sudo os-prober

image

Note the partition, for example, here it is /dev/sda1. In my case, it was /dev/nvme0n1p1. Mount that partition and check contents:

sudo mount /dev/nvme0n1p1 /mnt
ls -l /mnt/EFI

Now copy the Microsoft bootloader to systemd bootloader:

sudo cp -ax /mnt/EFI/Microsoft /boot/efi/EFI

Dual boot time fix

sudo timedatectl set-local-rtc 1
sudo hwclock --systohc --localtime

NVIDIA

Check nvidia-smi. If not working, re-install nvidia drivers.

sudo apt purge ~nnvidia
sudo apt install system76-driver-nvidia

Then reboot.

Touchpad

Install libinput

sudo apt install libinput-tools

See if sensor is even working:

sudo libinput measure touchpad-pressure

Then, create a quirk file:

sudo mkdir -p /etc/libinput
sudo gedit /etc/libinput/local-overrides.quirks

And, in the file, write

[Microsoft Surface Laptop Studio Touchpad]
MatchVendor=0x045E
MatchProduct=0x09AF
MatchUdevType=touchpad
AttrPressureRange=25:10
AttrPalmPressureThreshold=500

Then reboot.

Known Issues

  • Not waking up after closing the lid (made me drop this entirely šŸ„²)

Credits

About