I’m looking for a cheap and portable tablet that I can use for writing. Microsoft Surface Pro tablets, at least around the gen 4 models, are rather cheap to buy used, and they seem decently well made. Naturally, were I to buy one, I would have to install Linux onto it.
I’ve been peripherally aware of the Linux Surface project for some time now. I looked at it recently, after having not for some time, and it seems that they have really made good progress compared to what I remember, and it’s making me much more interested in trying to install Linux on a Surface Pro.
Having never owned a Surface Pro, I’m not sure which models are the most reliable and sturdy. I’m not looking for something that’s the flashiest; I want something that works well. I want something pragmatic — something akin to the idea of an older era of Thinkpad (eg T460). I want a pen with low input delay and good accuracy, reliable and responsive touch controls, and a decent display. I was thinking the Surface Pro 4 might be a good choice, but it’s hard to know as there aren’t many videos out there of people installing Linux on them, so I’m wondering what your experience has been with Microsoft Surface Pro’s and installing Linux on one.
Cross-posts:
I’ve installed Mint on a 6 recently. Setting up the boot settings was a minor hassle, but everything else was very smooth. Definitely recommend the linux-surface kernel.
I set up a 6 as well, and it works great except for the camera. Looks like it’s a piece of hardware with a specific driver needed. There’s an open source project to support this, but it’s not often updated, from what I can tell.
The libcamera build does work on an sp6, but it’s not useful, since discord and others don’t support libcamera devices.
I used Fedora with the linux-surface kernel on a Surface Book 1, and everything pretty much worked out of the box. I bought it used on eBay and the battery in the tablet portion was pretty degraded, so I don’t know if it impacted performance, but it could be a little clunky at times.
It was my computer in exile while our house was being renovated after some water damage and I was able to run prusa slicer on of for my mini. I didn’t try a pen with it, but the touch controls worked with the custom kernel.
Eventually, I tried Aurora OS which is an immutable fedora distro with the surface kernel loaded by default and performance was about the same. Now I have it on cachyOS which needed the Ethernet cable installed so I could get the Marvell firmware drivers for WiFi, but it was much snappier. That’s an arch based distro, so I could load the surface kernel for touch driver stuff but you lose out on some of the more advanced kernel stuff that group is pushing.
Overall, I’ve been pleased with the experience. I didn’t have a surface device before, but when I heard about the linux-surface project, I had to try it.
I have not installed it, so I cannot comment about my experience.
Thank you for pointing out, by example, a flaw in my original title 😆
Im running Ubuntu on a Surface Pro 5 (i5 7300u, 8GB) with the linux-surface-kernel.
Generally, things pretty much worked out of the box, the only tinkering I had to do was to optimize battery life / cpu power usage when not plugged in. Theres packages that will limit your CPU frequency depending on the status of your battery. I dont remember the exact name, but it was pretty much the first hit I googled “linux limit cpu power” or something like that. Without that, the battery life wasnt great, especially when watching YouTube, but with some tweaking and the proper h264/h265 drivers, my surface achieves some 3-4 hours of video playback right now.
Other than that it’s smooth sailing all the way.
I have a surface pro 6, bought used for cheap. With the surface Linux kernel, almost everything works.
I built support for the front and rear cameras using the surface Linux instructions and they work, however it’s not a working solution, since ms Teams pwa or discord can’t use libcamera devices.
One thing you should be aware of, though, is that the tablet experience is only really workable in Wayland, so you’ll have to forgo non-wayland apps and desktop environments. Gnome is… not great.
Also, there are several gotchas with wayland. I use flameshot for screenshots, which is broken on Wayland with scaling. Scaling also breaks default firefox on Wayland.
Sorry, didn’t mean to turn this into a Wayland comment.
The hard work the folks at surface Linux have done is amazing, and I’m happy to daily drive my surface.
Yeh. To get the cameras working, you have to do some janky stuff with v4l2loopback. When I went to replace my aging Surface Go, I got a Thinkpad and haven’t had to deal with much (other than switching to the Debian 12 backports kernel for the Wi-Fi driver, as I chose to use stable on that laptop because I don’t want to have to debug it on the go).
I have a Surface Pro 7 running EndeavourOS.
Installing was just as simple as installing on desktop. The Linux surface kernel solved some of the non-functional parts (such as touchscreen and auto-rotate). The only thing that doesn’t work are the cameras, but idgaf bout those.
All in all it’s not a terrible experience, but compromises have to be made.
Watch for battery life when buying older Surface devices. Replacing batteries in the older Surface Pros is notoriously difficult, because apparently the whole assembly is glued together. Loss of battery life is what forced an early retirement of my 5th-gen (2015) Surface Pro, even though not was otherwise completely serviceable. Newer versions are apparently more repairable, but you’ll have to investigate where that cut-off line of repairability is.
Watch for battery life when buying older Surface devices. Replacing batteries in the older Surface Pros is notoriously difficult, because apparently the whole assembly is glued together.
Thank you very much for the heads up!
Newer versions are apparently more repairable, but you’ll have to investigate where that cut-off line of repairability is.
It looks like an attempt at heading in the direction of repairability started with the Surface Pro 9, but it’s still quite involved [1][2].
References
- “Surface Pro 9 Teardown: The Most Repairable Surface In Years”. iFixit. Youtube. Published: 2022-11-10 (Accessed: 2024-08-26T02:28Z). https://www.youtube.com/watch?v=bGP1pO8nGDc.
- “Microsoft Surface Pro 9 Repair”. Clay Eickemeyer, Spencer Day. iFixit. Published: 2024-03-30 (Accessed: 2024-08-26T02:30Z). https://www.ifixit.com/Guide/Microsoft+Surface+Pro+9+Repair/165163.
Quote of the day:
“Naturally, were I to buy one, I would have to install Linux onto it.”
That really explains my first day.
I installed Arch on Surface Pro 6. And have GNOME and KDE installed. Pen and touch works perfectly (when it works), like it recognizes pressure, but sometimes need to restart the surface after putting it in standby because it fails to detect pen(and touch as well).
Camera is kinda wonky, it kinds works with cheese but not with other applications, and I couldn’t manage to make the back camera work.
WiFi and Bluetooth works fine (there are some issues with bluetooth when standby but haven’t looked much into that)
Downsides
Neither KDE nor Gnome is optimized to operate as a touch DE. Pen on KDE is detected as mouse(well its detected as pen but proxy as mouse input if a program doesn’t support pen; like if I try to scroll firefox using pen, it works like I have right clicked mouse and am dragging up, so selecting text instead of scrolling), but touch works as expected.
And UX for on-screen keyboard(OSK) is not on par with Windows. It kinda works with GNOME, like a program window slides up if it were to be overlayed by OSK but its still wonky. And I didn’t had good xp with OSK.
But overall, I like it. Its not really powerful enough to do any development, but I use it for multimedia and eBook reader
I tried arch with the Posh desktop, awell as plasma mobile. They work really well and are intended for mobile devices
Thank you. I will try these. Have you tried PostmarketOS or have any idea how it works on surface?
Edit: I just remembered what I had to do to get cameras working in most applications. I used v4l2loopback.
I don’t know about older Surfaces, but for me in a nutshell, H-E-Double hockey sticks on my 1st gen Surface Go. Only install Linux on a Surface if you already own one.
More in-depth, it was usable - it was my main personal on-the-go device for a couple of years. I’d had it since before I used Linux. On mainline, the main stuff worked. With the Linux-Surface kernel, I could get the cameras working. It was always very janky (you had to bridge stuff through GStreamer or some other weird crap rather than using it directly. Don’t remember the specifics), but it worked.
Another annoyance was a hardware issue with the keyboard when it was in your lap: since the keyboard wasn’t very rigid, it would bend a bit while typing or placing your hand on the palm rest, making unwanted mouse clicks
My big problem with the Surface Go, though, was I had chronic issues with power profiles. It never went to sleep quite right, so after closing it a few times, the system would begin to get unstable and I’d just have to do a reboot.
After my initramfs got borked on that during the time_t64 transition (my fault, not the hardware’s; I use Debian Testing and an apt update went awry), I didn’t feel like going back and fixing it, as I was planning on replacing this device with the Thinkpad I write this on anyway.
Ultimately, my opinion (again, just based on using the Go 1, which is a bit newer than the Pro 4) is that it isn’t the best idea. Considering Pro 4s are not expensive on eBay, trying it isn’t the worst idea, but I feel like it’s not worth it, an unfortunate truth considering Surfaces are such unique devices. This isn’t a cheap alternative (the CPU’s not the best from what I can tell), but the Surface fan in me finds the StarLabs StarFighter 12.5-inch enticing considering it’s both very Surface-like and Linux-friendly.
As you want cheap, you might be able to find something to throw LineageOS or postMarketOS on. Honestly, my question for you is how much do you need a tablet specifically? Could a small laptop do?
Fedora on Surface Go 1 with Surface kernel:
I never uses it only as a tablet except on holidays if I watch a movie on a hotel bed. It spends most of its time linked to a big screen, but I’m really happy with it except for how slow it is to pick up my mouse Bluetooth signal or the fact that the battery is often depleted for no reason when I turn the Surface on.
It is my only PC and is powerful enough to do everything I need it for, which is admin, web browsing and old strategy games.
Of course, I was running Debian Testing with XFCE4, so it may be something odd in that combination.
I got a surface pro 3 from goodwill for $99. Been running fedora on it and it runs hot the fan will get loud but honestly it’s great for reading manga with komikku or watching movies and stuff. the pro 3 works without the linux-surface kernel so that’s a plus even if it does mean it’s a little slow. gnome works great on it and it makes me wish all my laptops had a touchscreen. in tablet mode the on screen keyboard leaves a bit to be desired but I hear there’s some improvements in gnome 47 and 48 so I’m hopeful
It’ll work fine, but there are still proprietary driver issues for certain things. It’s not a 1:1 comparison, but it’ll work just fine.
Prob somewhat irrelevant due to maturity of both, but I had a surface 2 with Ubuntu on it and that computer is now used.to wedge a door open. The experience was shit but the surface 2 was atom based I think so that was prob most of the reason…
That being said, I installed Linux on a lenovo yoga (convertible) and I never touched the screen for frustration. Even on the steamdeck, is and touch is no fun
I suggest testing a few OS for touch friendliness.
I tried booting an old Surface off a USB stick with stock Ubuntu once – probably either 20.04 or 22.04. (I tried this in June 2022 but didn’t make a note of the versions in my journal, unfortunately.) I was able to get it to boot, but I couldn’t get touch/pen controls working so I decided against replacing the OS. I didn’t have enough enthusiasm to bother experimenting with it further – I assume it probably needed the custom kernel.
Dual booting is a nightmare, you’ll need a specially modified kernel, and getting the pen to work right can be tricky.
Once you’ve finally got the kinks worked out it’s pretty cool, but that might take longer than you’d like.
I was using a surface pro 7, for what it’s worth.
I have Ubuntu 24.04 with the Surface kernel on a 7th gen Pro, and it works fine. Battery life isn’t amazing as mentioned in other comments, but I am otherwise completely happy with the install. I can get work done just like it was any other Linux mobile device.