Ubuntu 19.10 on Surface Go

As I started traveling a bit more recently, I went into search for a small laptop I can carry with me. As an alternative to my 17″ work and 15″ personal laptop, I wanted to go much smaller. Here comes Surface Go.

It’s not a powerful device by a long shot and any heavy load is out of question. That is doubly so for the one I selected – with 4 GB RAM and only a 64 GB disk. What worked in its favor was a really cheap price (Craigslist) and reasonably mainline components ensuring Linux compatibility. Yep, I wanted to use this as my portable Linux machine.

The first step was to create a bootable media. I personally use Rufus if doing it from Windows. For those doing it from Linux, there is an excellent page with other options available. What you want is MBR-based FAT32 format. If you use GPT, all you’ll get is GRUB command line.

The easiest way to install Ubuntu is if you start from Windows. Go to Recovery Options and select Restart now. From the boot menu then select Use a device and finally use Linpus lite. If Linpus lite doesn’t appear, select EFI USB device and repeat the process. For some reason Linpus option appears every second boot for me. If you are using Ubuntu, there is no need to disable secure boot or meddle with USB boot order as 19.10 fully supports secure boot (actually Microsoft signs their boot apps).

From there on, you can proceed with Ubuntu installation as you normally would do. For me that meant going with Minimal and no other changes. If you select third party drivers, you will have to setup UEFI password but I’ve found that Surface doesn’t need such special treatment.

One issue that you will face is misbehaving wireless driver. For this you can either follow the guide on Reddit or install a custom package. I personally go with the package as it will restore driver every time system gets updated.

Terminal
sudo apt install ./surface-go-wifi_0.0.3_amd64.deb
reboot

That’s it. Your Surface Go will boot Ubuntu now.


PS: If you do want to mess with boot order, start with the Surface Go powered off. While holding Volume Up button, press Power button, and then release Volume Up. This will give you UEFI menu. There you can change boot order and/or disable Secure Boot. To reset BIOS settings to the default values, use F9 key.

PPS: Between the time I wrote this post and its publishing time, any further travel became unlikely due to COVID-19. There goes my reason for getting this laptop. :)

8 thoughts to “Ubuntu 19.10 on Surface Go”

    1. I schedule posts on my blog in advance (usually a month or so ahead). Between me buying Surface Go expecting to travel and this post being published, any travel became unlikely. Talk about bad timing…

  1. It works perfect, but I want te re install Ubuntu. First boot option is USB but it still boot from ssd. With and wihtout secure boot. I use 19.10.

  2. Hi, interesting feedback as I’m planning to give it a try on mine.
    I’m using quite often for conf call. Can you confirm the support of the front webcam under ubuntu ?

    Mine is an LTE edition, I’ll see if this is supported or not but should not be a showstopper.

    Thank you in advance.

  3. I read on some other forums that the pen is working if your on Ubuntu 20.x
    Is anyone running a dual boot setup with Windows 10(2004) with wsl2 + ubuntu 20.x ?

    Thanks in Advance

    1. I can say that pen works under Ubuntu 20.04 albeit with limited functionality. While you can control cursor (it even detects if pressed vs just close). However, I couldn’t make it work for different pressure levels – not sure if due to overall support or just Gimp acting up.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.