Framework Laptop 13

From ArchWiki

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

Reason:
  • The page has been renamed to reflect the introduction of the 16" model, but the page content would probably gain from being updated with that wording too.
  • The multiple tables from #Hardware look like they can be squashed into the generic table since everything is listed as working. #Expansion Cards should be left as-is given the fact that more modules can be added over time.
(Discuss in Talk:Framework Laptop 13)
Hardware PCI/USB ID Working?
GPU Yes
Wireless Yes
Audio (Intel) 8086:a0c8 Yes
Audio (AMD) 1002:1640 Yes
Touchpad 093a:0274 Yes
Webcam 0bda:5634 Yes
Fingerprint reader 27c6:609c Yes
Bluetooth Yes
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 components.

Note: Ensure you have linux-firmware installed, as pointed out by Installation guide#Install essential packages before reporting hardware issues on the Arch bug tracker or Framework Community boards. It is an optional dependency of linux and does not automatically get installed as part of base. Without it, much of the hardware will be detected but will not be fully functional. You will see firmware loading issues in the journal.

WiFi/Bluetooth

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 Yes DIY Edition (Optional)
AX210 w/o vPro 8086:2725 8087:0032 Yes Yes DIY Edition (Optional)
AX411 vPro 8086:51f0 8087:0033 Yes Yes Not sold by Framework, but works
RZ616 / MediaTek MT7922 14c3:0616 0e8d:e616 Yes Yes AMD edition

WiFi performance on AMD edition

You will be limited to 802.11n (WiFi 4) and 2.4GHz bands if you do not configure the regulatory domain.

There have been reports of WiFi stability and throughput improvements when using iwd, either directly or as the NetworkManager backend.

Graphics

Intel / i915

Device Name PCI ID Working?
TigerLake-LP GT2 [Iris Xe Graphics] 8086:9a49 Yes
Alder Lake-P Integrated Graphics Controller 8086:46a6 Yes

AMD / amdgpu

Device Name PCI ID Working? Notes
Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 1002:15bf Yes Needs BIOS 3.03 or newer

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
Ethernet 0bda:8156 Yes

Headset jack

On Intel motherboards, when powersave activates and deactivates on the sound card, there is a small noisy popping sound.

You can deactivate powersave for the sound card entirely by passing power_save=0 as a module option to snd_hda_intel. How to set module options is explained in Kernel module#Setting module options

If you are using TLP, you can instead set the SOUND_POWER_SAVE_ variables in /etc/tlp.conf.

Speakers

By default, the speakers do not sound very balanced (due to downward firing speakers), so you may want to use an equalizer to fix this. One way is to install EasyEffects and use one of the presets in this github repo, such as philonmetal.json.

Display

The Framework Laptop 13 has a TFT-LCD display [1], manufactured by BOE, that is uncalibrated from factory, giving a suboptimal default sRGB coverage. It is thus recommended to apply an ICC profile to have better color reproduction. [2]

HDMI Audio Output

On Intel 11thGen there is a problem where an HDMI TV or HDMI VideoProjector is recognized as an Audio Output Device but no sound is heard when playing music. The HDMI TV output sound correctly using a fresh installed Windows operating system. For correcting this issue you have to first install sof-firmware package, then you have to add a modprobe options or a boot argument in grub to make the dsp_driver use the SOF version whereas the legacy one.

vi /etc/modprobe.d/hdmiaudiofix.conf 
options snd_intel_dspcfg dsp_driver=3

Firmware

BIOS Updates

Updates are generally available as UEFI Shell updates from Framework directly. LVFS support is in testing.

Generation Stable Beta LVFS Notes
Intel 11th Gen 3.19 3.17 There will be no LVFS release for 3.19 because it has an Intel CSME update. An UEFI Shell update method is still not available for Linux.
Intel 12th Gen 3.04 3.08 Later batches come with 3.05 "to resolve an in-factory specific issue"[3].
Warning: After updating your BIOS to version 3.06 or 3.08, you cannot downgrade to version 3.04 or 3.05 as it will result in the left side ports to stop functioning properly.
Intel 13th Gen 3.03 Some units have shipped with 3.04 but is not yet listed on the Framework BIOS pages
AMD Ryzen 7040 3.03 3.03 If you have a batch 1 or 2 device, make sure you upgrade for a functioning GPU and fixes for other issues. Should come preinstalled on batch 3 and later.

