December 6, 2022

reydetallarines

Technology and Age

Framework laptop with NixOS, a user feedback

A new job comes with a new laptop. As such, I was given a Framework Laptop DIY Edition with the objective to install and configure it entirely with NixOS. I will share my first impressions after receiving and opening the box, sharing my personal feedback on the hardware. Then, I will go through the various pitfalls I encountered with the installation of NixOS on a Framework Laptop DIY Edition so that you can be up and running in no time.

If you are not familiar with Framework computers, that’s OK. The Framework laptop is relatively new to the market as it was introduced in 2019. What makes the Framework laptops unique is the fact that its parts are easily upgradable, repairable and customizable by the end-user. On order, the DIY edition provide various options to configure your machine, choosing between the operating system, the processor, the memory and the disk types. The configuration can further be extended with pluggable expansion cards providing a large choice of connectivity as well as extra storage. This flexibility is not just about customization, it also extends the lifespan of your machine as it can be upgraded with with needs, requirements and expectations over time.

Assembling the hardware

Once your order arrives, it is hard not to notice how light the box is. When you open it, you can appreciate the laptop, parts, manual, a very compact charger, 4 independently packaged expansion cards and a handy screwdriver that makes the assembly a breeze. How convenient!

The aluminum frame looks nice and robust. Thinking about it, with my MacBook Pro sitting next to it on the desk, it looks very good. As good as the MacBook Pro!

Inside the frame, every part has a bar code that can be scanned with your phone so that you can view the instructions on your browser. Having said that, here are the components to install in no particular order:

  • NVMe™ storage drive, effort level low.
  • RAM memory card(s), effort level low.
  • Expansion cards, effort level low.
  • Wi-Fi card, effort level medium as the white and black cables must be firmly secured with the card.

Except for the expansion cards, the installation requires opening the frame with the screwdriver that comes with the laptop or any small Phillips screwdriver at your disposal.

In the latest DIY edition, the Wi-Fi card comes pre-installed.

As you can appreciate, the hardware installation is a straight forward process. Now your Framework Laptop DIY Edition is ready for the NixOS. As an optional test, you could quickly install another operating system like Ubuntu to ensure that every hardware component works properly: display, keyboard, sound, Bluetooth, Wi-Fi, fingerprint reader and the expansion cards. This extra step will give you the certainty that the hardware is working correctly in case you have to troubleshoot something when installing NixOS.

For a installing NixOS, please refer to the article written by my colleague Florent Mouaffo covering the NixOS installation. Although he used a Dell laptop, it is a complete guide of the installation process. I highly encourage you to read it.

Before we start with the specifics of the OS installation, here are my hardware specifications:

  • Intel® Core™ i7-1185G7
  • Graphics: Intel Iris Xe Graphics (embedded in the motherboard)
  • Wi-Fi: Intel® Wi-Fi 6E AX210 vPro®
  • Storage: 1TB – WD_BLACK™ SN750 NVMe™
  • Memory: 64GB (2 x 32GB) DDR4-3200
  • 3 USB-C and 1 HDMI expansion cards


Framework Laptop motherboard and expansion cards

Installing and fixing NixOS

The NixOS installation on the Framework laptop is not as straightforward as with other hardware. In my case, the WI-FI adapter driver is missing which prevented me to run the installation through the Wi-FI.

These are the steps to follow:

  1. Download the NixOS ISO image from this link. Note that the Graphical ISO image has 2 options:
    • GNOME: The site shows this is the recommended option, I confirm that was the only stable option.
    • Plasma Desktop: Although this option does not use as much RAM memory as GNOME, the configuration of services like Bluetooth, sound, Wi-Fi, external displays is more complex, and these services may stop working even after a successful initial setup. This option is NOT recommended.
  2. Load the ISO image into a USB drive (minimum “3GB”) through a program like balenaEtcher, although you can choose application to accomplish this step. Once completed, plug-in the USB drive to the Framework laptop.
  3. Start the computer and press F2 to access the Setup Utility program. Once there:
    • Security > Enforce Secure Boot: disable
    • Boot > EFI Boot Order: uncheck all options except for the USB drive with the ISO image
    • Save and reboot
  4. Once the computer detects the USB drive, it will run and present a menu displaying the installation options. The first option, in my case “NixOS 21.11.334247.573095944e7 Installer”, is OK.
  5. A Gnome operating system is up and running but keep in mind that it is working from the USB drive. The next step is to install the operating system on the laptop’s hard drive.
  6. NixOS Manual describes the process in Chapter 2. However, here are the observations about the installation process:
    • 2.1.1 Networking in the installer: This section is useful as the installation requires an Internet connection. However, it did not work with the Framework laptop so this step can be omitted.
    • 2.2 Partitioning and formatting: With Framework laptops, the option ‘2.2.1 UEFI (GPT)’ is the correct one, 2.2.2 instructions should be skipped.
    • 2.2.1 UEFI (GPT) - Steps 2 & 3: These steps determine the space for the SWAP partition. Here is a reference to estimate the appropriate SWAP partition based on the RAM available on the laptop.
    • 2.2.3 Formatting: toutes les étapes doivent être suivies. Grâce à ce processus, il est important d’identifier le nom du disque dur. La commande lsblk répertorie le nom du disque dur, y compris toutes les partitions.
    • 2.3 Installing: all the steps must be followed until step 4 which requires the “configuration.nix” file. This is a critical step as it defines the services and packages that will be available in the computer. For reference, I published the Nix configuration repository that was used.
  7. Once the “configuration.nix” file is ready, a working Internet connection is mandatory. Since step 2.1.1 did not work, the only option left is a wired connection.
  8. Run nixos-install.
  9. Depending on the number of packages and the internet connection, the installation process could take between 15 and 20 minutes. At the end of the installation, you have to set the root password.

