Framework Laptop - ArchWiki

Jump to content

# Framework Laptop

From ArchWiki

Hardware | PCI/USB ID | Working?
--- | --- | ---
GPU |  | See Table
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
Ambient light sensor |  | 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 | `8086:a0f0` | `8087:0026` | Yes | Yes | Base/Performance Editions
AX210 vPro | `8086:2725` | `8087:0032` | Yes | Works on Linux 5.12,5.14 | DIY Edition (Optional)
AX210 w/o vPro | `8086:2725` | `8087:0032` | Yes | Works on Linux 5.12 or 5.15.4+ | DIY Edition (Optional)

### i915

Device Name | PCI ID | Working?
--- | --- | ---
Tigerlake | `f111:0001` | Works on 5.14.x or 5.15.6+

### 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` | Yes |
Storage 250GB | `13fe:6500` | Yes |
Storage 1TB | `13fe:6500` | Yes |

### Headset jack

The Framework laptop includes a 3.5mm combination headphone/headset jack (TRRS). By default, when a device is plugged into the jack, it will be recognized only as headphones. To allow recognition of a headset (with microphone), add the following:

    /etc/modprobe.d/alsa-base.conf

    options snd-hda-intel model=dell-headset-multi

## 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?1 | Marked?2 | 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 | Yes | `Home`
`Fn+Right` | Yes | Yes | `End`
`Fn+Up` | Yes | Yes | `Prior/PgUp`
`Fn+Down` | Yes | Yes | `Next/PgDn`

1. The key is visible to `xev` and similar tools.
2. The physical key has a symbol on it, which describes its function.

## 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 AX210 Bluetooth controller does not appear to work as expected when using 5.13 or 5.14 (current as of 5.14.7), tested with `bluetoothctl list`. Here is the upstream bug report: https://bugzilla.kernel.org/show_bug.cgi?id=213829. AX210 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, or use a Bluetooth controller that is known to work, such as the AX201.

This issue is resolved with 5.15.4 [3].

### 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

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Duplicate of HiDPI (Discuss in Talk:Framework Laptop)

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

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Duplicate of backlight (Discuss in Talk:Framework Laptop)

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.

### Bootmanager flashing black screen and not loading operating system

If your Framework laptop loads the bootloader and can recognize the EFI partition on your flash drive or m.2. drive, but cannot load your boot manager (it only flashes a black screen before returning to the bootloader), you must disable Secure Boot.

1. Reboot holding `F2`
2. Go to the Security Tab
3. Secure boot defaults to ON; disable it
4. Save changes and restart

## Additional Hardware

### Docking Stations

The following docking station(s) work 100% out of the box with no additional configuration:

Name | Model Number | Interface | Power Delivery? | Notes
--- | --- | --- | --- | ---
Hyper Drive Power 9-in-1 USB-C Hub | `HD30F-GRAY` | USB-C | Yes | Needs to be reconnected if power is removed while connected.
Anker PowerExpand 13-in-1 USB-C Dock | `A8392` | USB-C | Yes |
ThinkPad Thunderbolt 3 Dock | `DBB9003L1` | USB-C | Yes |
Dell USB-C Dock | `WD19` | USB-C | Yes |
OWC Thunderbolt 3 Dock | `OWCTB3DK14PSG` | USB-C | Yes |

## See also

- Framework website
- Framework community thread for Arch Linux

Category:

- Framework

Hidden category:

- Pages or sections flagged with Template:Style