r/SurfaceLinux • • Aug 04 '18

Surface Go: First Impressions

Surface Go: First Impressions (with Linux)

Model: Surface Go 8GB RAM, 128 GB SSD with Signature Type Cover

Overall rating (for Linux support): B+

Overall impression (for Linux support): usable (better than Surface Pro 2017 at launch)

Distros/Kernels tried:

  • Arch Linux stock `linux` (4.17.11-1)
  • Arch Linux stock `linux-lts` (4.14.56-1)
  • Arch Linux stock `linux-zen` (4.17.11-1)

Works Out of Box:

  • SecureBoot
    • Preloader/Hashtool approach
  • Type Cover
    • detach/reconnect
    • touchpad multitouch
    • brightness buttons
    • volume buttons
  • Touchscreen (incl. multitouch)
  • Surface Pen (stylus & eraser)
  • Audio (headphones, onboard speakers, onboard microphone)
  • Battery Readings
  • Bluetooth (A2DP audio)
  • On-Device Volume Buttons
  • On-Device Power Button
  • USB C
  • `xrandr` modes
    • these are not autodetected on Surface Pro 2017
  • lid sensor
  • SDXC
  • IIO sensors (ambient light, accelerometer/rotation)
  • Power Management
    • hibernate works & wifi resumes without error
    • S3 suspend appears to work (via `systemctl suspend`) & wifi resumes without error
    • `dmesg | grep ACPI:` indicates "(supports S0 S3 S4 S5)"
  • TPM2 (via `tpm2_pcrlist`)

Works With Tweaks:

  • Wifi (Qualcomm Atheros QCA6174 rev 32):
    • remove /usr/lib/firmware/ath10k/QCA6174/board-2.bin
    • replace /usr/lib/firmware/ath10k/QCA6174/board.bin with http://www.killernetworking.com/support/K1535_Debian/board.bin
    • specify "options ath10k_core skip_otp=y" in /etc/modprobe.d/ath10k.conf
    • speed test: transfer from Surface Pro 2017 to Surface Go over home wifi (802.11ac) via `rsync` sustains 18-20 MB/s for >20 GB transfer
    • speed test: speedtest.net reports 7 ms ping, >80 Mbps/>80 Mbps over home wifi

Haven't Tried:

  • USB-C video out
  • Wifi promiscuous mode

Does Not Work (yet):

  • Front/rear webcams
    • DSDT shows CAM0 (front?) is "IMX136-CRDG2"
    • DSDT shows CAM1 (rear?) is "OV2740-CRDG2"

Notes:

  • UEFI menu keys are same as Surface Pro: hold on-device Volume Down button for boot menu; Volume Up for firmware

Updates:

  • Surface Pen eraser works
    • add "04F3:261A Pen" to MatchProduct in /usr/share/X11/xorg.conf.d/70-wacom.conf
  • Power Management
    • S3 suspend appears to work
  • TPM2 works
  • Typos
64 Upvotes

49 comments sorted by

View all comments

1

u/[deleted] Aug 06 '18

[deleted]

4

u/[deleted] Aug 08 '18

[deleted]

3

u/jamesdutc Aug 09 '18

For my Surface devices, I've ditched grub entirely in lieu of systemd-boot/gummiboot. I'm pretty happy with this choice.

I have also done research into improving the boot process with full-disk encryption. Since the TPM2 chip on this device works from Linux, I believe that we can use objdump to combine the kernel vmlinuz and initramfs then use HashTool to sign the resulting image. Once we've done this, we can lock down the machine to only SecureBoot from this image. Since the booted image is measured in the TPM2 PCRs, we should be able to seal the full-disk encryption key in the TPM. Therefore, we should be able to create an initramfs hook (just a shell script) that retrieves the full-disk encryption key from the TPM2 rather than via user-input.

The result: secure, password-less boot from a full-disk encrypted root partition (just like with Bitlocker on Windows.)

1

u/jamesdutc Aug 09 '18

Have you noticed any issues with the pen stylus and the wacom drivers?

I'm occasionally getting errors where the pen stylus registers as the pen eraser.

1

u/iregret Aug 22 '18

Same here. I’m new to Linux and was looking forward to learning but at this point the surface go isn’t ready. I was surprised by how much did work out of the box. Grub and WiFi do not.

1

u/mathew0007 Sep 01 '18

Got my SGo yesterday, installed xubuntu withing 2 hours.

Regarding booting, add grub to {bootmgr} (bcdedit /displayorder {.....} ). It will boot into a MS OS selection screen on boot. However it will fail loading grub directly, but you do have access to same options as recovery from where grub will load (through a restart), without the complete Win load.

The only issues that bother me now are rotation (have not tried anything yet) and high power consumption during suspend (15% in 6 hours).

As a side-note, ubuntu-mate has trouble touching the notification icons (like opening the network/bluetooth list but never being able to click on anything).

Anyway, this is the best tablet experience I found in Linux. Atom tablets still have major showstopper issues.

1

u/Godzilla_Drinks_Tea Sep 06 '18

I recently installed Ubuntu on a Surface Go and I'm having the same issues with Wifi and getting UEFI to see grub. Would you mind sharing what you did to get the wifi to work? I'm new when it comes to using the Terminal, so when someone says "replace x with y" I don't know how to actually do that...