UP  |  HOME
RSS | RSS Complete

devil (Surface Go)

Table of Contents

Summary

A swell small portable. This is also my Wayland test machine. It runs a clone of my i3 environment in sway, plus considerations for touchscreen interaction.

Notes

  • N-trig pen also works with my magedok USB-C portable monitor so it's a nice companion display.

Hardware

Make Microsoft
Year 2018
Model Surface Go
Processor Pentium Gold 4415Y
Memory 8 GB
Ports Surface Connect
  USB C 3.0
  Micro SD
  3.5mm Headset
Graphics Intel HD 615
Storage 128GB Toshiba BG3 NVMe SSD
Display 10" 1800x1200
Int. Peripherals Qualcomm Atheros QC6174 802.11AC
  Qualcomm USB Bluetooth
  Realtek RTS522A SD Card Reader
Ext. Peripherals Surface Type Cover
  Surface Pen
Dimensions  
Length/Depth 18.0 cm
Width 24.8 cm
Height/Thickness 1.5 cm
Weight 0.77 kg (1 lb 11 oz)

Software

Operating System Debian
Unique applications Wayland/Sway

Log

[2022-05-07 Sat] OS install and hardware notes

I decided to try going very modern on this machine setup. After playing about in a Windows 11 eval copy (why did the seller reformat after posting photos of win 10) I tried to boot Void linux and OpenBSD, but decided against those rabbit holes. I put on Debian and eventually moved to testing branch (bookworm, 12.x). This also became my first time trying Wayland using the sway compositor.

Overall hardware support was pretty good on recent kernels. One required intervention was replacing the wifi firmware (board-2.bin) with a different version specific to the Surface Go. A second issue is the cameras aren't functional with a mainline kernel. Appears to require a kernel patch, and a recent build of a support library (libcamera). I did test them out while I was on windows and they're pretty satisfactory. I think the rear cam produces a worse picture than the front.

Bluetooth has been shit. I can't pair or see any older devices. Even modern bluetooth 4.x devices and the surface pen connect only when they feel like it. It was suggested 2.4 GHz wifi use might interfere, but I've verified I'm connected to my 5 GHz AP.

The Surface Go I bought was used and came with the Type Cover, and Surface Pen. The type cover has a weird quirk where it resets during fast typing or certain buttons/touchpad actions, but this seems to only occur in legacy modes. That is once a proper kernel is loaded and initialized the device it is fine. I still hit this issue when typing my luks decryption password, but I get by typing the password slowly.

The keyboard layout is ok, but the top row of letters is slightly shifted to the left. I find it mostly noticeable on with the '[]' keys. There isn't any reason for this. Tab could have been wider and '\' narrower to keep a better alignment.

[2022-05-11 Wed] Sway setup

Lots of changes moving to a Wayland setup. I managed to get quite a lot more working than I expected on such a device, but it's taken more than a full day and I still haven't quite achieved feature parity with my i3 setup.

Fancy touchscreen gestures recognition in Wayland seems to not exist. This device can still do a lot with the pen input, but it's basically just a two button mouse. For sway compositor you really just require a keyboard to do anything beyond switching workspaces and interacting with already running apps, but that's more or less what I expected to get out of this experiment.

Squeekboard

Sway

See sway

Dhewm3

I got hold of an original CD copy (pre-BFG remaster). I thought why not try it out on the Surface Go for fun.

For comparison the minimum requirements are a P4 1.5GHz or Athlon XP 1500+. These were single core so comparatively the Pentium 4415Y (at 1.6 GHz) is ~4X the performance, but it does that in a 6W package while those would have been close to 60W.

I had doubts about it running under Wayland, but after doing the CD shuffle, running game-data-packager, and installing dhewm3 it fired right up. Setting the resolution was a bit tricky because you need to account for the display scaling (divide real resolution by scaling factor). I ended up with this invocation and it worked very well.

/usr/games/dhewm3 +set r_fullscreen 1 +set r_mode -1 +set r_customWidth 1200 +set r_customHeight 800

[2023-01-06 Fri] Sway, wayvnc, and Remarkable Vnsee

I tried using the remarkable as a VNC display before with X machines, but found X liked to crash (at least on my radeon based desktop machine). So I got the idea to give it a go with this little machine since having a e-ink display seemed like a nice little companion.

See official docs on Vnsee Sway setup

swaymsg create_output
swaymsg output "HEADLESS-1" resolution 1404x1872 scale 2
wayvnc -o HEADLESS-1 --max-fps=10 10.11.99.2

This isn't that great. My main goals were viewing documentation. I found serious issues using atril as the document viewer. I tried switching to zathura to alleviate the control issues of using a mouse centric app.

It seems important to limit wayvnc frame rate as above. Otherwise I ran into more rendering issues. Still not perfect, but most edge cases can be worked around by moving the workspace to a real display and sorting things.

Future things: I'd like to be able to rotate the display as well as hide the cursor. Vnsee mentions cursor hiding for x11vnc, but wayvnc doesn't seem to have that option in my cursory manpage reading.

[2023-12-28 Thu] Fixing Bluetooth recovery from suspend

Bluetooth always broke on suspend, but resetting the usb device was enough. Was tired of having to attach the type cover or usb keyboard though.

Instead we create a systemd service that runs on resume following this thread.

It looks like:

Listing 1: /etc/systemd/system/reset_bluetooth_usb.service
[Unit]
Description=Reset Bluetooth USB on resume
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=/usr/bin/usbreset 0cf3:e302

[Install]
WantedBy=sleep.target

Then enable it:

sudo systemctl enable reset_bluetooth_usb.service

[2024-05-08 Wed] A refurbished Surface Dock 1661

I got a refurbished Surface Dock. It's like a tiny brick. Microsoft didn't just put one chunk of steel in it, but rather made a steel chunk sandwich. It weighs about 0.56 kg.

Here's a nice teardown by Dan S. Charlton (maker of Vertical Docks).

The dock cable was a bit stressed by the refurbisher wrapping it hard around the body, but it seems to be functional. According to that teardown it is a removable connector (glued), but replacements don't seem to be available so I'll leave it in place.

I ran both DisplayPorts, and tested all the USB 3.0 ports individually.

The only thing that isn't working right is the Realtek adapter's USB 3.0 link. Instead it comes up on the USB 2.0 hub, and I get an error "Cannot enable. Maybe the USB cable is bad?". It is a shame, as this thing's WiFi can already pull down USB 2.0 speeds, but at least latency would be reduced. In a pinch I could hook up a USB 3.0 ethernet adapter.