Tablet mode/autorotate doesn't work in one install, works in another on same machine

I have two hard drives. Both have Fedora 43 Workstation installed and are up to date with kernel 6.19.6 and whatever else is current as of this post. My machine is a Thinkpad X1 2-in-1 gen 10. Tablet mode works just fine on the one install I used for testing. Doesn’t work at all on the install on my main drive.

Works fine in KDE version, which I just wiped in favor of Gnome because Gnome’s touch support was better. Until it didn’t work at all, of course.

I run $ monitor-sensor --accel and get no feedback. It’s like it completely stopped detecting the screen rotation sensors. It doesn’t detect that the laptop is flipped backward into tablet mode and won’t auto-rotate.

But again, it works just fine in my other Gnome install which is pretty much identical.

Disabling all extensions makes no difference.

Where do I look to solve this?

UPDATE: When I run $ systemctl status iio-sensor-proxy.service, it returns Active: inactive (dead)

Is your system fully updated?
Check also in the Software app if you have a update for the firmware to install.

Afterwards try to start the service by hand:

systemctl start iio-sensor-proxy.service  #posting errors if you get some.

If this works afterwards you can enable the service so that it get started by system start.

systemctl enable iio-sensor-proxy.service #posting errors if you get some.

If everything not works, please have a look on this:
Inxi | the help to help your selves
If you do this on both machines you will have a good overview of the hardware and drivers you have in use.

The output of both, would then bee interesting for us, to help you.

Thanks for the reply. When I run
systemctl enable iio-sensor-proxy.service
I get this:

The unit files have no installation config (WantedBy=, RequiredBy=, UpheldBy=,
Also=, or Alias= settings in the [Install] section, and DefaultInstance= for
template units). This means they are not meant to be enabled or disabled using systemctl.
 
Possible reasons for having these kinds of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/, .requires/, or .upholds/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.

When I run
systemctl start iio-sensor-proxy.service
it doesn’t return an error. It doesn’t return anything, just goes back to the terminal prompt.

But now when I run
systemctl status iio-sensor-proxy.service
It once again says “Inactive” AND now includes another block of something I don’t understand, which I have pasted below:

Mar 14 19:45:21 Flappy-Thinkbox systemd[1]: Starting iio-sensor-proxy.service - IIO Sensor Proxy service...
Mar 14 19:45:21 Flappy-Thinkbox systemd[1]: Started iio-sensor-proxy.service - IIO Sensor Proxy service.
Mar 14 19:45:21 Flappy-Thinkbox iio-sensor-proxy[7746]: Not a switch [/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input20/../capabilities/sw]
Mar 14 19:45:21 Flappy-Thinkbox iio-sensor-proxy[7746]: Invalid bitmask entry for /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input20/event7
Mar 14 19:45:21 Flappy-Thinkbox systemd[1]: iio-sensor-proxy.service: Deactivated successfully.
Mar 15 11:55:26 Flappy-Thinkbox systemd[1]: Starting iio-sensor-proxy.service - IIO Sensor Proxy service...
Mar 15 11:55:27 Flappy-Thinkbox systemd[1]: Started iio-sensor-proxy.service - IIO Sensor Proxy service.
Mar 15 11:55:27 Flappy-Thinkbox iio-sensor-proxy[23056]: Not a switch [/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input20/../capabilities/sw]
Mar 15 11:55:27 Flappy-Thinkbox iio-sensor-proxy[23056]: Invalid bitmask entry for /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input20/event7
Mar 15 11:55:27 Flappy-Thinkbox systemd[1]: iio-sensor-proxy.service: Deactivated successfully.

And here is the output of Inxi for my main/problematic install:

System:
  Kernel: 6.19.7-200.fc43.x86_64 arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
  Desktop: GNOME v: 49.4 tk: GTK v: 3.24.51 wm: gnome-shell dm: GDM
    Distro: Fedora Linux 43 (Workstation Edition)
Machine:
  Type: Convertible System: LENOVO product: 21NU0033US v: ThinkPad X1 2-in-1
    Gen 10 serial: <superuser required> Chassis: type: 31
    serial: <superuser required>
  Mobo: LENOVO model: 21NU0033US v: SDK0T76576 WIN
    serial: <superuser required> part-nu: LENOVO_MT_21NU_BU_Think_FM_ThinkPad
    X1 2-in-1 Gen 10 Firmware: UEFI vendor: LENOVO v: N4BET71W (1.41 )
    date: 12/03/2025
Battery:
  ID-1: BAT0 charge: 32.6 Wh (57.5%) condition: 56.7/57 Wh (99.5%)
    volts: 11.79 min: 11.7 model: BYD 5B11M90100 serial: <filter> charging:
    status: discharging control: start: 75% end: 80% cycles: 36
CPU:
  Info: 8-core model: Intel Core Ultra 7 258V bits: 64 type: MCP
    arch: Lunar Lake rev: 1 cache: L1: 832 KiB L2: 14 MiB L3: 12 MiB
  Speed (MHz): avg: 400 min/max: 400/4700:4800:3700 cores: 1: 400 2: 400
    3: 400 4: 400 5: 400 6: 400 7: 400 8: 400 bogomips: 52838
  Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Lunar Lake [Intel Arc Graphics 130V / 140V] vendor: Lenovo
    driver: xe v: kernel arch: Xe2 ports: active: eDP-1
    empty: DP-1,DP-2,HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:64a0
  Display: wayland server: X.Org v: 24.1.9 with: Xwayland v: 24.1.9
    compositor: gnome-shell driver: dri: iris gpu: xe display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3840x2400 s-dpi: 96
  Monitor-1: eDP-1 model: Samsung ATNA40HQ02-0 res: 3840x2400 hz: 120
    dpi: 325 diag: 355mm (14")
  API: OpenGL v: 4.6 vendor: intel mesa v: 25.3.6 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: Mesa Intel Graphics (LNL) device-ID: 8086:64a0
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
  Info: Tools: api: glxinfo x11: xdriinfo, xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel Lunar Lake IPU vendor: Lenovo driver: intel-ipu7
    bus-ID: 00:05.0 chip-ID: 8086:645d
  Device-2: Intel Lunar Lake-M HD Audio vendor: Lenovo
    driver: sof-audio-pci-intel-lnl bus-ID: 00:1f.3 chip-ID: 8086:a828
  API: ALSA v: k6.19.7-200.fc43.x86_64 status: kernel-api
  Server-1: PipeWire v: 1.4.10 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin
Network:
  Device-1: Intel BE201 320MHz driver: iwlwifi v: kernel port: N/A
    bus-ID: 00:14.3 chip-ID: 8086:a840
  IF: wlp0s20f3 state: up mac: <filter>
Bluetooth:
  Device-1: Intel driver: btintel_pcie v: 0.1 bus-ID: 00:14.7
    chip-ID: 8086:a876
  Report: btmgmt ID: hci0 rfk-id: 1 state: up address: <filter> bt-v: 5.4
    lmp-v: 13
Drives:
  Local Storage: total: 3.64 TiB used: 2.25 TiB (61.8%)
  ID-1: /dev/nvme0n1 vendor: Crucial model: CT4000P310SSD8 size: 3.64 TiB
    speed: 63.2 Gb/s lanes: 4 serial: <filter> temp: 28.9 C
Partition:
  ID-1: / size: 3.64 TiB used: 2.25 TiB (61.8%) fs: btrfs dev: /dev/nvme0n1p3
  ID-2: /boot size: 1.9 GiB used: 425.8 MiB (21.9%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 19.3 MiB (3.2%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 3.64 TiB used: 2.25 TiB (61.8%) fs: btrfs
    dev: /dev/nvme0n1p3
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: N/A mobo: N/A
  Fan Speeds (rpm): cpu: 0
Info:
  Memory: total: 32 GiB note: est. available: 30.82 GiB used: 9.29 GiB (30.1%)
  Processes: 544 Power: uptime: 16h 31m wakeups: 2 Init: systemd v: 258
    default: graphical
  Packages: pm: rpm pkgs: N/A note: see --rpm pm: flatpak pkgs: 50
    Compilers: N/A Shell: Bash v: 5.3.0 running-in: ptyxis-agent inxi: 3.3.40

I will post the Inxi output of the working install after I swap SSDs.

FIGURED IT OUT. It’s a regression in kernel 6.19.7 from 6.19.6.

I had updated my Workstation test install Thursday night and kernel 6.19.6 was the current one then. When I did my main Workstation install Friday morning, apparently 6.19.7 had dropped and I hadn’t even noticed.

My test install with 6.19.6 had working tablet mode until I updated it to 6.19.7, and now it’s broken in the same way.

BIG QUESTION NOW: How do I install kernel 6.19.6 on my main install given that 6.19.7 is the only one I have (aside from the 6.17.1 that came with it when first installed)?

Normally I would just boot an older kernel with grub but the one I need isn’t installed.

1 Like

UPDATE: More help is needed. I installed kernel 6.19.6 and booted into it but that didn’t fix the problem. Something else must’ve been updated with the Friday batch and I don’t know what. Still can’t get the iio-sensor-proxy service to run.

Are you working with dnf when updating or do you use the software app?

You can check what exactly got updated with:

sudo dnf history list #check the number of dnf5 upgrade and type

sudo dnf history info #number the number you want to see

# then decide what you want todo
 sudo dnf history --help
Usage:
  dnf5 [GLOBAL OPTIONS] history <COMMAND> ...
                                
Query Commands:                 
  list                          List transactions
  info                          Print details about transactions
                                
Software Management Commands:   
  undo                          Revert all actions from the specified transaction
  redo                          Repeat all actions from the specified transaction
  rollback                      Undo all transactions performed after the specified transaction
  store                         [experimental] Store transaction to a file

If you made it with the Software app you can use dnf4 to see what happened exactly.
please check --help or manpage

EDIT: Disregard, doing further digging…

sudo setenforce 0
and if works that mean patched SELinux policy from updated package is problem
dont forget to set back sudo setenforce 1 to enforcing SELinux when got right packages. I think selinux-policy-targeted and selinux-policy are updated packages

Alright, more info for you (and thanks for your continued help). Couldn’t get the iio-sensor-proxy service to start, even after running sudo setenforce 0 (and trying a reboot too).

But with dnf4 history I was able to get a list of packages that were upgraded in the upgrade that broke it. One of the following is the culprit:

Packages updated 2026-03-13
    Install  kernel-core-6.19.7-200.fc43.x86_64                @updates
    Install  kernel-modules-6.19.7-200.fc43.x86_64             @updates
    Install  kernel-modules-core-6.19.7-200.fc43.x86_64        @updates
    Install  kernel-modules-extra-6.19.7-200.fc43.x86_64       @updates
    Upgrade  amd-gpu-firmware-20260309-1.fc43.noarch           @updates
    Upgrade  amd-ucode-firmware-20260309-1.fc43.noarch         @updates
    Upgrade  atheros-firmware-20260309-1.fc43.noarch           @updates
    Upgrade  brcmfmac-firmware-20260309-1.fc43.noarch          @updates
    Upgrade  cirrus-audio-firmware-20260309-1.fc43.noarch      @updates
    Upgrade  container-selinux-4:2.246.0-1.fc43.noarch         @updates
    Upgrade  exfatprogs-1.3.2-1.fc43.x86_64                    @updates
    Upgrade  intel-audio-firmware-20260309-1.fc43.noarch       @updates
    Upgrade  intel-gpu-firmware-20260309-1.fc43.noarch         @updates
    Upgrade  intel-vsc-firmware-20260309-1.fc43.noarch         @updates
    Upgrade  iwlegacy-firmware-20260309-1.fc43.noarch          @updates
    Upgrade  iwlwifi-dvm-firmware-20260309-1.fc43.noarch       @updates
    Upgrade  iwlwifi-mld-firmware-20260309-1.fc43.noarch       @updates
    Upgrade  iwlwifi-mvm-firmware-20260309-1.fc43.noarch       @updates
    Upgrade  kernel-tools-6.19.7-200.fc43.x86_64               @updates
    Upgrade  kernel-tools-libs-6.19.7-200.fc43.x86_64          @updates
    Upgrade  kf6-filesystem-6.24.0-1.fc43.x86_64               @updates
    Upgrade  kf6-karchive-6.24.0-1.fc43.x86_64                 @updates
    Upgrade  kf6-kimageformats-6.24.0-1.fc43.x86_64            @updates
    Upgrade  libertas-firmware-20260309-1.fc43.noarch          @updates
    Upgrade  linux-firmware-20260309-1.fc43.noarch             @updates
    Upgrade  linux-firmware-whence-20260309-1.fc43.noarch      @updates
    Upgrade  mt7xxx-firmware-20260309-1.fc43.noarch            @updates
    Upgrade  nvidia-gpu-firmware-20260309-1.fc43.noarch        @updates
    Upgrade  nxpwireless-firmware-20260309-1.fc43.noarch       @updates
    Upgrade  perl-AutoLoader-5.74-522.fc43.noarch              @updates
    Upgrade  perl-B-1.89-522.fc43.x86_64                       @updates
    Upgrade  perl-Class-Struct-0.68-522.fc43.noarch            @updates
    Upgrade  perl-DynaLoader-1.57-522.fc43.x86_64              @updates
    Upgrade  perl-Errno-1.38-522.fc43.x86_64                   @updates
    Upgrade  perl-Fcntl-1.20-522.fc43.x86_64                   @updates
    Upgrade  perl-File-Basename-2.86-522.fc43.noarch           @updates
    Upgrade  perl-File-Copy-2.41-522.fc43.noarch               @updates
    Upgrade  perl-File-Find-1.44-522.fc43.noarch               @updates
    Upgrade  perl-File-stat-1.14-522.fc43.noarch               @updates
    Upgrade  perl-FileHandle-2.05-522.fc43.noarch              @updates
    Upgrade  perl-Getopt-Std-1.14-522.fc43.noarch              @updates
    Upgrade  perl-I18N-Langinfo-0.24-522.fc43.x86_64           @updates
    Upgrade  perl-IO-1.55-522.fc43.x86_64                      @updates
    Upgrade  perl-IPC-Open3-1.24-522.fc43.noarch               @updates
    Upgrade  perl-Math-Complex-1.63-522.fc43.noarch            @updates
    Upgrade  perl-NDBM_File-1.18-522.fc43.x86_64               @updates
    Upgrade  perl-POSIX-2.23-522.fc43.x86_64                   @updates
    Upgrade  perl-SelectSaver-1.02-522.fc43.noarch             @updates
    Upgrade  perl-Symbol-1.09-522.fc43.noarch                  @updates
    Upgrade  perl-Sys-Hostname-1.25-522.fc43.x86_64            @updates
    Upgrade  perl-base-2.27-522.fc43.noarch                    @updates
    Upgrade  perl-if-0.61.000-522.fc43.noarch                  @updates
    Upgrade  perl-interpreter-4:5.42.1-522.fc43.x86_64         @updates
    Upgrade  perl-lib-0.65-522.fc43.x86_64                     @updates
    Upgrade  perl-libs-4:5.42.1-522.fc43.x86_64                @updates
    Upgrade  perl-locale-1.13-522.fc43.noarch                  @updates
    Upgrade  perl-mro-1.29-522.fc43.x86_64                     @updates
    Upgrade  perl-overload-1.40-522.fc43.noarch                @updates
    Upgrade  perl-overloading-0.02-522.fc43.noarch             @updates
    Upgrade  perl-subs-1.04-522.fc43.noarch                    @updates
    Upgrade  perl-vars-1.05-522.fc43.noarch                    @updates
    Upgrade  podman-5:5.8.1-1.fc43.x86_64                      @updates
    Upgrade  python3-perf-6.19.7-200.fc43.x86_64               @updates
    Upgrade  qcom-wwan-firmware-20260309-1.fc43.noarch         @updates
    Upgrade  realtek-firmware-20260309-1.fc43.noarch           @updates
    Upgrade  systemd-258.7-1.fc43.x86_64                       @updates
    Upgrade  systemd-container-258.7-1.fc43.x86_64             @updates
    Upgrade  systemd-libs-258.7-1.fc43.x86_64                  @updates
    Upgrade  systemd-networkd-258.7-1.fc43.x86_64              @updates
    Upgrade  systemd-oomd-defaults-258.7-1.fc43.noarch         @updates
    Upgrade  systemd-pam-258.7-1.fc43.x86_64                   @updates
    Upgrade  systemd-resolved-258.7-1.fc43.x86_64              @updates
    Upgrade  systemd-shared-258.7-1.fc43.x86_64                @updates
    Upgrade  systemd-sysusers-258.7-1.fc43.x86_64              @updates
    Upgrade  systemd-udev-258.7-1.fc43.x86_64                  @updates
    Upgrade  tiwilink-firmware-20260309-1.fc43.noarch          @updates
    Upgrade  rpmfusion-nonfree-appstream-data-43-2.fc43.noarch @rpmfusion-nonfree-updates
    Upgrade  rpmfusion-free-appstream-data-43-2.fc43.noarch    @rpmfusion-free-updates```

try sudo systemctl stop iio-sensor-proxy.service and after that run monitor-sensor --accel

No change. After stopping the service, monitor-sensor --accel still gives me “Waiting for iio-sensor-proxy to appear” like before. And attempting to start the service still doesn’t work.

systemd was updated prior to the problem occuring, could that be the culprit? And how might I test?

sudo dnf downgrade linux-firmware
sudo systemctl restart iio-sensor-proxy.service
systemctl status io-sensor-proxy.service

Trying to downgrade linux-firmware, but the only option it’s giving me is 20251021 which is too old for my laptop. I need 20260221-1 but it says it can’t find it/not available.

I found linux-firmware-20260221.fc43 on the Koji archive, but I’m not sure how to go about installing it from there: Making sure you're not a bot!

Do ‘sudo dnf downgrade https://riscv-kojipkgs.fedoraproject.org//packages/linux-firmware/20260221/1.fc43/noarch/linux-firmware-20260221-1.fc43.noarch.rpm’ This will pull rest of files

There also changed the intel GPU software as you use it.

intel-gpu-firmware-20260309-1.fc43.noarch

Hi, I have a similar issue on my laptop with the sensor not being detected. My use case is a bit different, as I was using Fedora Silverblue where rotation did work, rebased to Bazzite and rotation didn’t work. The kernel for Bazzite currently is 16.17.7, so I assumed the kernel being older was the issue. Rebasing back to Fedora Silverblue didn’t fix it though, so idk if there was an update over the weekend that made it not work.

I’ll try to reinstall Silverblue later today, as the laptop is still new and i can afford to do so.

My laptop is HP OmniBook Ultra Flip Laptop 14-fh0xxx (SBKPF)
There is also an open bugreport about the sensor in Lunar Lake not being detected, although it’s a bit old with no replies:
https://bugzilla.redhat.com/show_bug.cgi?id=2389025

SUCCESS. Downgraded linux-firmware (and all associated packages) to 20260221-1.fc43 AND had to boot into kernel 6.19.6, and now iio-sensor-proxy.service is running, allowing tablet mode to work properly again.

Restating for anyone else who might stumble onto this, the solution is BOTH downgrading to linux-firmware-20260221-1 AND kernel-6.19.6

Off to Bugzilla to file a detailed report.

Thank you SO MUCH to everyone who helped here.

1 Like

Hi, Taylor, before you go an enjoy your rotation, could you say what your hardware specs are and what laptop you use? I wanna know if my issue is related.

My laptop is a Thinkpad X1 2-in-1 Gen 10 with Lunar Lake 258v

1 Like