Void Linux On A Framework Laptop
This past December I decided to replace my eight year old personal development machine (a Lenovo Ideapad Y510p) with a Framework laptop. Read on to find out what it's like buying into what could arguably be considered niche hardware!
→ Why Framework?
As is the case with almost all consumer electronic devices, it seems like many modern laptops are very unrepairable. I used Apple hardware for work for the last seven years and I knew I didn't want that kind of product. I wanted something that would invite me to open it up, fix things that are broken, or flat out just replace components if I wanted to.
These kinds of consumer electronic devices are extremely rare, but it's a defining feature for Framework laptops. With my Lenovo Ideapad Y510p becoming quite long in the tooth, I figured I should start thinking about a replacement soon or else potentially be left with a dead workstation and no replacement.
My first thought was actually "don't get a laptop", because honestly, my workstation basically stays at my desk. So why pay laptop prices when I could maybe buy a smaller desktop workstation? I also really wanted to go with AMD instead of Intel and/or Nvidia. It turns out that the specific thing I thought I wanted is not very common, and the options that exist are very expensive compared to the Intel/Nvidia counterparts. 1
I knew about Framework but wasn't seriously considering one until that point. One of the big downsides to going the laptop route in my view was the apparent necessary lack of repairability. But Framework as an option changed all that!
After some deliberation I opted to go with one, and I chose the DIY option. It was pretty neat to go through the process of picking parts and configurations. I thought that part of the website was really well made. The machine arrived in early December 2022 and I've been using it as a daily driver since then.
→ Why Void?
Framework actually recommends a few different distros on their website (including Fedora, in which they say everything Just Works out of the box), so why would I go with an obscure distro that's not even recognized by them?
I've never been a distro-hopper; I started out with Ubuntu, then moved to Debian and thought "this is the one". I liked being able to load up a Debian netinstaller and just go with a bare setup. But when the decision was made to shift to systemd, I decided to start looking at alternatives. 2
I've been using Void on various machines for about eight years now. It's not perfect; sometimes there's no package for something I want, they don't have a security team or any corporate backing (in my view this is a feature, not a bug; YMMV), and changes can sometimes take a long time to get any movement (I had a PR auto closed by a bot after many months of silence). But this all comes with the territory of what Void is, and in my view is what makes it special.
In a nutshell: I like Void for its grassroots-style model, and for it being a choice for those that want a non-mainstream init or libc. It is my first distro choice for any machine I use when given options.
→ Laptop Build
When I first unboxed the Framework it was of course in pieces waiting to be assembled since I got the DIY version. Actually the laptop itself was assembled but the modules were not attached, and the RAM/SSD were not yet installed so I would have to open it up to do that. With the DIY version, things like hard disks, RAM, and modules are separate and must be installed.
It came with a small tool that I used to loosen each of the five screws on the bottom, as well as to gently chisel it open - the chassis gladly popped open with a gentle nudge after loosening the screws.
Inside, the laptop was clean and concise. Each component was neatly sectioned in and extremely easily accessible. RAM and SSD installation was a breeze, and the modules slide right in and click when they are secure. Despite being "the DIY model" there actually wasn't much to do compared to a DIY desktop PC build, though certainly more than your average laptop out there.
Overall the laptop is quite small but the build quality feels really good. The modules feel firmly attached and I'm using them regularly without trouble. The chassis itself has the Framework logo on top, but underneath there's no stickers, markings, or identification of any kind. The device has a very nice, clean look to it that I like very much.
→ Booting And Setting Up The OS
Booting my OS was pretty boring to be honest. I used the latest official Void Linux installer, did the install, then rebooted into my shiny new OS.
I've got a simple but somewhat opinionated dotfiles system in a private repo with a small but also somewhat opinionated Python script that does all the heavy lifting. With the help of that, getting my trusty old environment set up on the Framework was a painless process.
I was at first surprised that OpenGL and Vulkan applications seemed to not work. This thing has a 12th generation Intel chip with a new graphics offering, and I didn't realize at first but some old staple packages for Intel support aren't needed with these new Xe-sporting chips. Once I got that sorted I was pleasantly surprised at how decent the performance of the iGPU was; I mostly enjoy older games and many of my favorites seemed to work without a hitch. 3
Everything else works well including the fingerprint reader, and with a few choice package installations and other tweaks I'm seeing extremely good battery life on this thing. Suspend and hibernate both work as you'd expect them to, which is great because they're features I've avoided for a long time due to bad experiences in the now distant past.
→ Hardware And Features
I've spent roughly five months using the Framework as my daily driver, including primarily:
- Editing text with Emacs
- Listening to music via MPD, including over bluetooth
- Web browsing via Firefox
- Email via Thunderbird
- Various shenanigans via kitty term
Most of that is pretty boring stuff, but it's worth mentioning a few things in particular.
→ Audio Over Bluetooth
I've written about trying to use a Bluetooth speaker before and at that time I decided it wasn't even worth trying to use due to poor performance. I decided to give it another try after getting a pair of Bluetooth ear buds.
This thing sports an
Intel AX210 Bluetooth chip and I must say that it seems to work very well. So far it doesn't seem to skip or lag any more than my Android devices do, which is to say: there are occasional performance drops, but by and large as long as I stay in the vicinity of the laptop it works great.
Contrast this with my recollection of how things were when I tried this on my old Ideapad: I ended up buying a cable to connect the speaker because it was basically unusable. Even as I type this I am listening to tunes via Bluetooth and enjoying it!
Note that I haven't really messed with any gamepads or other Bluetooth devices, but I wouldn't expect any trouble with that sort of thing.
I don't plan on doing much gaming on the Framework, but it'd be nice to have a graphics chip that wasn't basically a toaster. Nothing against Intel GPUs; they work fine for everyday usage but it is in my experience somewhat easy to get them to chug. I do from time to time crunch out a video using Blender, and it'd be nice to have a smooth experience for those projects.
Much to my surprise, it turns out to be a rather capable piece of hardware for the kinds of games I play! Indeed I can run very graphically intensive games at more than a slideshow's framerate - often times much much better. I've even produced a video on this thing and it was fantastic! Between the more than capable iGPU and the powerful CPU, using Blender was a silky smooth experience for me. 4
I haven't really played through an entire game on the Framework, but I have done tests with several games. Here are a few that ran great:
- Fallout New Vegas
- Minetest (Mineclone2 game)
- OpenMW (Morrowind)
- DOOM 3
- PCSX2 (Playstation 2 emulator)
- Half-Life 2
I'm sure that if it needed to be, the Framework laptop would be a more than sufficient gaming device - so long as I didn't try to play anything too new of course.
The only real issue here is the aforementioned GPU hang bug. As of Linux 6.2.8 (with Mesa 22.3.5) this seems to be almost completely fixed. Compared to how it was when I first got the Framework, it's a night and day difference and I'm sure in due time the problem will be solved.
I've never been a fan of "chiclet keys" style keyboards, but unfortunately it's the style that I think is going to stay for a while. I'd vastly prefer something like what my Thinkpad T61 has but there would of course be space considerations with the form factor of the Framework laptop.
Okay time to back peddle: I actually really like the keyboard on the Framework laptop! They are technically the style of keys that I don't love, but they have a decent travel and aren't nearly as hideous as the modern Apple laptops I've used (pre-ARM machines). I honestly don't mind typing on it, and as a result I find myself going mobile with it more than I might have if the keyboard annoyed me.
I think it's worth mentioning that if I had some problem with the keyboard... say for example I spilled some coffee on it (not totally out of the realm of possibility!) it would be trivial to replace it! Bonus points for that, for sure. I've also had shower thoughts about custom keyboards but have done zero research. I hope that's a thing! Anyways, the Framework managed to make me like a style of keyboard that I was staunchly against. Bravo!
The design of the trackpad on the Framework laptop is pretty typical of modern laptops; my Ideapad from 2014 had a similar design, I think it's probably inspired by Apple devices. This is easily my least favorite aspect of the Framework's design. I strongly dislike single-button trackpads that depend on where you touch/click to do either right or left click. I want actual buttons, again like my Thinkpad. I swear I'm not literally Cranky Kong!
I should probably look into setting it up to behave more like Apple hardware - this is one thing they do get right in my opinion. On Apple hardware the annoyances of the single/no button trackpad go away because the controls for it just feel intuitive for me.. At least I got used to it pretty quickly. What you do depends on how many fingers you do it with, which way you swipe, and so forth.. So if I could tweak my Linux setup to behave like that I'm sure it'd annoy me less. For now it's a relatively minor annoyance.
My Framework laptop sports an
Intel Wi-Fi 6 AX210/AX211/AX411 chip. I don't have any ethernet port modules, but I do have a USB-C to ethernet adaptor I could use in a pinch. WiFi is my primary network connection. It's obviously slower than a hard connection but it's pretty fast. Far faster than any other device I have except for the Steam Deck, which is comparably fast (maybe faster). Really I have no complaints.
Now that I've had the thing for several months, using it as my daily driver, I can safely say that I really like this Framework Laptop. I'm not even remotely mad that they just announced AMD base boards despite the fact that I explicitly wanted something with an AMD chip inside. On the contrary, I'm thrilled about that. It's a sign that the model is growing and I hope it continues to do so.
The small form factor and light weight of the device make me more likely to carry the Framework laptop around, and the build is solid enough that I don't stress about wearing it out or breaking something. And if I did, the repair would be relatively simple! So at least I have that to look forward to.
Framework laptops might cost as much as or more than some comparable models by more mainstream manufacturers (but still quite a bit less than Apple!), but after several weeks of usage I can confidently say that they are a worthy investment. We'll see how it goes long term, how long the iGPU continues to be troublesome, and how well the hardware holds up in general. But so far it's been a great experience and I'm delighted to be using a Framework laptop! 5
→ Footnotes And References
1 Since I started writing this post back in January, they have announced AMD base boards. Rejoice!
2 The long and short is, systemd sounded like a good idea at first but its scope has grown to huge proportions and shows no sign of stopping. I do use various parts of systemd that have been un-assimilated (dbus, logind, etc), and I think that conceptually it was a good approach to a sysv alternative (minus the endless scope). I also think that for most cases something like s6 or runit are a better fit.
3 The package in question was
xf86-video-intel, which provides exactly three files; one is a copyright text, one is a polkit config, the other is a fairly innocently-named binary. It isn't clear to me why this package broke my iGPU, but that part of the stack is pretty magical to me.
4 If you're curious, this is the video I made (it's less than two minutes long and intended to be very concise): Install an OpenMW mod: https://www.youtube.com/watch?v=xzq_ksVuRgc
5 I have not been motivated by Framework themselves to make this post in any way. I just like the thing a lot!