Earlier this month, I shared my first impressions of the Framework Laptop.
- Framework Laptop DIY Edition
- Intel i7-1185G7 4.80GHz (4C/8T)
- 64GB Crucial DDR4 PC4-25600C22 3200MHz RAM
- 1TB Western Digital Black SN850 NVMe (7GB/s Read)
- Intel Iris Xe Graphics
- 13.5-inch LCD Display (2256x1504 @ 60Hz)
- 2x USB4 (USB-C), 1x USB 3.2 G2 (USB-A), 1x HDMI 2.0b
The assembly process was incredibly straightforward, supported by smart design decisions from Framework, specifically, well-organised internals, labels and instructions for each serviceable part, as well as the inclusion of a handy T5/PH0 double-sided bit screwdriver.
The build quality of the laptop is very good, but not what I would consider premium. The Framework Laptop does not have the same dense, refined feel like an Apple MacBook or Dell XPS. Instead, I would compare it to a mid-range Dell, with a focus on practical usage vs. aesthetics.
For example, the chassis is made from 50% post consumer recycled (PCR) aluminium, but it is not overly rigid, resulting in some screen flex and wobble when typing. The same can be said for the trackpad, which lacks the “precision feel” of a Dell XPS or Razer Blade.
With that said, these are minor complaints that do not impede the daily usage of the laptop.
Since my purchase and following their promise, Framework has released newly upgraded parts and open-source accessories.
The most significant is the Intel 12th Generation mainboard, which remains compatible with the original chassis.
There have also been some interesting community modifications, using the published schematics to 3D print accessories, such as a standalone case for the mainboard.
In short, the hardware continues to impress and it is great to see Framework deliver new updates/parts, helping to build trust in their promise to enable home servicing and incremental upgrades.
Framework and Fedora
Complimenting the “open” nature of the hardware, I felt it was only right to install an open-source operating system.
The Framework Laptop is fully Windows 10/11 compatible and the likely option for most users. However, as a Linux fanatic, there was only one choice for me!
Initially, I planned to install Pop!_OS 22.04, which includes Linux Kernel 5.16.19, delivering native compatibility for the Framework Laptop.
Frustratingly, I encountered an issue with the WiFi driver. In theory, this can be fixed by installing the backport Intel WiFi driver package using the command below.
sudo apt install backport-iwlwifi-dkms
However, the included Intel AX210 vPro WiFi simply refused to connect. I tried multiple workaround options (following guides on Reddit), but no luck.
I am pleased to report the installation of Fedora 36 was perfect, with full drive encryption and every driver, including WiFi and the fingerprint reader, detected natively.
This is a great example of how good Linux can be, with no need to install/configure third-party proprietary drivers, etc.
I suspect my issue with Pop!_OS was simply a bug, which I am confident will be resolved soon.
Once up and running, I installed my default software. Thanks to the growing popularity of immutable operating systems such as Silverblue and the recent launch of the Steam Deck, the majority of my software is available as a flatpak.
Therefore, the installation was as simple as running the following commands.
flatpak install flathub org.onlyoffice.desktopeditors flatpak install flathub com.simplenote.Simplenote flatpak install flathub com.visualstudio.code flatpak install flathub org.gimp.GIMP flatpak install flathub org.kde.krita flatpak install flathub com.obsproject.Studio flatpak install flathub com.getpostman.Postman flatpak install flathub org.videolan.VLC flatpak install flathub fr.handbrake.ghb flatpak install flathub com.prusa3d.PrusaSlicer flatpak install flathub com.valvesoftware.Steam flatpak install flathub com.heroicgameslauncher.hgl flatpak install flathub com.discordapp.Discord flatpak install flathub us.zoom.Zoom flatpak install flathub com.microsoft.Teams
However, I am most familiar with Docker and haven’t invested the time (yet) to migrate my workloads.
Getting Docker up and running is a little more involved, achieved via the following commands.
sudo dnf -y install dnf-plugins-core sudo dnf config-manager \ --add-repo \ https://download.docker.com/linux/fedora/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo systemctl start docker
Docker Desktop is available as an “rpm” download, which I installed using the following command.
sudo dnf install ./docker-desktop-<version>-<arch>.rpm
The login for Docker Desktop relies on the “pass” password manager to store credentials as gpg2-encrypted files.
Therefore, before authenticating via Docker Desktop, “pass” must be initialised.
gpg --generate-key pass init 7865BA9185AFA2C26C5B505669FC4F36530097C2
Finally, I installed 1Password, which is my prefered password manager. It is available as an rpm package, installed via the following commands.
sudo rpm --import https://downloads.1password.com/linux/keys/1password.asc sudo sh -c 'echo -e "[1password]\nname=1Password Stable Channel\nbaseurl=https://downloads.1password.com/linux/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=\"https://downloads.1password.com/linux/keys/1password.asc\"" > /etc/yum.repos.d/1password.repo' sudo dnf install 1password
Throughout the setup process, I noticed the sleep/suspend state was not ideal, essentially resulting in a high battery drain whilst the laptop lid was closed.
By default, Fedora does not support hibernate (although it can be configured). Therefore, the default sleep state is “s2idle”, which is not well optimised. This can be confirmed using the following command.
Although not perfect, I switched the sleep state to “deep” by modifying the file ‘/etc/default/grub’, inserting the parameter ‘mem_sleep_default=deep’ at the end of the line containing the ‘GRUB_CMDLINE_LINUX’ string.
The final string should read:
Once added, I rebuilt the grub file using the following command (specific to UEFI).
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Upon reboot, the sleep state should now default to “deep”, which in my testing significantly reduces the battery drain with the lid closed, with the only caveat being a slightly slower resume time (approximately 15 seconds).
That’s it! My Framework Laptop is now fully set up, running Fedora 36.
Overall, the process was fairly painless, primarily thanks to the “Linux friendly” hardware choices and the modern Linux Kernel (Linux Kernel 5.17) included as part of Fedora 36.
Over the coming weeks, I plan to put the Framework Laptop through its paces. Therefore, be sure to stay tuned for updates regarding performance, reliability and usability.