The Framework 13 laptop
Marius @Marius@marius.federated.id
There are two types of people in this world: the ones that use their computers for doing the work, and the ones that are happy to tinker with them until they fit their usage and only then start doing the work. Of course sometimes for the later ones, of which I am one of, get bored along the way and the work is all but forgotten.
But since I’m writing this update on the new Framework laptop while procrastinating doing the work on some GoActivityPub issues, I’ll consider it a win anyway.
In March, I decided that despite being unemployed and going through my savings at a brisk pace, the fact that I don’t have a laptop is becoming a bit of a problem in my attempt at getting GoActivityPub into a state fit for a first stable version.
Since my previous machine had its screen die at the end of last year - a mysterious ailment that I able to diagnose or fix even with the gracious help of the tech support people at Tuxedo Computers, the company I bought it from in sometime in 2020 - I was left having to do computing on an old desktop machine I had built about ten years ago for playing Steam games. Luckily it had a decent(ish) CPU for the time, and it was perfectly adequate for running the kind of setup I need for my usual development needs. However, it wasn’t very mobile friendly, everything needed to be done at the desk, and frankly it was getting somewhat uncomfortable to spend 10-12 hours a day on it.
And then Framework launched their new 13inch version with a top of the line AMD CPU, and plenty of configuration options which was enough for me to decide to get one despite its premium price and my sad, unemployed state.
Fast forwards to a couple of days ago when the package arrived at my door, rather at my building’s door as no logistics company employee is willing to climb the many flights of stairs to my attic apartment. I was very excited as you can imagine to stop wearing off the F5 key on my keyboard looking for those shipping updates. It even arrived a day earlier than expected.
Assembly
I was eager to unbox the DIY version I bought and Framework didn’t disappoint. Everything was packed tightly together with very little plastic and the one that is there is recyclable at that.
It was a little surprising how little there was to put together: only the keyboard and screen bezel needed full assembly. Additionally, the RAM and the hard drive needed to be slotted in, but that was all.
Putting everything together was incredibly easy (as underscored by the very helpful guide), it took about 30 minutes which included a lot off faffing about setting up angles and lighting in order to take some of the pictures attached to this post. They’re still not great, but I did my best, sorry.
The guide, and the comments from users, implied that the bezel mounting might prove finicky, but for me everything snapped in place on the first try. I’ll admit here that going for the black translucent version my best idea. It breaks the otherwise clean silver look of the machine and seeing the exposed bits of the screen is not as cyber punk as I had expected.
OS installation
Once assembly was done, the real set up began: installing linux and syncing my home directory. As this happens every couple of years you’d think that I have some kind of automation for the process. Sadly I don’t so the manual setup was a bit tedious. Going through the Archlinux installation guide is becoming a bit of a comfort self-stimulation operation. The setup I chose was to use dm-crypt full disk encryption and a single btrfs multi volume partition.
The good news is that all the (essential) hardware is supported out of the box, with the small mention that the first boot configuration has Secure Boot enabled so the archlinux ISO isn’t recognized without first disabling it from the BIOS.
Once the basics were in place I synced my home directory from the desktop machine. Since I didn’t want to think too hard about this, I decided to use rsync directly. This wasn’t a great idea due to the number of small files that needed to be transferred which slowed everything down to the level that I had to let it run overnight. I was however able to boot into a sway session and setup my displays, each with different DPI settings: 30inch 4K monitor at 1.76DPI, 25inch 1920p monitor at 1.5DPI and the laptop’s own screen 13inch 2880x1920 at 2DPI. Granted this is more of a statement about how far sway and Wayland have come than about how capable the hardware is, but it is good to know that everything worked on the first try.
The display is very good, the 3/2 aspect ratio will be very useful for work and will probably allow me to stop using vertical tabs for my IDE and other assorted tools. One little niggle is the fact that the top has rounded corners, which are noticeable when at the top of a linux console, when logging in to fix an issue for example (it’s even noticeable in the image above showing PowerTop).
Another good impression was about how silent the machine was. I was used to my previous laptop to have fans on full blast as soon as I started a Youtube video, but outside the rsync process the system temperature was a stable 46° Celsius with inaudible fans (despite the framework_tool binary reporting about 3K RPM).
Work relevant observations
As I already mentioned I bought the machine to be able to keep working when away from my desk, or at it for all that matters. Astute readers might have noticed me earlier saying that I am also unemployed and wonder at the contradiction. But there is none, the work I keep mentioning is the open-source projects that I’ve been grinding for the better part of eight, ten years. That’s a jumble of C and Go code-bases, but mostly the GoActivityPub - which I have already mentioned - library for building ActivityPub applications using Go. So the laptop spends quite a lot of time compiling things, and even though the speeds of both C and Go compilers is quite good, it’s pleasant to minimize the time spent waiting. The 24 core AMD CPU is both faster and cooler than the previous generation from the Tuxedo Pulse, not to mention to the venerable i7 I have on the desktop machine.
The run times for the most exhaustive test suite for FedBOX, went down from around 17-18 to 12-13 seconds, with the additional benefit that the variant that does additional checks for race conditions went from 29 to 19 seconds. I consider that a significant enough gain.
The only problem that cropped up so far is that the new AMD integrated GPUs have at least one issue on linux.
It manifests when viewing video in the browser as a screen freeze and subsequent Firefox video thread crash. One solution proposed by the framework forums was to migrate to the development version of the linux-firmware package, which diminished the frequency but didn’t fully solve the problem. The “good” news is that the machine is still accessible through ssh and it can be safely rebooted.
On the AMDGPU bug tracker there is a thread from an Arch user running the same configuration and reporting the same, or a very similar, issue. I haven’t tried all the configuration options suggested there, but I’ll go through them if the instability keeps happening. The consensus seems to be that version 6.15 of the kernel will include patches that should fix everything.
Conclusion
This was a good purchase. Hopefully the repairability will give it a longer life than the four years I got out of the Tuxedo which would have still been perfectly usable had the company allowed for a screen replacement.
The good:
- Excellent specs and configurability.
- The assembly for the DIY version is indeed very simple.
- Tall 3/2 screen aspect ratio.
- Good thermal management.
- Most of the firmware can be updated with
fwupd. - The
framework_toolutility that can query and set hardware specific values. - Good support for multiple screen setups.
- Hardware switches for microphone and webcam.
- I love the framework screwdriver. It’s minimalism speaks to me at a hind brain level that I can’t quite articulate.
The bad:
- The AMDGPU issue.
- Not all expansion cards support firmware updates (it’s possible that they don’t need it though).
- Rounded top corners for the display.