olm3ca / Surface-Laptop-Go

MacOS, ChromeOS and Linux install guides for the Microsoft Surface Laptop Go.
64 stars 2 forks source link
brunch linux macos manjaro multiboot windows-11

Microsoft Surface Laptop Go

Install guide for booting Mac OS, Linux and ChromeOS with Brunch.

Upgrade that SSD...

This guide is for the 128GB / 256GB version only, as they have NVMe SSDs. If you have a 64GB it is EMMC, and part of the motherboard, so you can't upgrade it.

Disclaimer

As per usual, the process described in this document could cause irreversible damage to your laptop, and I accept absolutely no responsibility for the consequences of anyone choosing to follow or ignore any of the instructions in this document, and make no guarantees about the quality or effectiveness of the software in this repo.

Microsoft Surface Laptop Go Hardware

Specs:

OS Compatibility Current Status

This hardware is quite simple to configure and works well with all three options. Note: for GNU/Linux, I've had the best success with Manjaro so far. On Fedora, everything except power management works but the battery was not recognized.

Hardware GNU/Linux Mac OS Brunch
WiFi Working Working Working
Bluetooth Working Working Working
Suspend / Sleep Working Working Working
Touchpad Working Working Working
Graphics Accel. Working Working Working
Sound Working Working Working
Touchscreen Working Working Working
Screen brightness Working Working Working
Power Management Working (Manjaro) Working Working

Part 1: Disable bitlocker, TPM, and partition your SSD

Windows 11 should be installed first if you want to use it.

Part 2: Linux (Manjaro, Fedora)

Burn ISO, boot and configure. Manjaro worked with full functionality except the fingerprint reader.

Part 3: MacOS

MacOS also works quite well, especially when using BigSurface.kext (details below), fingerprint reader doesn't work as expected. Start with the lastest version of Opencore. I useed Big Sur on this hardware, YMMV with Monterey.

  1. Download and set up your Mac OS X Big Sur USB install media. gibMacOS

    • Before you make the install USB, make sure it is formatted as APFS with GUID Partition Map.
    • To create the installer, one easy option is TINU.
  2. Create your EFI based on the latest OC Guide for this IceLake generation. A few notes on getting OpenCore to work, in my case:

    • Airportitwlm works perfectly with this wifi card, just make sure you get the version for version of MacOS you're using.
    • I tried all combinations of the ALC274 codec with AppleALC. No luck, but VoodooHDA works well. For now, I'll take it. Note: on Big Sur 11.3+ there is a fix that needs to be applied for audio to work, see this post for more details.
    • Use BigSurface.kext for power management, touchpad and sleep.
    • For iGPU to work, you'll need the iGPU.plist I've included in this repo in your device properties section.
  3. When the Mac OS install media is ready, mount the EFI partition with the MountEFI utility and copy the contents of the latest EFI linked above into this partition.

  4. Boot from the Mac OS installer. In Disk Utility, go to Show All Devices in the top left, and then select the entire drive, and format the partition you have identified for MacOS and make sure to use APFS.

  5. You will need to copy the EFI to your internal SSD drive using the same procedure from step 3. In the UEFI boot settings (Hold Volume UP at boot) make sure you move Windows Boot Manager down in the list of boot options, so that USB boot and internal boot are in the first two spots. This will ensure the computer uses OpenCore as a boot option prior to Windows Boot Manager.

Part 4: Brunch - install ChromeOS on a partition.

Brunch installs really well on this machine, virtually everything works. Follow the dual boot instructions below, with a few notes:

Part 5: How to boot all of this?

With MacOS we have to boot with OpenCore, and Linux / Brunch use Grub. One way to tie it all together is with rEFInd. In Manjaro, install rEFInd using pacman -S refind and it will boot first, giving you the option to load OpenCore, Windows and Manjaro / grub. With grub you can boot Brunch if you configured it in part 4.