Jump to content

Talk:Framework Laptop 16

From ArchWiki
Latest comment: 10 February by Acuadragon100 in topic Random Freezes

Prevent waking up in backpack

> "You can disable keyboard and numpad module from waking your device using udev rules."


But wouldn't it also disable waking up when the laptop is open? If so, is there any way to adjust the rules to something like "disable-only-if-lid-is-closed"? I have no idea how this lid sensor works.

Also, the example rule would only work for a "Laptop 16 Keyboard Module - ANSI", but there are some more input modules available for this laptop, so it's worth mentioning it or just listing the rules for everything there: see https://usb-ids.gowdy.us/read/UD/32ac and https://github.com/FrameworkComputer/qmk_firmware/tree/framework16-keyboards/keyboards/framework Ratijas (talk) 09:58, 27 November 2024 (UTC)Reply

So far, I got this:
$ journalctl -ef
:...
:Nov 27 16:18:04 facility (udev-worker)[156337]: 1-4.2:1.0: /etc/udev/rules.d/90-disable-keyboard-wake.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:c5:00.3/usb1/1-4/1-4.2/1-4.2:1.0/power/wakeup}="disabled", ignoring: No such file or directory
:Nov 27 16:18:04 facility (udev-worker)[156331]: 1-4.2:1.1: /etc/udev/rules.d/90-disable-keyboard-wake.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:c5:00.3/usb1/1-4/1-4.2/1-4.2:1.1/power/wakeup}="disabled", ignoring: No such file or directory
:Nov 27 16:18:04 facility (udev-worker)[156293]: 1-4.2:1.3: /etc/udev/rules.d/90-disable-keyboard-wake.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:c5:00.3/usb1/1-4/1-4.2/1-4.2:1.3/power/wakeup}="disabled", ignoring: No such file or directory
:Nov 27 16:18:04 facility (udev-worker)[156350]: 1-4.2:1.2: /etc/udev/rules.d/90-disable-keyboard-wake.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:c5:00.3/usb1/1-4/1-4.2/1-4.2:1.2/power/wakeup}="disabled", ignoring: No such file or directory
:...
:
and indeed there are no files under those */power/ directories. Ratijas (talk) 11:24, 27 November 2024 (UTC)Reply
OK, so after triggering the rules AND reconnecting the input modules it does kinda work now: the keyboard and numpad modules won't wake up the laptop; but they stay on at all times along with their backlight which is clearly not ideal.
Also, the touchpad is not disabled by this method, and as soon as it will get flexed on by the display hard enough, the awoken keyboard would start typing random passwords in. Ratijas (talk) 11:33, 27 November 2024 (UTC)Reply

Prevent waking - additional switches

Just wanted to share this script which disables additional wakeups. Maybe someone knows how to convert this into a nice looking udev rule.

#!/bin/bash

# tested with Debian-13 Linux-6.12 kernel on a 2024 Framework Laptop 16

# Enable this script with this Systemd unit.
# /etc/systemd/system/after-boot-and-wakeup.service
##########
# [Unit]
# Description=Runs after boot and wakeup.
# After=default.target suspend.target hybrid-sleep.target suspend-then-hibernate.target
# # systemctl get-default => graphical.target
# # Run to enable and after changing this section:
# #   systemctl enable after-boot-and-wakeup.service
# 
# [Service]
# Type=oneshot
# ExecStart=/etc/scripts/after_boot_and_wakeup.bash
# User=root
# 
# [Install]
# WantedBy=default.target suspend.target hybrid-sleep.target suspend-then-hibernate.target
##########
# systemctl daemon-reload
# systemctl enable after-boot-and-wakeup.service


# don't wake when lid opened
echo disabled > '/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:4b/PNP0C09:00/PNP0C0D:00/power/wakeup'

# disable USB Wakeup
# XHC0 is the power button and notebook keyboard
for i in XHC1 XHC2 XHC3 XHC4; do
  if grep -Eq "${i}.*enabled" /proc/acpi/wakeup; then
    echo "${i}" > /proc/acpi/wakeup
  fi
done

# keyboard and numpad wakup
echo disabled > "$(find /sys/bus/usb/devices/usb*/ -type d -name '*:32AC:0014.*' -print -quit)"/../../power/wakeup
echo disabled > "$(find /sys/bus/usb/devices/usb*/ -type d -name '*:32AC:0018.*' -print -quit)"/../../power/wakeup

# touchpad wakeup
echo disabled > '/sys/bus/i2c/drivers/i2c_hid_acpi/i2c-PIXA3854:00/power/wakeup'

--KolAflash (talk) 20:51, 10 March 2025 (UTC)Reply

Unfortunately, device names don't seem to be stable. I don't have such path on Arch Linux, for example. Also, did you mean "closed"? — "# don't wake when lid opened" Ratijas (talk) 23:45, 22 May 2025 (UTC)Reply


illumananced

Following the advice in https://github.com/mikhail-m1/illuminanced/issues/18, I set the backlight config to use

maxbacklight_file = "/sys/class/backlight/amdgpu_bl1/max_brightness"
backlight_file = "/sys/class/backlight/amdgpu_bl1/brightness"
illuminance_file = "/sys/bus/iio/devices/iio:device0/in_illuminance_raw"

Should this be added to the page?

--Kurtoid (talk) 20:46, 25 August 2025 (UTC)Reply

SDDM Black Screen

One issue I encountered was that SDDM would not render anything if I had the AMD Radeon RX 7700S graphics module connected (it was still possible to interact with the login screen). I was using the AMD AI 300 Series mainboard.

I managed to solve it by forcing SDDM to use Wayland instead of X11 (SDDM#Wayland). Not sure if that's a viable solution for everyone, but I thought it could be mentioned regardless. Acuadragon100 (talk) 16:00, 21 January 2026 (UTC)Reply

Random Freezes

I noticed that the AI 300 series would sometimes freeze randomly, usually soon after startup.

I added amdgpu.dcdebugmask=0x10 to the Kernel parameters and the issue seemed to go away.

My source: https://community.frame.work/t/xfce-desktop-freeze-on-framework-16-ryzen-ai-300/79376/5 Acuadragon100 (talk) 10:01, 10 February 2026 (UTC)Reply