[TRACKING] Fn key stops working on PopOS after a while

Everything seemed to be going well with the firmware downgrade to, but a few days ago the fn key died again and I had to reboot to bring it back :frowning: I’m back on again and seeing the same behavior occasionally.

As this is happening on Ubuntu as well, anything interesting happen before this took place? Suspend, repeated lid opening and closing? I’ve been actively tracking an 11th gen issue that I have not been able to replicate, however if related, I have a workaround that may stop the behavior.

Let me know if suspend was done previous to this happening.

Yes, for me on Ubuntu, this is always correlated with a resume from a suspend. It doesn’t happen every time, but it will generally happen at least once every 5-7 days (and then I reboot to fix it). Prior to this starting (potentially with the Ubuntu 22.10 upgrade?), I had gone a year without any problems whatsoever.

For me, I can confirm that it exclusively happens after resuming from suspend.

If I boot normally it doesn’t happen. Only after having put the machines I sleep and waking it up again it’ll happen soon after.

I don’t believe it’s an immediate effect, but I haven’t actually looked into it

I also see this problem sporadically after resuming from a suspend. Suspending again, and re-resuming often fixes it. This is on Ubuntu 22.04.2 LTS.

For Ubuntu 22.04 and up, please try this:

echo "blacklist cros_ec_lpcs" | sudo tee -a /etc/modprobe.d/no_cros_ec.conf


Then report back. It blacklists this: LKML: "Dustin L. Howett": [PATCH 0/2] platform/chrome: Add support for the Framework Laptop Won’t affect anything in a negative way, but it going to likely solve the issue for you on 11th gen.


By the way, I just want to precise that this happens on 12th gen.

I didn’t know that this thread was 11th gen only:
I switched from 11th-gen to 12th-gen some time last year, and the issue still happens from time to time.

Looks to be different. 11th gen users were seeing this happen with some suspend/resume activity and it looks like your seeing this with Fn lock after unplugging a TB dock.

@Matt_Hartley thanks for the tip about blacklisting the cros_ec_lpcs module, I’m trying that now. It still seems to get loaded even with the modprobe.d file:

chris@vega:~ ☸ home in 112ms @ 20:34:32 $ cat /etc/modprobe.d/no_cros_ec.conf 
# Blacklists a kernel module that causes the Fn key to stop working
# https://community.frame.work/t/tracking-fn-key-stops-working-on-popos-after-a-while/21208/32
blacklist cros_ec_lpcs
chris@vega:~ ☸ home in 109ms @ 20:35:42 $ lsmod | grep cros_
cros_usbpd_charger     20480  0
cros_usbpd_logger      20480  0
cros_usbpd_notify      20480  1 cros_usbpd_charger
cros_ec_debugfs        16384  0
cros_ec_chardev        16384  0
cros_ec_sysfs          16384  0
cros_ec_dev            16384  0
cros_ec_lpcs           16384  0
cros_ec                20480  1 cros_ec_lpcs

Do you have any advice on a stronger way to blacklist it?

No not always, I had it the last week-end, and it was not after touching the docks nor the ports (I think… 90% sure…).

Next time it happens, I’ll make sure to memo it and report back here.

1 Like

Ah update on the modprobe.d solution: after adding a modprobe configuration file, you also have to run sudo update-initramfs -u to make it take effect on the next boot. I’m now running without those cros_ modules and will report back after a week or so.


I’m experiencing this error on 11th and 12th gen. I created this topic when I was already at 12th as far as I remember.

So far I didn’t find a solution as well, however the error happens not as often as before within the last few weeks.

1 Like

Was suspend involved and which distro/desktop? I have to date, only seen this on 11th gen and even at that have not reproduced the issue.

Ok so now I just had the problem (on the 12-th gen). It was not after manipulating the TB dock.

The good news: I discovered that I just had to do a s2ram and then when waking it back up the problem was gone! So, no more need to do a full reboot! (and no need to loose the state of the laptop, no more need to re-open all the files etc.)

I’m having the same problem with my 12th gen on Ubuntu 23.04.

It only happens to me after waking from sleep, and only every 5th time or so. Putting it back to sleep does not fix it for me, only a reboot fixes it.

The Fn functions stop working, only F1-F12 works, no matter if a hold down the Fn key or not. Fn lock also doesn’t work. Fn+space bar for the keyboard backlight also stops working. The keyboard backlight stays on the level it was before going to sleep.

I usually have nothing connected to the laptop except for the charger when putting it to sleep by closing the lid. I have two USB-C modules, one USB-A and one HDMI, if that makes any difference.

I got my Framework in March '23 and it’s been running Ubuntu from the start. I don’t think I’ve noticed this problem in the beginning. It seems to me it only started recently.

1 Like

Have you tried s2ram specifically? There are several flavors of “sleep”, so maybe it depends on which you use…

Reporting back in after 2 weeks and I’m pretty sure blocking cros_ec_lpcs as @Matt_Hartley suggested here ([TRACKING] Fn key stops working on PopOS after a while - #32 by Matt_Hartley) has completely solved the problem for me!

Just be sure to run update-initramfs -u afterwards to ensure it takes.


Fantastic! Glad to hear it.

As I understand it, that cros_ec_lpcs is expected to fix things only on the 11th gen, is that right? Are there any similar workarounds for the same issue on 12th gen?

On the support ticket that I have open for this issue, support have asked me to try this workaround on my 12th gen, which I’m currently doing. It’s a bit too early to tell for sure, but so far it looks very promising - no re-occurrences yet, no more dmesg errors from the module, and I haven’t noticed any other ill effects. The main downside is that blacklisting the module means no fan reporting/control via ectool (though it might be possible by allowing ectool to do raw port IO?). Overall I think it’s well worth attempting the workaround on 12th gen and seeing how you go with it.

EDIT: I also cheated and did an rmmod of the module, without actually rebooting or blacklisting (yet). The rmmod apparently worked despite throwing an error. YMMV.

1 Like