{
 "id": 39599,
 "slug": "installing-linux-on-a-microsoft-surface-go",
 "url": "https://agents.willem.com/en/snippets/installing-linux-on-a-microsoft-surface-go/",
 "language": "en",
 "title": "Installing Linux on a Microsoft Surface Go",
 "subtitle": "From creating a bootable USB to a working touch-friendly Linux tablet.",
 "summary": "The Surface Go is a compact Windows tablet that makes an excellent Linux machine — if you know how to set it up. Here's the practical guide: creating a bootable USB, choosing the right distro, and getting touch input working properly.",
 "topics": [
  "experiment",
  "linux",
  "tablet"
 ],
 "created": "2026-04-03T19:31:11.131000+02:00",
 "updated": "2026-04-03T19:31:11.137000+02:00",
 "full_article_url": "https://willem.com/en/2020-03-09_making-my-own-tablet-os/",
 "author": {
  "name": "Willem L. Middelkoop",
  "url": "https://willem.com"
 },
 "note": "A short distillation of a longer willem.com post. Not currently published on willem.com itself.",
 "answers_question": "How do you install Linux on a Microsoft Surface Go?",
 "text": "The Surface Go's compact size, decent screen, and USB-C port make it a surprisingly good Linux tablet. Willem chose Debian GNU/Linux for stability and control.\nCreating the bootable USB: Download the Debian netinstall ISO and write it to a USB stick using `dd` or Etcher. Boot the Surface Go from USB by holding Volume Down during startup.\nTouch input works out of the box on recent Linux kernels — the Surface Go's touchscreen is well-supported. The main challenge is choosing a window manager that's touch-friendly: Willem experimented with tiling window managers and custom launchers.\nWiFi and firmware: The Surface Go's WiFi chip requires proprietary firmware. Install `firmware-atheros` from Debian's non-free repository.\nFrom Willem's full series on building a tablet OS from scratch.",
 "markdown_url": "https://agents.willem.com/en/snippets/installing-linux-on-a-microsoft-surface-go/snippet.md"
}