I AM NOT RESPONSIBLE if your Surface Go bricks, explodes, if you break into NSA, FBI, CIA, NASA databases, cause a nuclear meltdown or show any other "bad behavior" after using this guide.
(Just to be sure people understand how terminal commands are powerful and not reading twice before executing is dangerous.)
Requirements:
- 1x Type-C to USB A adapter
- 1x 8Go+ USB Key
OR - 1x 8Go+ Type-C USB Key
- Manjaro ISO
- Rufus
A second usb key with the kernel binaries might be handy as you might not have Wi-Fi at first boot.
I also used my phone as an USB tether device, so I could have internet with the initial wifi drivers ;)
- Disable bitlocker / encryption (windows settings)
- Shrink your main Win 10 partition so you can get ~25G for the distro + 8G for swap
- Plug in your USB drive
- Launch rufus
Select your Manjaro ISO file
Replace MBR with GPT partition table in Rufus and click start.
Use thedd
method when asked - Shutdown your Surface go.
- Reboot while holding Volume Up + Power buttons
- Get to "Boot" and disable SecureBoot
- Put the USB boot entry before the Windows boot entry
- Save & Exit
Now you should get to the grub menu on your usb key.
- Select your locals (timezone, language, keyboard, etc) & launch Manjaro
- Do the same steps in the installer ...
- Select
manually partition
when asked - Select the 260 Mo partition (must be the first)
Set/boot/efi
as the mount point.
Save and exit - Select the partition you created in I) step 2 on Windows
Click create - Set the size to 8GB (or 4GB if you have the 4GB variant)
Change theext4
format tolinuxswap
.
Click save and exit. - Create a partition with the remaining space.
Set/
as the mount point.
Save and exit. - Check and double check, f* it TRIPLE check that you're not erasing anything you shouldn't.
- Let it install & reboot.
- Reboot on your Bootable USB Key
- Select "Detect EFI partitions"
- Select the Manjaro boot entry (ending with grubx64)
- Repeat steps III)
- Open a terminal
Recommended:sudo pacman -Syu
git clone https://github.com/dmhacker/arch-linux-surface.git ~/surface-kernel
cd ~/surface-kernel
sudo sh setup.sh
sudo sh configure.sh
cd build-{VERSION}
(replace{VERSION}
with the actual version)sudo chown -R user:user .
(replaceuser
with your username)MAKEFLAGS="-j$nproc" makepkg -sc
- Repeat steps III)
- Open a terminal
- Type
efibootmgr
Take note of Manjaro and EFI USB entries' IDs (the 4-digit number on the left)
For me,Manjaro: 0002
,Windows: 0000
,EFI USB: 2001
andEFI Network: 2002
- Recommended :
efibootmgr -o {EFI USB ID},{ManjaroID},{WindowsID},{EFI Network ID}
Example :efibootmgr -o 2001,0002,0000,2002
grub-mkconfig -o /boot/grub/grub.cfg
- ENJOY!
- Jakeday Linux-Surface kernel
- DMHacker Linux-Surface kernel's Arch fork
- Arch Wiki contributors Archlinux's "Bible"