The BIOS can be updated by EFI shell script placed on a bootable USB flash drive. This firmware update method clears EFI bootloaders registered in NVRAM, so having a recovery disk or alternate method of reinstalling your bootloader(s) handy is recommended. If your bootloader installs itself as the EFI fallback at esp/EFI/BOOT/BOOTX64.EFI (systemd-boot will by default, GRUB will with GRUB#Default/fallback boot path), no recovery disk is necessary, but your bootloader may need to be reinstalled to restore its NVRAM entry.

To check which bios is currently installed without rebooting into the bios itself is possible with:

# dmidecode -s bios-version

LVFS

Support for fwupd is in testing [4], and can be enabled by running:

$ fwupdmgr enable-remote lvfs-testing
Note: 11th Gen Intel Mainboards with BIOS versions previous to 3.17 do not have capsule update support. To upgrade to newer versions with the support, add the following fwupd configuration changes, update to 3.17 or higher, and then revert the change after the BIOS is updated:
/etc/fwupd/fwupd.conf
[uefi_capsule]
DisableCapsuleUpdateOnDisk=true

Fingerprint Reader

Framework has published a guide for Intel 13th Gen and AMD to upgrade the firmware to a known working version.

Secure Boot

This article or section needs expansion.

Reason: Add links to official sources or forum posts for each model that can be enrolled with custom keys. (Discuss in Talk:Framework Laptop 13#Custom Secure Boot keys)

One can enroll custom keys into the Framework Laptop without any Option ROM concerns, or use the SHIM approach. See Secure Boot for details.

Suspend

On Intel boards, adding the kernel parameter acpi_osi="!Windows 2020" fixes a regression in s2idle, making the keyboard backlight and power button correctly turn off when suspending, as well as decreasing battery drain in suspend to about 1%/hour[5].

If your system fails to wake up from suspend due to the SSD disconnecting, you can try putting nvme.noacpi=1 in your kernel parameters. This may also improve battery life in suspend, if your SSD has a bad ACPI implementation. This should only be used on Intel boards, as on AMD it will cause the issue, instead of fixing it.

Warning: Some NVMe drives do not successfully wake from the deep sleep state described below, disconnecting from the laptop and becoming inaccessible until a reboot, which typically causes the laptop to lock up. One example is the Sabrent Rocket NVMe 4.0[6][7]. Before enabling this sleep state in a production installation, you may wish to test the suspend functionality of your NVMe drive from the Arch installer environment so as not to cause corruption.

See Power management/Suspend and hibernate#Changing suspend method if you want to use S3 sleep instead of s2idle.

Fn key after suspend

Some users on 11th-generation Intel boards report that after resuming from suspend, the Fn key and/or media keys no longer work. The workaround is to blacklist the cros_ec_lpcs module:

/etc/modprobe.d/crocs_ec_lpcs.conf
blacklist cros_ec_lpcs

Suspend-then-hibernate on AMD version

For AMD versions, systemd's suspend-then-hibernate will wake up after exactly 5 minutes (regular suspend works). Until the kernel patch [8] is merged, add the kernel parameter rtc_cmos.use_acpi_alarm=1 to use the proper wakeup mechanism.

Touchpad

There are reports of the touchpad exhibiting issues (e.g. pointer does not move, two-finger scroll does not work, etc.) after waking from sleep. Disabling PS/2 mouse emulation under Advanced in the BIOS seems to resolve the issues[9].

Interact with system

You can interact with your system using framework-system-gitAUR.

Note: On AMD boards, /dev/cros_ec won't be available for framework_tool to use without the following unmerged patchset (as of 6.6.4). If secure boot is not enabled, the tool can bypass the kernel and talk directly to the EC with the --driver portio option. With secure boot, the only way to use it will be by patching the kernel or waiting until those patches are merged (see this issue for details).

On 11th and 12th Gen Intel boards, you can also interact with the embedded controller using fw-ectool-gitAUR.

Warning: The Embedded Controller on your Framework Laptop handles low level functions, including power sequencing the system. Modifying the EC code can cause your system to not power on or boot or cause damage to the mainboard, battery, or other parts of the system or devices attached to the system. Hardware damage caused by EC firmware modifications would not be covered under the Framework Limited Warranty.

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+p
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.

Ambient light sensor

Should work out of the box with iio-sensor-proxy. On GNOME it is enough to install the package and restart the session (or reboot, just in case). Then run monitor-sensor to check if it is working.

Fan speed control

You can force the fan speed to any value between 0 and 100 using this tool: https://gitlab.howett.net/DHowett/ectool

$ ectool --interface=lpc fanduty 1OO

to return to automatic mode use this command:

$ ectool --interface=lpc autofanctrl

In the meantime: https://lore.kernel.org/chrome-platform/20231005160701.19987-1-dustin@howett.net/ for direct support of the EC chromium driver.

Troubleshooting

Stuttering, flickering and periodic freeze

There are reports of stuttering, flickering and periodic freezes on the laptop. Disabling Panel Self-Refresh (as explained in Intel graphics#Screen flickering) has been reported to work. However it is helpful for battery life, so it should be left on if there are no issues.

This can also happen if you have installed xf86-video-intel instead of using modesetting, see the note at Intel graphics#Installation.

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).

HiDPI settings

Using 1,5 scaling factor is suggested. For more details, see HiDPI.

Lowering fan noise

This applies to the Intel version only. AMD users should use power-profiles-daemon.

The handling of fans can be significantly improved by using the thermald service. Install the package and then you can Start and Enable the service via the thermald.service unit file.

Changing the brightness of the monitor does not work

See Backlight#xbacklight returns : No outputs have backlight property.

For Alder Lake CPUs a solution for using the backlight keys instead of the light sensor is to deactivate the ambient light sensor.

/etc/modprobe.d/framework-als-deactivate.conf
blacklist hid_sensor_hub

Reboot is required, the light sensor module will be deactivated and the backlight keys work.

Bootmanager flashing black screen and not loading operating system

If your Framework laptop loads the bootloader and can recognize the EFI system 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. There is a bug in some versions of the BIOS that prevents the F2 key on the builtin laptop keyboard from being recognized during reboot or power up. The workaround is to connect an external USB keyboard to the laptop an hold the F2 key on the external keyboard while rebooting or powering up the laptop. After the laptop has entered the BIOS settings the builtin keyboard can be used and the external one can be disconnected.
  2. Go to the Security Tab
  3. Secure boot defaults to ON; disable it
  4. Save changes and restart

Intel Wi-Fi 6E AX210 reset/ low throughput / "Microcode SW error"

Under high stress, Wi-Fi device restarts and network speeds become abysmally slow or non-responsive until disconnecting and reconnecting to WiFi network.[10]

This issue has been observed by owners of other manufacturers' laptops (not just framework). [11]

Disabling IEEE 802.11ax seems to be a suitable workaround for the time being. [12]

/etc/modprobe.d/iwlwifi.conf
options iwlwifi disable_11ax=Y

Intel is aware[13] of the issue and there is a patch[14] that fix slow tx after restart, and another[15] that address the SW error.

Fingerprint reader device disconnected error

When the fingerprint reader has been used to enroll a fingerprint on Windows, and you later attempt to use the reader under Linux without first unenrolling your print from within Windows, fprintd can fail to work. In this situation, upon enrolling with fprintd-enroll, the command will hang, as fprintd has crashed.

The best way to deal with this, if you still have access to Windows, is to boot back in and unenroll your fingerprint from there. If this is not possible, you can try a script posted by someone on the Framework laptop forums.

Low framerate or stuttering webcam

This issue can occur if the program displaying the webcam feed is using the YUYV 4:2:2 color format. Most GUI camera applications do not allow for configuring this. Some applications that will let you configure this include guvcview and obs-studio, and they also appear to work with the default configuration.

You can also open the webcam using vlc with:

$ vlc v4l2:///dev/video1 --v4l2-chroma MJPG

or mpv with:

$ mpv --cache=no --demuxer-lavf-format=video4linux2 --demuxer-lavf-o=video_size=1920x1080,input_format=mjpeg av://v4l2:/dev/video0

12th gen Turbo-Boost on battery with tlp

This article or section is a candidate for merging with TLP.

Notes: This is not specific to this hardware and should thus be on the page for the specific tool. (Discuss in Talk:Framework Laptop 13)

By default the 12th gen will not Turbo-Boost on battery if tlp is installed. This can configured in tlp's configuration.

/etc/tlp.conf
CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
CPU_ENERGY_PERF_POLICY_ON_BAT=balance_performance

12th & 13th gen brightness and airplane mode keys

On the 12th and 13th gen motherboards there is a bug[dead link 2023-10-29 ⓘ] where ALS and the brightness up/down including the airplane mode keys conflict. In order to make the brightness and airplane mode keys work in the detriment of using the ambient light sensor, blacklist the hid_sensor_hub module.

Ethernet not working with tlp

By default tlp will power limit the framework ethernet adapter. This can be changed in tlp's configuration where 0bda:8156 is the ID of the framework ethernet adapter.

/etc/tlp.conf
USB_DENYLIST="0bda:8156"

(AMD) TLP is not advised for power management. PPD is recommended

Framework Laptop 13 AMD Ryzen 7040 Series configurations are advised to use power-profiles-daemon (PPD) instead of TLP, which is actively discouraged for this processor. For further discussion see this Framework community thread.

(AMD) Flickering, artifacts and a white screen when a second monitor is connected

When a second monitor is connected (possibly only with higher resolutions or refresh rates, and possibly only in Wayland), an issue can be triggered where graphical artifacts or a white image will appear, sometimes showing the original content in a flicker as screen content changes. This can be resolved by adding amdgpu.sg_display=0 as a kernel parameter.

(AMD) Graphical corruption when playing videos that use the VP9 codec with vaapi hardware acceleration

A fix to the firmware is currently in the pipeline here, but until that ships this can be resolved by adding amd_iommu=off as a kernel parameter.

(AMD) GPU Lockup during graphical load (system still accessible through ssh)

A number of measures seemed to reduce the chances of this happening, and complete system stability was achieved by combining them. It's possible some or all of these won't be necessary as the kernel and firmware are updated.

  • Replacing the linux-firmware package with linux-firmware-gitAUR
  • In the BIOS, set the iGPU Configuration to UMA_GAME_OPTIMIZED
  • Setting /sys/class/drm/card0/device/power_dpm_force_performance_level to high or low instead of auto (in tlp this can be achieved with RADEON_DPM_PERF_LEVEL_ON_AC=high and RADEON_DPM_PERF_LEVEL_ON_BAT=low)

Since the use of TLP with an AMD CPU is not advised, setting the performance level depending on the presence of a power supply can be archived with a simple udev rule and a small script:

 /etc/udev/rules.d/60-power-dpm-force-performance-level.rules 
SUBSYSTEM=="power_supply" RUN+="/usr/local/bin/set_dpm_perf_level.sh %E{POWER_SUPPLY_ONLINE}"
 /usr/local/bin/set_dpm_perf_level.sh 
#!/bin/bash

#default level
DRM_PERF_LEVEL=low
#evaluate argument passed by udev 
if [ $1 -eq 1 ] ; then
    DRM_PERF_LEVEL=high
else
    DRM_PERF_LEVEL=low
fi

#set drm performance level
echo $DRM_PERF_LEVEL > /sys/class/drm/card1/device/power_dpm_force_performance_level

(AMD) Flickering graphical corruption on a single monitor

Providing additional memory to the iGPU appears to fix this problem, as advised by Framework Support in this Community thread. Follow this guide from Framework to enable allocating more iGPU RAM from the BIOS.

(AMD) Unable to reconnect to wifi after hibernation with kernel 6.7

A bug was introduced in kernel version 6.7 that causes the Wifi connection to not be recoverable after hibernation. A fix has already been proposed and should make it to version 6.8. Aside from patching the kernel or using the lts version one workaround is to use modprobe to remove and re-add the mt7921e module as described in this community thread.

Additional Hardware

Docking Stations

Check the USB-C/Thunderbolt Dock Megathread on the Framework community boards for up to date information on functioning docks.

Note: On AMD systems, only the top left and top right ports (the rear ports) have Thunderbolt 3 support, in addition to being USB 4. Make sure to plug a USB-C module in one of those two ports and connect the dock there.

External GPU

Name Model Number Interface Power Delivery? eGPU? Notes
AKITO Node Pro Thunderbolt 3 T3NP USB-C Yes No Errors with PCIe bus expansion for eGPU, 3.16.5 kernel, 3.07 firmware
Sonnet eGPU 550 USB-C Yes Yes Tested in kernel 5.15 and above
Razer Core USB-C Yes Yes Tested in kernel 5.15 and above
Mantiz MZ-03 Saturn Pro eGPU V2 MZ-03-EU-SG USB-C Yes Yes EU-edition, Potentially needs intel_iommu=on,Tested in kernel 5.15 and above 3.06 Firmware 3.10 and 12th gen framework

See also