https://wiki.archlinux.org/api.php?action=feedcontributions&user=SparkX120&feedformat=atomArchWiki - User contributions [en]2024-03-29T11:18:56ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Framework_Laptop_13&diff=749977Framework Laptop 132022-09-30T21:58:58Z<p>SparkX120: Added information about the Ethernet expansion card, it was not included yet.</p>
<hr />
<div>[[Category:Framework]]<br />
[[ja:Framework Laptop]]<br />
{| class="wikitable" style="float: right;"<br />
|-<br />
! Hardware !! PCI/USB ID !! Working?<br />
|-<br />
| GPU || || {{Y|See Table}}<br />
|-<br />
| Wireless || || {{Y|See Table}}<br />
|-<br />
| Audio || {{ic|8086:a0c8}} || {{Yes}}<br />
|-<br />
| Touchpad || {{ic|093a:0274}}|| {{Yes}}<br />
|-<br />
| Webcam || {{ic|0bda:5634}} || {{Yes}}<br />
|-<br />
| Fingerprint reader || {{ic|27c6:609c}} || {{Yes}}<br />
|-<br />
| Bluetooth || || {{Y|See Table}}<br />
|-<br />
| Accelerometer || || {{Y|Untested}}<br />
|-<br />
| TPM || || {{Yes}}<br />
|-<br />
| Ambient light sensor || || {{Yes}}<br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Framework Laptop.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
<br />
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.<br />
<br />
=== Motherboards ===<br />
<br />
{{Note|Probably needs a better way to distinguish between motherboard revisions and CPU model used.}}<br />
<br />
{| class="wikitable"<br />
|-<br />
! CPU Model !! Working? !! Notes<br />
|-<br />
| Intel i5-1135G7 || {{Yes}} ||<br />
|-<br />
| Intel i7-1165G7 || {{Yes}} || <br />
|-<br />
| Intel i7-1185G7 || {{Yes}} ||<br />
|-<br />
| Intel i5-1240P || {{Yes}}||<br />
|-<br />
| Intel i7-1260P || {{Yes}} ||<br />
|-<br />
| Intel i7-1280P || {{Yes}} ||<br />
|}<br />
<br />
=== WiFi/Bluetooth ===<br />
<br />
{| class="wikitable"<br />
|-<br />
! Device Name !! PCI ID !! Bluetooth USB ID !! Working? !! Bluetooth? || Notes<br />
|-<br />
| AX200 || {{ic|8086:2723}} || {{ic|8087:0029}} || {{Yes}} || {{Yes}} || Pre-production units<br />
|-<br />
| AX201 vPro || || || {{Y|Untested}} || {{Y|Untested}} || Professional Edition<br />
|-<br />
| AX201 w/o vPro || {{ic|8086:a0f0}} || {{ic|8087:0026}} || {{Yes}} || {{Yes}} || Base/Performance Editions<br />
|-<br />
| AX210 vPro || {{ic|8086:2725}} ||{{ic|8087:0032}} || {{Yes}} || {{Yes}} || DIY Edition (Optional)<br />
|-<br />
| AX210 w/o vPro || {{ic|8086:2725}} || {{ic|8087:0032}} || {{Yes}} || {{Yes}} || DIY Edition (Optional)<br />
|}<br />
<br />
=== i915 ===<br />
<br />
{| class="wikitable"<br />
|-<br />
! Device Name !! PCI ID !! Working?<br />
|-<br />
| TigerLake-LP GT2 [Iris Xe Graphics] || {{ic|8086:9a49}} || {{Yes}}<br />
|-<br />
| Alder Lake-P Integrated Graphics Controller || {{ic|8086:46a6}} || {{Yes}}<br />
|}<br />
<br />
=== Expansion Cards ===<br />
<br />
{| class="wikitable"<br />
|-<br />
! Card Name !! PCI/USB ID !! Working? !! Notes<br />
|-<br />
| USB-C || {{Y|N/A}} || {{Yes}} || <br />
|-<br />
| USB-A || {{Y|N/A}} || {{Yes}} || <br />
|-<br />
| MicroSD || {{ic|090c:3350}} || {{Yes}} || <br />
|-<br />
| HDMI || {{ic|32ac:0002}} || {{Yes}} ||<br />
|-<br />
| DisplayPort || {{ic|32ac:0003}} || {{Yes}} ||<br />
|-<br />
| Storage 250GB || {{ic|13fe:6500}} || {{Yes}} ||<br />
|-<br />
| Storage 1TB || {{ic|13fe:6500}} || {{Yes}} || <br />
|-<br />
| Ethernet || {{ic|0bda:8156}} || {{Yes}} || <br />
|}<br />
<br />
=== Headset jack ===<br />
<br />
The Framework laptop includes a 3.5mm combination headphone/headset jack (TRRS). In kernel versions before 5.18.1 [https://community.frame.work/t/request-kernel-patch-for-the-dell-headset-multi-workaround/18222/15], devices plugged into the jack will only be recognized as headphones. To allow recognition of a headset (with microphone), use {{ic|dell-headset-multi}} as the value for the {{ic|1=model=}}, as explained in [[Advanced Linux Sound Architecture#Correctly detect microphone plugged in a 4-pin 3.5mm (TRRS) jack]].<br />
<br />
== Firmware ==<br />
<br />
=== BIOS Updates ===<br />
<br />
The current Framework laptop BIOS version is 3.10 for 11th Gen Intel Mainboards [https://community.frame.work/t/bios-3-10-beta-release/20464]. As of writing Framework laptops with 12th Gen Intel Mainboards are currently stuck on BIOS version 3.04[https://knowledgebase.frame.work/framework-laptop-bios-and-driver-releases-12th-gen-intel-core-Bkx2kosqq]. The BIOS can be updated by EFI shell script placed on a bootable USB flash drive. However, 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 {{ic|''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.<br />
<br />
==== LVFS ====<br />
<br />
Support for [[fwupd]] is in testing [https://community.frame.work/t/bios-3-09-beta-release/20085#lvfs-update-6], and can be enabled by running:<br />
<br />
$ fwupdmgr enable-remote lvfs-testing<br />
<br />
And by uncommenting:<br />
<br />
{{hc|/etc/fwupd/uefi_capsule.conf|2=<br />
DisableCapsuleUpdateOnDisk=true<br />
}}<br />
<br />
=== Secure Boot ===<br />
<br />
One can enroll custom keys into the Framework Laptop without any Option ROM concerns, or use the SHIM approach. See [[Secure Boot]] for details.<br />
<br />
=== Suspend ===<br />
<br />
{{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[https://community.frame.work/t/linux-deep-sleep/2491/48][https://community.frame.work/t/ubuntu-21-04-on-the-framework-laptop/2722/30]. 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.}}<br />
<br />
{{Merge|Power management/Suspend and hibernate|The issue is not unique to this particular hardware. It is better to document in one place.}}<br />
<br />
The inefficient s2idle (Suspend-To-Idle) suspend variant is pre-selected as default. This state is a generic, pure software, system sleep state. You can select the much more efficient deep (Suspend-To-RAM) variant, which offers significant power savings as everything in the system is put into a low-power state, except for memory, which is placed into the self-refresh mode to retain its contents. Note that the deep variant results in longer resume times.<br />
<br />
$ cat /sys/power/mem_sleep <br />
[s2idle] deep<br />
# echo deep > /sys/power/mem_sleep<br />
$ cat /sys/power/mem_sleep <br />
s2idle [deep]<br />
<br />
To make this permanent, add {{ic|1=mem_sleep_default=deep}} to your [[kernel parameters]].<br />
<br />
There is also one optional workaround needed to get the best suspend battery life, which is setting {{ic|1=nvme.noacpi=1}} in your [[kernel parameters]].<br />
<br />
=== Touchpad ===<br />
<br />
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[https://community.frame.work/t/sleep-and-touchpad-not-responding/4928/16].<br />
<br />
== Function keys ==<br />
<br />
{| class="wikitable"<br />
! Key !! Visible?<sup>1</sup> !! Marked?<sup>2</sup> !! Effect<br />
|-<br />
| {{ic|Fn+Esc}} || {{Yes}} || {{Yes}} || Toggles Fn lock<br />
|-<br />
| {{ic|F1}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioMute}}<br />
|-<br />
| {{ic|F2}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioLowerVolume}}<br />
|-<br />
| {{ic|F3}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioRaiseVolume}}<br />
|-<br />
| {{ic|F4}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioPrev}}<br />
|-<br />
| {{ic|F5}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioPlay}}<br />
|-<br />
| {{ic|F6}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioNext}}<br />
|-<br />
| {{ic|F7}} || {{Yes}} || {{Yes}} || {{ic|XF86MonBrightnessDown}}<br />
|-<br />
| {{ic|F8}} || {{Yes}} || {{Yes}} || {{ic|XF86MonBrightnessUp}}<br />
|-<br />
| {{ic|F9}} || {{Yes}} || {{Yes}} || {{ic|Super_L+p}}<br />
|-<br />
| {{ic|F10}} || {{Yes}} || {{Yes}} || {{ic|XF86RFKill}}, soft blocks wlan and bluetooth<br />
|-<br />
| {{ic|F11}} || {{Yes}} || {{Yes}} || {{ic|Print}}<br />
|-<br />
| {{ic|F12}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioMedia}}<br />
|-<br />
| {{ic|Fn+Delete}} || {{Yes}} || {{Yes}} || {{ic|Insert}}<br />
|-<br />
| {{ic|Fn+Space}} || {{Yes}} || {{Yes}} || Controls the keyboard backlight<br />
|-<br />
| {{ic|Fn+b}} || {{No}} || {{No}} || {{ic|Control_L+Break}}<br />
|-<br />
| {{ic|Fn+k}} || {{No}} || {{No}} || {{ic|Scroll_Lock}}<br />
|-<br />
| {{ic|Fn+p}} || {{No}} || {{No}} || {{ic|Pause}}<br />
|-<br />
| {{ic|Fn+Left}} || {{Yes}} || {{Yes}} || {{ic|Home}}<br />
|-<br />
| {{ic|Fn+Right}} || {{Yes}} || {{Yes}} || {{ic|End}}<br />
|-<br />
| {{ic|Fn+Up}} || {{Yes}} || {{Yes}} || {{ic|Prior/PgUp}}<br />
|-<br />
| {{ic|Fn+Down}} || {{Yes}} || {{Yes}} || {{ic|Next/PgDn}}<br />
|}<br />
<br />
# The key is visible to {{ic|xev}} and similar tools.<br />
# The physical key has a symbol on it, which describes its function.<br />
<br />
== Ambient light sensor ==<br />
<br />
Should work out of the box with {{Pkg|iio-sensor-proxy}}. On [[GNOME]] it is enough to install the package and restart the session (or reboot, just in case). Then run {{ic|monitor-sensor}} to check if it is working.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Stuttering, flickering and periodic freeze ===<br />
<br />
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 [https://community.frame.work/t/periodic-stuttering-on-fresh-gnome-40-wayland-install-on-arch-linux/3912/6 reported to work]. However it is helpful for battery life, so it should be left on if there are no issues.<br />
<br />
=== Two/three finger clicks ===<br />
<br />
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:<br />
<br />
$ xinput<br />
<br />
And then set the click method, where {{ic|''device''}} is the name (or ID) found in the previous step:<br />
<br />
$ xinput set-prop "''device''" "libinput Click Method Enabled" 0 1<br />
<br />
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]]).<br />
<br />
=== HiDPI settings ===<br />
<br />
Using 1,5 scaling factor is suggested. For more details, see [[HiDPI]].<br />
<br />
=== Changing the brightness of the monitor does not work ===<br />
<br />
See [[Backlight#xbacklight returns : No outputs have backlight property]].<br />
<br />
=== Bootmanager flashing black screen and not loading operating system ===<br />
<br />
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]].<br />
<br />
# Reboot holding {{ic|F2}}. There is a bug in some versions of the BIOS that prevents the {{ic|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 {{ic|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.<br />
# Go to the Security Tab<br />
# Secure boot defaults to ON; disable it<br />
# Save changes and restart<br />
<br />
=== Intel Wi-Fi 6E AX210 reset/ low throughput / "Microcode SW error" ===<br />
<br />
Under high stress, Wi-Fi device restarts and network speeds become abysmally slow or non-responsive until disconnecting and reconnecting to WiFi network.[https://bugzilla.kernel.org/show_bug.cgi?id=214693#c0]<br />
<br />
This issue has been observed by owners of other manufacturers' laptops (not just framework). [https://community.intel.com/t5/Wireless/Intel-AX210-Firmware-Reset-under-Load/m-p/1339292/highlight/true#M39083]<br />
<br />
Disabling IEEE 802.11ax seems to be a suitable workaround for the time being. [https://community.frame.work/t/using-the-ax210-with-linux-on-the-framework-laptop/1844/92]<br />
<br />
{{hc|/etc/modprobe.d/iwlwifi.conf|2=<br />
options iwlwifi disable_11ax=Y<br />
}}<br />
<br />
Intel is aware[https://bugzilla.kernel.org/show_bug.cgi?id=214693#c4] of the issue and there is a patch[https://bugzilla.kernel.org/attachment.cgi?id=299667&action=diff] that fix slow tx after restart, and another[https://bugzilla.kernel.org/attachment.cgi?id=299841&action=diff] that address the SW error.<br />
<br />
=== Fingerprint reader device disconnected error ===<br />
<br />
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, {{ic|fprintd}} can fail to work. In this situation, upon [[Fprint#Create fingerprint signature|enrolling with fprintd-enroll]], the command will hang, as {{ic|fprintd}} has crashed.<br />
<br />
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 [https://community.frame.work/t/fingerprint-scanner-compatibility-with-linux-ubuntu-fedora-etc/1501/214 a script] posted by someone on the Framework laptop forums.<br />
<br />
=== Low framerate or stuttering webcam ===<br />
<br />
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 {{Pkg|guvcview}} and {{Pkg|obs-studio}}, and they also appear to work with the default configuration. You can also open the webcam using {{Pkg|vlc}} with: <br />
<br />
$ vlc v4l2:///dev/video1 --v4l2-chroma MJPG<br />
<br />
== Additional Hardware ==<br />
<br />
=== Docking Stations ===<br />
<br />
The following docking station(s) work out of the box with no additional configuration:<br />
<br />
{| class="wikitable"<br />
|-<br />
! Name !! Model Number !! Interface !! Power Delivery? || Notes<br />
|-<br />
| Hyper Drive Power 9-in-1 USB-C Hub || {{ic|HD30F-GRAY}} || USB-C || {{Yes}} || Needs to be reconnected if power is removed while connected.<br />
|-<br />
| Anker PowerExpand 13-in-1 USB-C Dock || {{ic|A8392}} || USB-C || {{Yes}} || <br />
|-<br />
| Anker 777 Thunderbolt Docking Station || {{ic|A8397}} || USB-C || {{Yes}} || Instantaneous wakeups from suspend when connected to the dock if using {{ic|s2idle}} for sleep; PCI/USB devices are not detected after resume from sleep when using {{ic|deep}} for sleep.<br />
|-<br />
| ThinkPad Thunderbolt 3 Dock || {{ic|DBB9003L1}} || USB-C || {{Yes}} || Dock Power button does not work properly to boot the laptop<br />
|-<br />
| Dell USB-C Dock || {{ic|WD19}} || USB-C || {{Yes}} || <br />
|-<br />
| OWC Thunderbolt 3 Dock || {{ic|OWCTB3DK14PSG}} || USB-C || {{Yes}} ||<br />
|-<br />
| uni 8-in-1 USB-C Hub || {{ic|8IN101}} || USB-C || {{Yes}} || Short removable cable can be replaced; the Spigen USB 4 cable works.<br />
|-<br />
| CalDigit TS3 Plus Thunderbolt 3 Dock || {{ic|TS3 Plus}} || USB-C || {{Yes}} || <br />
|-<br />
| StarTech.com USB-C Travel Docking Station || {{ic|DKT30CHPD}} || USB-C || {{Yes}} || <br />
|-<br />
|}<br />
<br />
=== External GPU ===<br />
<br />
{| class="wikitable"<br />
|-<br />
! Name !! Model Number !! Interface !! Power Delivery? || eGPU? || Notes<br />
|-<br />
| AKITO Node Pro Thunderbolt 3 || {{ic|T3NP}} || USB-C || {{Yes}} || {{No}} || Errors with PCIe bus expansion for eGPU, 3.16.5 kernel, 3.07 firmware<br />
|-<br />
| Sonnet || eGPU 550 || USB-C || {{Yes}} || {{Yes}} || Tested in kernel 5.15 and above<br />
|-<br />
| Razer || Core || USB-C || {{Yes}} || {{Yes}} || Tested in kernel 5.15 and above<br />
|}<br />
<br />
== See also ==<br />
<br />
* [https://frame.work/ Framework website]<br />
* [https://community.frame.work/t/arch-linux-on-the-framework-laptop/3843/1 Framework community thread for Arch Linux]<br />
* [https://community.frame.work/t/linux-battery-life-tuning/6665 Framework community thread for battery life tuning]</div>SparkX120