Finally, here are some observations that you may want to be aware of:

  • After rebooting the computer, Wi-Fi may not be working. In that case, follow these steps:
    • Enabling Wi-Fi: ’nmcli radio wifi on
    • Connecting to a network: ’sudo nmcli device wifi connect “SSID name” password “password”
    • Reboot
  • Although Bluetooth is enabled and working, and it is possible to easily pair a keyboard and a mouse, it is not possible to connect audio devices such as Bluetooth headphones (neither with PulseAudio nor pipewire)
  • If the external display does not work well, the refresh rate needs to be manually chosen in Settings: Display.

Impressions, feedback, and critics

What works very well:

  • Lightness
    The laptop is very light and compact, easy to carry around on your hands or on a backpack very comfortably.
  • Frame
    The frame is made of aluminium. It feels strong and is beautifully crafted.
  • Assembly
    The laptop is very easy to put together and to access the motherboard. It comes with a screwdriver so that you have all the tools that you need in the box.
  • Keyboard
    the keyboard is definitively one of the highlights of this computer, very comfortable to type on it for hours. One additional feature is the keyboard backlight, great for working at night.
  • Trackpad
    The space available for the trackpad is plenty to use it with multiple fingers. In addition, it has a great feel and is very responsive.
  • Performance
    This depends entirely on the configuration of your choice. In my case and based on my hardware specifications, the computer works very well at different workload levels.
  • Flexibility
    One of the most notorious features is the ability to swap expansion cards. HDMI, DisplayPort, MicroSD, USB-A and USB-C expansion cards are proposed. 4 slots are available to choose any combination of your choice.
  • Fingerprint reader
    It works flawlessly and it will save you time by avoiding entering the password every time.
  • Display
    In latest versions, brightness and contrast are very satisfying.

What does not work so well:

  • Speakers
    The quality of the sound is OK to watch videos and join conference calls. However, the speakers sound quality is not the greatest, not really designed to enjoy listening to music nor watching your favorite movie.
  • Webcam
    The webcam works OK with the 1080p resolution and 60fps but it is probably not the best option to take a picture with specially with low light conditions.
  • Battery life
    Depending on the display brightness and the applications being used, the battery life will drain accordingly. However, it is evident that the battery life is not one of the strengths of this laptop as it may last 4 to 5 hours until it needs to be charged again. On the other hand, the battery can be easily replaced at a very reasonable price.
  • Fans
    The computer can be loud at times when the fans are working at full speed. It is recommended to always use it on a flat surface to allow airflow.
  • Display
    Display quality has changed around january 2022. The brightness and contrast in previous displays could be much improved.
  • Screen size
    The 3:2 display ratio with 2,256 x 1,504 resolution is ok but the size is too small for my taste, a 15” inch is very much awaited.
  • Graphic card
    There is no option to choose a different graphic card. If your requirements demand the use of a more advanced graphic card for Deep Learning training or video rendering for example, then an external graphic card may be an option to overcome this challenge.

Conclusion

The Framework Laptop is an excellent computer that brings performance, flexibility and plenty of configuration options to the end-user. It is a great working laptop that can accommodate the requirements from a regular office computer to a high-performance machine for software developers. The shortcomings listed here can be easily managed by using an external monitor, headsets or webcam as many people do anyway. My main, if not only, feature request is the availability of a 15” laptop. Finally, I am using this computer since 6 months and I am enjoying it very much, I highly recommend it!

Resources