/Surface-Laptop-Go

MacOS, ChromeOS and Linux install guides for the Microsoft Surface Laptop Go.

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.

  • On Surface laptops with M.2 drives like this one, upgrading the SSD is quite easy. Just make sure to create a recovery drive before you start - any external USB with 16GB of space will do.
  • Follow MrHG78's guide for instructions on a different Surface, but it's the same procedure.
  • Watch this teardown video to see how you remove the bottom screws (be gentle removing the rubber strips!), then carefully lift off the keyboard. You don't need to disconnect the keyboard but you can if you want to. You'll see the black rectangular metal shield covering the NVMe drive. Gently wiggle that out and replace the SSD.
  • You'll want the new 1TB SSD to be formatted as NTFS or else you can't recover from your USB to the internal drive.

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:

  • CPU: Intel i5-1035G1 (Icelake)
  • GPU: Intel UHD Graphics (Iris Plus Graphics G1)
  • RAM: 8GB Soldered to motherboard
  • Wifi: Intel Killer Wifi 6 AX1650i (201NGW)
  • Audio: Intel Ice Lake-LP Smart Sound Technology (Realtek ALC274 codec)
  • Touchpad: ELAN
  • SSD: 128GB or 256GB NVME M.2 - as noted, definitely worth upgrading.

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.

  • Hold Volume UP and press power until the UEFI boot menu appears. In security, disable TPM.
  • Back in Windows, disable bitlocker, or you'll have to enter a lengthy code every so often, and I decided it's not worth it. (There are solutions in place for using TPM, bitlocker and OpenCore, you can Google that if you want to set it up.
  • Hold Volume DOWN and press enter to boot to USB for installing Linux, Mac OS, etc.
  • In Windows (or using a Linux Live USB) make sure to partition your drive before jumping in to installing Mac OS.

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.
  1. 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.

  2. 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.

  3. 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:

  • The install instructions fail if booting from a Linux Live USB, as we only have 8GB of RAM and it fills up quickly with the Chrome OS image. To get around this, you will need to have Linux installed first in a partition.
  • Fingerprint reader does not work (expected behavior)
  1. Read the instructions on the official Brunch repo: https://github.com/sebanc/brunch
  2. Go to CrOS Updates and search for "volteer", then download the latest recvovery.
  3. You will need either an external mini SD card / USD to run Brunch off of, or you can create an EXT4 partition on the internal drive. Make sure it is at least 14GB in size - probably bigger than that if you plan to install any apps.
  4. After installing using the steps in the Brunch guide, you will be provided with a Grub menu to copy into your bootloader.

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.