Jump to content

Framework Desktop

From ArchWiki
Hardware PCI/USB ID Working?
GPU 1002:1586 Yes
Audio 1022:15e3 Untested
Wi-Fi 14c3:0717 Yes
Bluetooth 0e8d:0717 Yes
NPU 1022:17f0 Yes
TPM Yes

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

Accessibility

The firmware is GUI-based. It supports keyboard navigation as well as mouse navigation. To access firmware settings, press F2 while the computer is starting. The firmware does not provide an audio cue to indicate that it has entered the settings menu. There are no accessibility-specific options or modes available.

Note Blind users may need to request the help of a sighted person to change firmware settings.

OCR assistive tools can read the text well, but struggle with presenting the UI's layout in a useful way for navigation.

The default text size is a little larger than average. The background color is black, and the selected menu option is highlighted with a strongly contrasting colored box, either bright orange or bright green depending on the menu.

Disabling Secure Boot

Installing Arch requires disabling Secure Boot. Here is a detailed, keyboard-only description of that procedure:

  1. Power on the system, or press Ctrl+Alt+Del to reset if it is already running.
  2. While the system is starting press F2 until the settings menu appears. It features a bright orange box in the top left quadrant of the display. If you cannot see the display at all, pressing F2 for 2 minutes should reliably get you to the settings menu.
  3. Press Down to select the Administer secure boot option. The orange rectangle will move to the lower left quadrant of the display.
  4. Press Enter to access secure boot settings.
  5. The Enforce Secure Boot setting is the second entry in the settings list. Press Down then Enter to select it.
  6. Press Down to select Enabled, or Up to select Disabled. The desired value will be selected regardless of the initial state.
  7. Press Enter to confirm your choice, or Escape to cancel without changing the setting.
  8. Press F10 then Enter to save changes and reboot.

Selecting a boot device

To boot from a USB stick:

  1. Power on the system, or press Ctrl+Alt+Del to reset if it is already running.
  2. While the system is starting press F2 until the settings menu appears. It features a bright orange box in the top left quadrant of the display. If you cannot see the display at all, pressing F2 for 2 minutes should reliably get you to the settings menu.
  3. Press Right to select the boot menu. The orange rectangle will move to the upper middle of the display.
  4. Press Enter to access the boot menu.
  5. Select the EFI USB Device (USB) menu entry. It should be near the bottom of the list, below the menu entries for any already installed OSes. Pres Enter to boot.

Installation

To avoid the EFI USB Device (USB_NAME) boot failed error, start by disabling Secure Boot as explained above.

Secure Boot settings are separate from other UEFI settings, and are only accessible from a full reboot. Do not go to system settings directly from the boot failure screen without rebooting, there will be no Secure Boot settings in there.

Follow the installation guide up to and including Prepare an installation medium.

Plug the installation media into any of the expansion ports, and press the power button. The first boot after assembly can take up to 30 seconds to perform memory training.

Continue with Installation guide#Set the console keyboard layout and font, then read through the rest of this article to setup Framework specific hardware.

After installation, consider re-enabling Secure Boot instead of leaving it disabled.

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 may not be fully functional. You will see firmware loading issues in the journal.

Firmware

fwupd supports updating the UEFI BIOS out of the box. Early access to new updates is available by enabling the LVFS testing remote.

Wi-Fi

You will be limited to 802.11n (Wi-Fi 4) and 2.4GHz bands (the "world" regulatory domain) if you do not configure the regulatory domain for your country.

Unified memory

The Framework Desktop's CPU and GPU share the same memory pool. The UEFI allows you to set the minimum amount of memory reserved for the GPU. The amdgpu driver can dynamically allocate more than the minimum, up to the maximum configured in the ttm kernel module.

By default, the guaranteed minimum GPU RAM is 512MiB, and the maximum limit is 64GiB.

To change the minimum video memory reservation:

  1. Reboot and hit F2 until the BIOS settings appear.
  2. Enter the settings menu
  3. Go into the Advanced > iGPU Memory Configuration submenu
  4. Select the Custom setting, and enter the amount of reserved video memory you want, from 512MiB up to 3/4 of the total RAM in your system.
  5. Save the changes and reboot

To change the maximum limit, change the module parameters of the ttm kernel module. A straightforward way to make a persistent change is with:

/etc/modprobe.d/gpumem.conf
options ttm pages_limit=pages page_pool_size=pages

The values are a number of 4KiB memory pages. To convert, multiply a value in GiB by 262144. Some common values you might want:

GPU memory limit pages_limit/page_pool_size
16GiB 4194304
32GiB 8388608
64GiB 16777216
96GiB 25165824
112GiB 29360128

You can set the limit as high as you want, but make sure the rest of your system would be able to run if the GPU tries to allocate the maximum. For a 128GiB system, Framework recommends an upper limit of 112GiB, which guarantees that the rest of the system will always have at least 16GiB.

CPU frequency scaling

By default, the Framework Desktop uses the amd_pstate scaling governor in the powersave profile. This optimizes for low power consumption at the expense of performance.

For a desktop, you probably want to switch to the performance profile, as there is no battery to conserve and the SoC is still quite power efficient even in the high performance profile.

See CPU frequency scaling for options to manage the scaling governor configuration.

See also