From fcf0326cb009f2f3266a6a82d234e07c4672f83c Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 24 Jul 2025 17:27:37 +0800 Subject: [PATCH 1/2] framework12: Add step-by-step debug instructions To help users root cause and fix problems. Signed-off-by: Daniel Schaefer --- framework12/debugging.md | 126 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 framework12/debugging.md diff --git a/framework12/debugging.md b/framework12/debugging.md new file mode 100644 index 0000000..66e6364 --- /dev/null +++ b/framework12/debugging.md @@ -0,0 +1,126 @@ +# Framework 12 - Debugging + +Framework 12 has a couple of features not present on our other systems. +They might not work on some installations, these instructions here help you find the root cause and how to fix it. + +## Tablet Mode + +Kernel drivers required: + +- `pinctrl_tigerlake` (Must be built into the kernel or load first) +- [`soc_button_array`](https://github.com/torvalds/linux/blob/master/drivers/input/misc/soc_button_array.c) + +### Check that both modules are loaded + +``` +> sudo lsmod | grep -e pinctrl_tigerlake -e soc_button_array +pinctrl_tigerlake 24576 0 +soc_button_array 28672 5 +``` + +If no, you can load them manually: + +``` +> sudo modprobe pinctrl_tigerlake soc_button_array +``` + +### Check that the kernel recognized the tabletmode GPIO + +``` +> journalctl -k | grep gpio-keys +Feb 27 19:14:00 fedora kernel: input: gpio-keys as /devices/platform/INT33D3:00/gpio-keys.1.auto/input/input17 +``` + +If no, then `pinctrl_tigerlake` might have loaded after `soc_button_array`. +Reload them manually in the right order: + +``` +sudo rmmod soc_button_array +sudo modprobe soc_button_array +``` + +To make this permanent you can configure your distribution to load +`pinctrl_tigerlake` in initrd. + +### Check that libinput can see tablet mode changes + +``` + > sudo libinput debug-events | grep SWITCH_TOGGLE +-event13 SWITCH_TOGGLE +0.000s switch tablet-mode state 1 + event13 SWITCH_TOGGLE +1.360s switch tablet-mode state 0 +``` + +We have not seen this fail, if the kernel modules are okay, this should work. +If not, please contact Framework. + +## Screen Rotation + +GNOME, KDE, Windows all rotate the screen only if the system is in tablet mode, +so please check if that's working first. + +If you want to rotate in laptop mode, KDE has a setting and GNOME has a plugin to do that. + +The kernel driver +[`cros_ec_sensors`](https://github.com/torvalds/linux/blob/master/drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c) +reads accelerometer from the EC controller. This is supported on Framework 12 +since Linux 6.12. + +iio-sensor-proxy interprets that accelerometer data as a screen orientation and +forwards it to GNOME/KDE via dbus. + +### Check that the EC driver recognizes the system + +``` +> sudo dmesg | grep cros_ec +[ 9.014454] cros_ec_lpcs cros_ec_lpcs.0: loaded with quirks 00000001 +[ 9.025815] cros_ec_lpcs cros_ec_lpcs.0: Chrome EC device registered +``` + +If no, likely your kernel is older than 6.12. + +### Check that the kernel exposes accelerometer data + +``` +> cat /sys/bus/iio/devices/iio:device0{name,label,in_accel_{x,y,z}_raw} +cros-ec-accel +accel-display +-192 +14400 +6672 +``` + +If that is not working, please contact Framework. + +### Check that the iio-sensor-proxy daemon is runnning + +``` +> systemctl status iio-sensor-proxy.service | grep Active + Active: active (running) since Thu 2025-02-27 19:14:02 CST; 19h ago +``` + +If no, make sure the package is installed and the service is enabled and running. + + +### Check that the daemon can be accessed and recognizes the sensor + +``` +> monitor-sensor --accel + Waiting for iio-sensor-proxy to appear ++++ iio-sensor-proxy appeared +=== Has accelerometer (orientation: normal) + Accelerometer orientation changed: right-up + Accelerometer orientation changed: normal +``` + +If not, you are likely running iio-sensor-proxy 3.7. +A fix has been [merged upstream](https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/merge_requests/400). +Until the next release has reached distributions, you can either downgrade to +3.7 or remove a line in the udev config: + +``` +sed 's/.*iio-buffer-accel/#&/' /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules | sudo tee /etc/udev/rules.d/80-iio-sensor-proxy.rules +sudo udevadm trigger --settle +sudo systemctl restart iio-sensor-proxy +``` + +Please see our distribution specific documentation for further details. From de71f5ca923d7f3eeec83d777cf00b0e5e775915 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 24 Jul 2025 17:34:06 +0800 Subject: [PATCH 2/2] framework12/debugging: Mentions touchpad and touchscreen Signed-off-by: Daniel Schaefer --- framework12/debugging.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/framework12/debugging.md b/framework12/debugging.md index 66e6364..a471fe6 100644 --- a/framework12/debugging.md +++ b/framework12/debugging.md @@ -3,6 +3,16 @@ Framework 12 has a couple of features not present on our other systems. They might not work on some installations, these instructions here help you find the root cause and how to fix it. +## Touchpad + +No special configuration or recent kernel version needed. +Kernel 6.x with libinput can work. + +## Touchscreen + +No special configuration or recent kernel version needed. +Kernel 6.x with libinput can work. + ## Tablet Mode Kernel drivers required: pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy