Skip to content

bryce-hoehn/linux-surface-laptop-7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux on the Surface Laptop 7 (ARM)

These are my notes for getting Linux working on the Surface Laptop 7 (ARM).

Based on the Ubuntu Concept image

Disclaimer: I have no experience with upstreaming patches, the patch review process, Linux coding conventions, etc. at all, so for now I'm just documenting everything here in the hope that more knowledgeable people can help!

What's working

Feature Working? Notes
NVMe
Graphics Requires firmware
Backlight
USB USB-A and USB-C ports are working. Have not tested USB over Surface Connector
USB-C display output #11
Wi-Fi Requires firmware and either the ELLX prebuilt kernel or the manual rfkill patch below
Bluetooth Requires firmware #6
Audio #2
Touchscreen #13
Touchpad Works with the ELLX iptsd package - custom calibration may be required, see below.
Keyboard
Lid switch/suspend #7 (comment)
Camera Requires device tree patches 0004 & 0005 - #4 — see config/OV02C10-camera for libcamera tuning
RTC #8

Warning

Without installing the firmware, many hardware components will be broken!

Quick Start

Tested working on the Ubuntu concept image for Ubuntu 26.04. The easiest setup right now is the community-maintained ELLX prebuilts for the Surface Laptop 7 X1 Elite at https://public.hgci.org/software/ELLX/. They are built for Ubuntu 26.04 and should also work on Debian.

These prebuilts currently cover:

  • Wi-Fi
  • Bluetooth
  • Trackpad
  • GPU

Important

Keep your Windows install if you can. If the trackpad gets into a bad state, the easiest known reset right now is to reboot into Windows and then back into Linux.

Steps:

  • Allocate disk partition space for dual booting (highly recommended with bleeding-edge unsupported Linux).
  • Install Ventoy to a USB and drag and drop the ISO afterwards. Ventoy is required to enable keyboard support in GRUB.
  • Reboot, select the ISO with Ventoy, and install Ubuntu.
  • Download the latest matching kernel packages from https://public.hgci.org/software/ELLX/kernels/. At the time of writing these are:
    • kernels/7.0.0-rc4-11/linux-headers-7.0.0-rc4+_7.0.0~rc4-gc0ce08f6e526-42_arm64.deb
    • kernels/7.0.0-rc4-11/linux-image-7.0.0-rc4+_7.0.0~rc4-gc0ce08f6e526-42_arm64.deb
  • Install the kernel packages:
sudo apt install ./*.deb
  • Install the firmware from surface-laptop-7-firmware/proprietary-firmware.tar.gz:
sudo tar -xf proprietary-firmware.tar.gz -C /
# Take note of your hidraw# - most commonly hidraw1
sudo ./etc/scripts/iptsd-foreach -t touchpad -- echo {}
# Calibrate using the hidraw# from the previous command
sudo iptsd-calibrate /dev/<YOUR_HIDRAW#>
# Track your finger _everywhere_ around the trackpad. Ctrl+C -> configuration should be saved.
  • Lastly, if you notice any problems recovering the trackpad or graphics after resuming from sleep, check out these useful fixes here

Sources:

Note

Trackpad support is much better with this setup, but suspend can still leave it in a broken state.

Manual Wifi / Kernel Setup

If you want to build the kernel yourself instead of using the ELLX prebuilts, the older manual notes are below.

chmod +x fix-board-2-wifi.sh
./fix-board-2-wifi.sh
# Install dependencies
sudo apt install git build-essential fakeroot devscripts equivs flex bison bc libssl-dev libelf-dev dwarves dpkg-dev debhelper rsync kmod cpio fakeroot

# Clone most recent concept kernel
git clone git.launchpad.net/~ubuntu-concept/ubuntu/+source/linux/+git/resolute -b qcom-x1e-7.0
patch -p1 < 0001-wifi-rfkill-hack.patch

# Build & install
fakeroot .debian/rules binary-qcom.x1e
sudo apt install ./*.deb 
sudo reboot

Tips & Tricks

Fixing Firefox crashes

If you experience any issues with Firefox, try switching from snap to the .deb or flatpak package.

Credits

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages