FW12 - Problems returning from Tablet Mode - Tracking thread

Hi All,

This seems to be splattered across multiple threads (FW12 Batch 1 Guild - #225 by wolfie / What are the Linux system requirements for tablet mode? - #17 by Rafael_Goncalves) . I think a central thread makes sense.

The problem:
Some FW12s running a variety of Linux distros suffer the following

  • When converted to tablet mode, the laptop disabled keyboard and touchpad, this is desirable behaviour (-event11 SWITCH_TOGGLE switch tablet-mode state 1)
  • When converting back to laptop mode, the laptop does not re-enable the keyboard and touchpad (no event fires)
  • The easiest way to get the keyboard and touchpad back is to suspend and resume. Alternatively a full shutdown works, but a reboot does not.
  • Additional Symptoms
    – Screen angle sensor reports as “Unreliable” in framework_tool
    – Automatic Screen rotation does not function
    – Tilt on pen does not function due to “unreliable” screen angle sensor (GIMP/Surface pen)

Affected laptops

  • Plenty of people with FW12s report that things work correctly for them under the same distro
  • For those who have the problem, the problem occurs for numerous distros, it it is specific to the laptop, not any particular distro
  • Reports limited to batch 1

Status

  • I’ve raised a support ticket with Framework, which has been sent to the escalation support team after basic troubleshooting (Box undamaged, reseat input cover)

Workarounds

I’ll update this thread as/when I hear back from support. If anybody has any contrary data (Eg they had the problem under distro1, but not under distro2, or you have a batch 0/2 device with the same problem), I’ll do my best to incorporate the info and form a more comprehensive problem statement

5 Likes

Thanks for breaking the issue out in it’s own thread. I still can confirm, that the issue definitely happened as described at some point. At a different time later I also had it working. So it might not be consistent. Not sure why it sometimes works, sometimes not.

Will re-test from time to time and chime in if I find anything noteworthy.

3 Likes

Mine is super-consistent.

2 Likes

Yep, mine too. Always get the laptop->tablet to work, never get the tablet->laptop to work.
sudo framework_tool --tablet-mode laptop works around it, though.

2 Likes

sudo framework_tool --tablet-mode laptop

This will lock the system in tablet mode until the EC restarts. Which happens only when you fully power off the system and unplug AC. So I don’t suggest this as a solution.

2 Likes

Automatic Screen rotation does not function

There’s a bug currently in iio-sensor-proxy which causes it not to get G sensor data which is needed to rotate the screen.

Here’s our workaround at the moment

A fix is proposed but has not been merged and released yet.

2 Likes

The keyboard and touchpad are disabled by the firmware (EC) which works independently of the OS.

But additionally libinput also disables them if it receives SWITCH_TOGGLE tablet mode.

This is handled by the soc_button_array kernel driver.

Some rostros, e.g. Arch load pinctrl_tigerlake as a module instead of building it into the kernel.
soc_button_array must load after that module. You can manually unload and reload it:
sudo rmmod soc_button_array && sudo modprobe soc_button_array

Or add pinctrl_tigerlake to your initramfs

2 Likes

With the --tablet-mode laptop it disables the hall effect sensor based switch to the tablet mode you can’t get out of. So it’s pretty decent workaround (at the cost of the keyboard being left enabled and potential accidental keypresses)

The screen rotation doesn’t work for me when using Fedora, which the framework documentation says should work out of the box. In addition, the documented steps to bring screen rotation back to life don’t work for me. I just get Waiting for iio-sensor-proxy to appear, it never appears.

PS, can’t seem to edit the first post. Affected distributions: Fedora, Ubuntu, Mint, Arch

1 Like

It will lock the system in laptop mode, as opposed to locking me out of the physical keyboard (by locking itself in tablet mode). I’d rather the former than the latter.

I don’t particularly care about the screen rotation, but I’ll give the module order a try and get back to you.

1 Like

Did this, no change in behavior.

$ head -10 /etc/mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=(pinctrl_tigerlake)

# BINARIES
# This setting includes any additional binaries a given user may
$ sudo mkinitcpio -P
$ sudo reboot

To describe the behavior I’m observing, here is a recap of the other thread:

cat /sys/bus/iio/devices/iio:device0/in_angl_raw
500

That remains 500 regardless of lid angle. (the other device, with the accelerometer, reports changing values. I’ve tried this with watch -n 1 cat /sys/bus/iio/devices/iio:device1/in_accel_x_raw (and the same for the other axes) and it shows values changing in real time.

As to the udev workaround, I get the following in iio-sensor-proxy.service:

Jul 07 13:44:41 framework systemd[1]: Starting IIO Sensor Proxy service...
Jul 07 13:44:41 framework systemd[1]: Started IIO Sensor Proxy service.
Jul 07 13:44:41 framework iio-sensor-prox[5377]: Not a switch [/sys/devices/platform/FRMWC004:00/cros-ec-dev.2.auto/cros-ec-sensorhub.3.auto/cros-ec-accel.10.auto/iio:device1/../capabilities/sw]
Jul 07 13:44:41 framework iio-sensor-prox[5377]: Invalid bitmask entry for /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input4/event3
Jul 07 13:44:41 framework systemd[1]: iio-sensor-proxy.service: Deactivated successfully.

That happens regardless of mode.
monitor-sensor --accel shows only Waiting for iio-sensor-proxy to appear ad aeternum.

My system is running Arch Linux with the latest update (kernel is linux 6.15.3.arch1-1), and I’m using KDE plasma (wayland).

1 Like

Hey people,

I am enjoying my new Framework 12 so far. The only downside is that I have a similar problem concerning tablet mode.

I use:

  • Archlinux kernel: 6.15.6.arch1-1
  • KDE Plasma: 6.4-4

I applied the udev edit described here. My sensor readings seem fine.

Check out sensor readings ```bash cat /sys/bus/iio/devices/iio:device0/in_angl_raw 111 ``` ```bash monitor-sensor --accel Waiting for iio-sensor-proxy to appear +++ iio-sensor-proxy appeared === Has accelerometer (orientation: normal, tilt: vertical) ```

But libinput debug-events doesnt get any event when I move lid. No matter if how I move it (all the way to 360 degrees or down to 15 degrees.)

My current workaround is to uncheck the “only in tablet mode” box in the plasma display settings, because I rarely use my laptop upside down.

Check out screenshot ![image|690x333](upload://d4FRn2tm4KA8L6xUHrotsV7FCpy.png)

I’d be happy about any advice or just people reporting back to me that I am not alone with this version of the tablet-mode dilemma.

1 Like

I’ve not heard back from support in a week :confused:

@catastrophic

I’ve reported the same problem earlier : What are the Linux system requirements for tablet mode? - #33 by Q_Map

I think it’s caused by what Daniel_Schaefer wrote above :

I did add MODULES=(pinctrl_tigerlake) in my mkinitcpio.conf and never had a problem since, but I’m not 100% sure it was what solved it because I did a bunch of change at the same time, please try it and tell us if it did solve it for you.

6 Likes

Potentially we’re looking at a couple of different root causes. Eg the Arch users could have a specific Arch problem, such as the one Daniel points out.
I could have a board with a faulty accelerator. Certainly the Arch specific steps don’t explain why it doesn’t work for me under Fedora

This solved my problem, thanks a lot!

1 Like

Following up with the team

2 Likes

Fedora does indeed, work as indicated in the guides. Photo taken just now.

Fedora Workstation, both on Live USB not updated and fully updated as of today.

Clean boot parameters (no workarounds). @TheWishy you are on GNOME, Fedora 42, correct?

Folded back, tablet mode, unfolded back to normal, resumes proper operation.

1 Like

Tagging @Jesse_Darnley Arch. Looks like a a module loading order dependency for Arch users.

1 Like

I tried Fedora 42 live media (Fedora-KDE-Desktop-Live-42-1.1.x86_64.iso obtained earlier today), and I still get a constant value of 500 in the /sys/bus/…/in_angl_raw.
The behavior I observe in Fedora 42 is identical to that of Arch: opening the lid 360 degrees disables keyboard and trackpad, restoring to laptop mode has no effect. In tablet mode, there is no screen rotation.
As I mentioned, in Arch I added MODULES=(pinctrl_tigerlake) to my mkinitcpio and regenerated my initramfs and it had no effect.
As @TheWishy mentions at the top of the thread, it seems very likely that: