Ubuntu 25.10 on Framework Laptop 12

Ubuntu 25.10 is released! You can download Ubuntu 25.10 here .


Installation Guide: Ubuntu 25.10 Installation on the Framework Laptop 12 - Framework Guides

2 Likes

thanks for pointing it out but the guide page doesn’t exist - 404

1 Like

I accepted the upgrade offered by the software updater.

All OK except that I can’t get the on screen keyboard to appear in tablet mode.

Link has been fixed, when I pushed it live, it did not take and was still not pushed live yet. Corrected now.

2 Likes

Hey @Matt_Hartley, the completion guide for 25.10 is incorrect/incomplete. It still lists the udev/iio-sensor-proxy - that was needed in 25.04 but is not needed for 25.10 - and it’s missing the pinctrl_tigerlake / soc_button_array load order fix, which is needed on 25.10.

Update 13.11.25: The load order thing is in the completion guide now.

1 Like

I can follow the manual fix but to make it permanent the instruction is a bit over my head. If you could explain step by step that would be very helpful.

“To make this permanent you can configure your distribution to load pinctrl_tigerlake in initrd.“

Yeah, the completion guide is a bit full of complicated stuff you don’t need at all… What you’re looking for is right here. So basically just three steps:

  1. Run sudo nano /etc/initramfs-tools/modules in a terminal to open the file configuring the module load order.

  2. Paste this into the file at the bottom:

    #Ensure pinctrl_tigerlake loads before soc_button_array
    pinctrl_tigerlake
    soc_button_array
    

    Save with Ctrl+O, close with Ctrl+X.

  3. Then run sudo update-initramfs -u -k all and reboot.

Now tablet mode should work. Let me know if you need assistance.

1 Like

Thanks for responding.

The screen auto-rotate works , if I activate the gnome shell extension, but no on-screen keyboard comes up.

I followed the steps twice to make sure I didn’t miss anything.

patrick@patrick-Laptop-12-13th-Gen-Intel-Core:~$ sudo lsmod | grep -e pinctrl_tigerlake -e soc_button_array
[sudo: authenticate] Password: 
pinctrl_tigerlake      28672  3
soc_button_array       20480  0
patrick@patrick-Laptop-12-13th-Gen-Intel-Core:~$ 

but if follow the manual instructions on linux-docs/framework12/debugging.md at main · FrameworkComputer/linux-docs · GitHub

sudo rmmod soc_button_array
sudo modprobe soc_button_array

all is well and the on screen keyboard appears when it should. Anything else I can try to make it permanent?

Hm, I actually didn’t use the fix from the framework wiki myself. I did this:

echo "force_drivers+=" pinctrl_tigerlake "" | sudo tee /etc/dracut.conf.d/fw12_tablet_mode_fix.conf
sudo update-initramfs -u 

That command makes it so that `pinctrl_tigerlake` is loaded in the initial ram disk. As the initramfs is the first thing that is created on boot, this way `pinctrl_tigerlake` is automatically loaded before `soc_button_array`.

Let us know if this does the trick for you!

Thanks for calling this out. This is the flow that works in my testing and validation:

Which brings you to here.

And at Tablet mode on Ubuntu from that page, new tab and follow the link which brings you to this page.

Back on the original tab, there is a bug we have a workaround for.

I know it is a bit of a bouncing around, but, being bound into two places for docs and with some of the docs being temporary and getting updates without affecting the greater docs, we do what we can.

Yup, you’re right, it’s a bit of bouncing around but that’s no problem. I was just saying that the iio-sensor-proxy is not needed at all in Ubuntu 25.10 any more. So you could just take it out of the 25.10 documentation, as it’s plain unnecessary and just makes things look more complicated.

I can send you a pull request for that if you like. Just let me know if that’s something you want/are open to.

No, same issue, no on screen keyboard until I do

sudo rmmod soc_button_array
sudo modprobe soc_button_array

Hm, okay. So the fact that it works, when you manually reload `soc_button_array` shows us that it’s some kind of problem with applying the fix. You can try the following:

  • Try removing the Gnome extension you installed to get autorotation working. Maybe that interferes with the switch to tablet mode.
  • Run these three command and show us the output:
    • cat /etc/initramfs-tools/modules
    • cat /etc/dracut.conf.d/fw12_tablet_mode_fix.conf
    • sudo update-initramfs -u -k all
  • And a question: Did you upgrade to Ubuntu 25.10 from a prior version or is this a fresh install?

Thanks.

  • I uninstalled the Gnome shell auto rotate and rebooted. Now the screen doesn’t auto-rotate and no on screen keyboard comes up
  • and then I see a problem /etc/dracut.conf.d does not exist. Should I create it?
  • $ cat /etc/initramfs-tools/modules
    # List of modules that you want to include in your initramfs.
    # They will be loaded at boot time in the order below.
    #
    # Syntax:  module_name [args ...]
    #
    # You must run update-initramfs(8) to effect this change.
    #
    # Examples:
    #
    # raid1
    # sd_mod
    #Ensure pinctrl_tigerlake loads before soc_button_array
    pinctrl_tigerlake
    soc_button_array
    
    patrick@patrick-Laptop-12-13th-Gen-Intel-Core:~$ cat /etc/dracut.conf.d/fw12_tablet_mode_fix.conf
    cat: /etc/dracut.conf.d/fw12_tablet_mode_fix.conf: No such file or directory (os error 2)
    
    
  • Yes I accepted an upgrade to Ubuntu 25.10
  • The manual fix still works. I don’t need the Gnome shell auto-rotate extension.

Hi!

I faced the same problem as Patrick_Chamberlain, even with the modification of /etc/initramfs-tools/modules and the recreation of the initramfs, the module load order seem to remain the same.

I don’t have enough time to investigate but I created a workaround by creating a systemd unit that reloads the module, this is not a definitive solution, but maybe it can help someone :

# /etc/systemd/system/reload-soc-module.service
[Unit]
Description=Ubuntu 25.10 workaround to reload soc module
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/sbin/reload-soc-module.sh

[Install]
WantedBy=multi-user.target

And /usr/local/sbin being just a simple script containing :

#!/bin/bash

rmmod soc_button_array
modprobe soc_button_array
2 Likes