Framework Laptop

From ArchWiki
Jump to navigation Jump to search

Tango-go-next.pngThis article or section is a candidate for moving to Laptop/Framework.Tango-go-next.png

Notes: For consistency with e.g. Laptop/ASUS. (Discuss in Talk:Framework Laptop)
Hardware PCI/USB ID Working?
GPU N/A
Wireless See Table
Audio 8086:a0c8 Yes
Touchpad 093a:0274 Yes
Webcam 0bda:5634 Yes
Fingerprint reader 27c6:609c Yes
Bluetooth See Table
Accelerometer   Untested
TPM Yes

This article covers the installation and configuration of Arch Linux on a Framework Laptop.

For a general overview of laptop-related articles and recommendations, see Laptop.

Hardware

Framework is intended to be a configurable and upgradeable laptop. The lists below is not intended to be an exhaustive list of all the hardware sold with the framework, but rather a list of tested modules that are specially made for the Framework laptop.

Motherboards

Note: Probably needs a better way to distinguish between motherboard revisions and CPU model used.
CPU Model Working? Notes
Intel i5-1135G7 Yes
Intel i7-1165G7 Yes
Intel i7-1185G7 Yes

WiFi

Device Name PCI ID Bluetooth USB ID Working? Bluetooth? Notes
AX200 8086:2723 8087:0029 Yes Yes Pre-production units
AX201 vPro Untested Untested Professional Edition
AX201 w/o vPro Untested Untested Base/Performance Editions
AX210 vPro 8086:2725 8087:0032 Yes Works on Linux 5.12 DIY Edition (Optional)
AX210 w/o vPro 8086:2725 8087:0032 Yes Works on Linux 5.12 DIY Edition (Optional)

Expansion Cards

Card Name PCI/USB ID Working? Notes
USB-C N/A Yes
USB-A N/A Yes
MicroSD 090c:3350 Yes
HDMI 32ac:0002 Yes
DisplayPort 32ac:0003 Untested
Storage 250GB Untested
Storage 1TB Untested

Installation

ACPI

Note: This was tested on a pre-production unit.

Some acpi_osi options seems to cause CPU stalls on the laptop. This table is just a list of tested values.

Value Stall? Note
acpi_osi= Yes
acpi_osi="Windows 2020" No Probably the preferred option.

Systemd sets up the reboot watchdog and generates an error when the laptop reboots:

[...] watchdog did not stop

You can disable the shutdown watchdog:

/etc/systemd/system.conf
RebootWatchdogSec=0

Firmware

Secure Boot

It is currently unknown if self-enrolling secure boot keys work will brick the Framework laptops or not. As a general recommendation, one can set up with shim-signedAUR or add a password to the BIOS setup menu, enable Secure Boot and manually allow the bootloader to be loaded after upgrades.

LVFS

Support for fwupd is to be expected, but currently not available [1].

Suspend

The inefficient s2idle suspend variant is pre-selected as default. You should select the much more efficient deep variant:

$ cat /sys/power/mem_sleep 
[s2idle] deep
# echo deep | tee /sys/power/mem_sleep
$ cat /sys/power/mem_sleep 
s2idle [deep]

To make this permanent, add mem_sleep_default=deep to your kernel parameters.

Function keys

Key Visible? Marked? Effect
Fn+Esc Yes Yes Toggles Fn lock
F1 Yes Yes XF86AudioMute
F2 Yes Yes XF86AudioLowerVolume
F3 Yes Yes XF86AudioRaiseVolume
F4 Yes Yes XF86AudioPrev
F5 Yes Yes XF86AudioPlay
F6 Yes Yes XF86AudioNext
F7 Yes Yes XF86MonBrightnessDown
F8 Yes Yes XF86MonBrightnessUp
F9 Yes Yes Super+L
F10 Yes Yes XF86RFKill, soft blocks wlan and bluetooth
F11 Yes Yes Print
F12 Yes Yes XF86AudioMedia
Fn+Delete Yes Yes Insert
Fn+Space Yes Yes Controls the keyboard backlight
Fn+b No No Control_L+Break
Fn+k No No Scroll_Lock
Fn+p No No Pause
Fn+Left Yes No Home
Fn+Right Yes No End
Fn+Up Yes Yes Prior
Fn+Down Yes Yes Next

Troubleshooting

Stuttering and periodic freeze

There are reports of stuttering and periodic freezes on the laptop when using GNOME and Wayland. Disabling Panel Self-Refresh has been reported to work[2], although this may no longer be needed on kernel 5.14. PSR is helpful for battery life, so it should be left on if there are no issues.

/etc/modprobe.d/i915.conf
options i915 enable_psr=0

See also Intel graphics#Screen flickering.

Bluetooth on Linux 5.13/5.14

The bluetooth controller does not appear to work as expected when using 5.13 or 5.14 (current as of 5.14.3), tested with bluetoothctl list. Here is the upstream bug report: https://bugzilla.kernel.org/show_bug.cgi?id=213829. Bluetooth works on 5.14 with cold boots, but the controller disappears after a warm boot. If necessary, downgrade to 5.12.15 for working bluetooth support.

Two/Three finger clicks

By default, the touchpad provides middle and right click by clicking on specific regions (bottom middle for middle click and bottom right corner for right click). To switch this two-finger click for right click and three-finger click for middle click, you will need to set the "click method" via libinput. First, find your "Touchpad" device name:

$ xinput

And then set the click method, where device is the name (or ID) found in the previous step:

$ xinput set-prop "device" "libinput Click Method Enabled" 0 1

To make this persistent, put it in a startup script. Alternatively, if using X11, one can create a custom Xorg configuration file with the appropriate settings (see libinput#Via Xorg configuration file).

Dealing with HiDPI with a classic X11 window manager

If you are not using a desktop environment and are just rolling with an old school X11 window manager that does not support HiDPI, it is likely that Framework's default resolution will make things too small. Fixing this generally requires playing whack-a-mole. For "modern" GUI applications that use GTK or Qt, you can set environment variables that will generally make most things work:

$ export GDK_DPI_SCALE=1.5
$ export QT_SCALE_FACTOR=1.5

For some applications, you will need to do extra work. For example, Firefox also needs to have layout.css.devPixelsPerPx set to 1.5 in about:config. Other applications, like git gui, have no DPI settings at all because their underlying toolkits do not support it. In those cases, you will have to increase font sizes.

Changing the brightness of the monitor does not work

If you are using a tool like xbacklight(1) (xorg-xbacklight), it might report that it cannot detect any output devices with backlight settings. This is despite a standard backlight directory tree in /sys/class/backlight/intel_backlight. Use xbacklight(1) (acpilight) instead for a compatible tool that works with this laptop.

See also