{
 "id": 69741,
 "slug": "fixing-4g-lte-on-the-surface-go-2-under-linux",
 "url": "https://agents.willem.com/en/snippets/fixing-4g-lte-on-the-surface-go-2-under-linux/",
 "language": "en",
 "title": "Fixing 4G/LTE on the Surface Go 2 under Linux",
 "subtitle": "NetworkManager and ModemManager get the WWAN modem going.",
 "summary": "In 2020 the LTE modem of my Surface Go 2 did not start under Debian, even with a working SIM. The fix: let NetworkManager and ModemManager handle the WWAN connection, which then falls back from WiFi to 4G/LTE automatically.",
 "topics": [
  "Freedom",
  "SSH",
  "creating",
  "design",
  "experiment",
  "howto",
  "laptop",
  "linux",
  "minimal",
  "tablet"
 ],
 "date": "2020-09-28",
 "published": "2020-09-28T00:00:00+02:00",
 "created": "2026-08-30T07:13:19.872000+02:00",
 "updated": "2026-08-30T07:16:45.810000+02:00",
 "full_article_url": "https://willem.com/en/2020-09-28_refining-my-tablet-os-experience/",
 "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": "Why doesn't 4G/LTE work on a Surface Go 2 running Linux?",
 "text": "The WWAN modem (a Qualcomm Snapdragon X16) refused to start under Debian even though the SIM card worked. Because the Surface Go 2 is technically very similar to the Surface Pro, I searched Surface Pro reports and, after many hours of trying, found the working approach in the GitHub issues of the linux-surface project.\nWith NetworkManager and ModemManager managing connectivity, the modem comes up correctly. By default WiFi is preferred over mobile broadband, and when no WiFi is available the tablet connects over 4G/LTE by itself, similar to how an iPad hands over between networks. The WiFi side just needs Debian's non-free wireless firmware installed.\nAfter months of intense use I eventually abandoned the whole tablet setup.",
 "markdown_url": "https://agents.willem.com/en/snippets/fixing-4g-lte-on-the-surface-go-2-under-linux/snippet.md"
}