Jump to content

Framework Laptop 16

From NixOS Wiki
Framework Laptop 16
Laptop 16
Manufacturer Framework
Architecture x86_64-linux
7040 Series
Status maybe supported

The Framework Laptop 16 is a configurable, upgradeable, and repairable laptop made by the Framework company.

Status

The device boots NixOS.

Known issues

The device still has a couple of hardware quirks (see below).

Using the latest kernel will fix some issues. Also read configuration hints in this article.

Configuration

Framework specific NixOS hardware options are bundled within the nixos-hardware project.

AMD 7040 Series

It is recommended to use power-profiles-daemon over tlp for the AMD framework.

  • NixOS Hardware module for flakes: nixos-hardware.nixosModules.framework-16-7040-amd
  • NixOS Hardware module for channels: <nixos-hardware/framework/16-inch/7040-amd>

Fix Color accuracy in Power Saving modes

Active Backlight Management is used to reduce battery power consumption causing the colors of the screen to be inaccurate.

Some desktop environments may already be able to modify this setting.

To disable it add the kernel parameter:

boot.kernelParams = [ "amdgpu.abmlevel=0" ];

Prevent wake up in backpack

Putting your Framework in a backpack can cause it to wake up due to the screen flexing onto the keyboard. While this is not resolved in Firmware, you can workaround this issue with a udev rule:

services.udev.extraRules = ''
   SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ATTR{power/wakeup}="disabled", ATTR{driver/1-1.1.1.4/power/wakeup}="disabled"
   SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0014", ATTR{power/wakeup}="disabled", ATTR{driver/1-1.1.1.4/power/wakeup}="disabled"
'';
Product Vendor and Product ID
RGB Macropad 32ac 0013
Backlit keyboard ISO 32ac 0018

Other Product and Vendor IDs can be found using lsusb.

This does not prevent the trackpad from waking up the device. This however seems to happen less in a backpack.

Bios Configuration

Enable Linux Audio Compatibility in the bios to improve speaker audio quality.

Useful Utilities

There are also utilities, which are helping managing your framework. The framework-tool provides Rust libraries and tools to interact with the system. Also there is a tool for controlling the inputmodules like the led matrix. It can be enabled by specifing the following:

inputmodule.enable = true;

With the following command you can display the time on your inputmodule. It might be necassary to specify your device which will be usually ttyACM0 and ttyACM1, if you have two input modules.

inputmodule-control   --serial-dev /dev/ttyACM1 led-matrix --clock

External resources

There is a NixOS thread on the Framework forum, where you can find additional help, guidance and example configurations.