[SOLVED] Fn lock makes both Fn+F# and F# trigger the media control keys

Kubuntu Linux 22.10, 12th generation. 5.19.0-29-generic
When I press Fn+Esc, the F# keys still act as media control keys with Fn not pressed.

To demonstrate, here’s a sequence of button presses and their outcomes:
F3: volume increases, as expected
Fn+F3: search bar appears on the page, as expected.
Fn+Esc: now Fn lock is engaged
F3: volume increases, not as expected! The search bar should have appeared.
Fn+F3: volume increases, as expected

This is on the laptop keyboard. Any ideas how to fix this, so that I can press F# keys when Fn lock is on?

2 Likes

A few hours and restarts later, the problem has fixed itself. I don’t think I’ve changed anything that might be related to the issue.

Sometimes life is like that.

Unless it appears again I wouldn’t bother spending more time on it.

Enjoy your laptop!

Super weird, especially the self-fix. Glad it’s working now! Marking solved for OP.

1 Like

I had that once too (using Artix), and a reboot fixed it too.

Thanks for posting this - I thought I was crazy or my fn key broken :sweat_smile:

It happened to me two times in the last week (never before), and last time a reboot fixed it, but today it did not. (will reboot a few times more)

But since there is this strong correlation of issue and timing, I’m posting some system info so we can cross-check what might be the issue?

FW with 11th gen
Bios: 3.10 (not recently upgraded)
Kernel: 6.1.5
OS: Fedora 37
… no idea what else might be relevant
also doesn’t seem to overlap with your details in any interesting way.

Did recently do dnf upgtrade… but does the OS have any say about this, or can it only be framework-firmware/bios, as my gut says the OS doesn’t know about the FN key at all. :thinking:

Mysterious mysterious :sweat_smile:

After a few reboots, the original problem disappeared and didn’t come back. Afterwards, a different problem occasionally appeared, that Fn doesn’t do anything when pressed, which might be related to attaching/detaching peripherals. I’ve been holding off on reporting this second problem until I have a better handle on its causes, and it does fix itself after 1 restart.

Maybe, have you rebound keys? I did so briefly, rebinding Caps Lock to another Ctrl, but have no idea if it is related to the Fn business.

One thing that may have fixed the original problem is attaching more peripherals. I added a mouse and keyboard.

OK OK folks I’m having the issue right now!!
Quick, please ask me any diagnostic steps you think of, I will perform then, to gather information.
I won’t reboot for a while (I’m expecting that a reboot would solve it), just so that I have all my time to look into it.

I’m currently having all extensions being USB-C except the left-bottom one which is USB-A, and I have a PD power cord plugged in the left-upper USB-C.
No wired peripherals, and no bluetooth peripherals.

As I mentioned before, my distro is Artix. My kernel is 6.1.6-artix1-1, BIOS 3.06 on 12th gen i7-1280P.

@Matt_Hartley @Kieran_Levin If you want to take advantage of the situation to ask me diagnostic steps, please don’t hesitate!!

Retracing the steps before this happened, is any new software open or anything changed elsewhere? Does anything show up in dmesg - t?

@Matt_Hartley What I did before that could have induced this state:

  • rmmoded all my nvidia* kernel modules
  • unplugged my eGPU (it was not used by Xorg, only for compute, so unplugging is possible as long as the nvidia kernel modules are not loaded)
  • unplugged my thunderbolt Anker 577 dock

I think this excerpt of dmesg -t starts around the time when I unloaded the nvidia drivers:

cros_ec_lpcs cros_ec_lpcs.0: packet too long (773 bytes, expected 0)
perf: interrupt took too long (3921 > 3918), lowering kernel.perf_event_max_sample_rate to 51000
cros_ec_lpcs cros_ec_lpcs.0: packet too long (4 bytes, expected 0)
[drm] [nvidia-drm] [GPU ID 0x00000400] Unloading driver
nvidia-modeset: Unloading
nvidia-uvm: Unloaded the UVM driver.
nvidia-nvlink: Unregistered Nvlink Core, major device number 509
thunderbolt 0-0:1.1: retimer disconnected
thunderbolt 0-1: device disconnected
pcieport 0000:00:07.0: pciehp: Slot(3): Link Down
pcieport 0000:00:07.0: pciehp: Slot(3): Card not present
snd_hda_codec_hdmi hdaudioC2D0: Unable to sync register 0x4f0800. -5
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
snd_hda_codec_hdmi hdaudioC2D0: HDMI: invalid ELD buf size -1
i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=io+mem:owns=io+mem
pci 0000:04:00.0: Removing from iommu group 23
pci 0000:04:00.1: Removing from iommu group 23
pci_bus 0000:04: busn_res: [bus 04] is released
pci 0000:03:01.0: Removing from iommu group 23
pci_bus 0000:03: busn_res: [bus 03-04] is released
pci 0000:02:00.0: Removing from iommu group 22
thunderbolt 1-0:3.1: retimer disconnected
thunderbolt 1-3: device disconnected
pcieport 0000:00:07.3: pciehp: Slot(6): Link Down
pcieport 0000:00:07.3: pciehp: Slot(6): Card not present
pcieport 0000:7e:04.0: Unable to change power state from D3hot to D0, device inaccessible
pcieport 0000:7e:04.0: Runtime PM usage count underflow!
xhci_hcd 0000:7f:00.0: remove, state 1
usb usb6: USB disconnect, device number 1
usb 6-1: USB disconnect, device number 2
usb 6-1.2: USB disconnect, device number 3
xhci_hcd 0000:7f:00.0: xHCI host controller not responding, assume dead
wlan0: authenticate with b0:4e:26:9f:4a:de
wlan0: send auth to b0:4e:26:9f:4a:de (try 1/3)
usb 6-1.3: USB disconnect, device number 4
usb 6-1.3.4: USB disconnect, device number 5
usb 6-1.3.4.1: USB disconnect, device number 6
wlan0: authenticated
wlan0: associate with b0:4e:26:9f:4a:de (try 1/3)
wlan0: RX AssocResp from b0:4e:26:9f:4a:de (capab=0x1011 status=0 aid=3)
wlan0: associated
wlan0: Limiting TX power to 23 (23 - 0) dBm as advertised by b0:4e:26:9f:4a:de
IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
xhci_hcd 0000:7f:00.0: USB bus 6 deregistered
xhci_hcd 0000:7f:00.0: remove, state 1
usb usb5: USB disconnect, device number 1
usb 5-1: USB disconnect, device number 2
usb 5-1.3: USB disconnect, device number 3
usb 5-1.3.1: USB disconnect, device number 4
usb 5-1.3.2: USB disconnect, device number 5
usb 5-1.3.2.2: USB disconnect, device number 7
usb 5-1.3.4: USB disconnect, device number 6
usb 5-1.3.4.2: USB disconnect, device number 8
xhci_hcd 0000:7f:00.0: Host halt failed, -19
xhci_hcd 0000:7f:00.0: Host not accessible, reset failed.
xhci_hcd 0000:7f:00.0: USB bus 5 deregistered
pci 0000:7f:00.0: Removing from iommu group 20
pci_bus 0000:7f: busn_res: [bus 7f] is released
pci 0000:7e:02.0: Removing from iommu group 18
pci_bus 0000:80: busn_res: [bus 80-a5] is released
pci 0000:7e:04.0: Removing from iommu group 19
pci_bus 0000:7e: busn_res: [bus 7e-a5] is released
pci 0000:7d:00.0: Removing from iommu group 17
perf: interrupt took too long (4928 > 4901), lowering kernel.perf_event_max_sample_rate to 40500
cros_ec_lpcs cros_ec_lpcs.0: packet too long (3378 bytes, expected 0)
perf: interrupt took too long (6165 > 6160), lowering kernel.perf_event_max_sample_rate to 32400
cros_ec_lpcs cros_ec_lpcs.0: packet too long (15853 bytes, expected 0)
traps: ServiceWorker t[11154] trap invalid opcode ip:5600f98ac8cb sp:7fe3131fdc40 error:0 in chrome[5600f89ca000+9fc8000]
perf: interrupt took too long (7731 > 7706), lowering kernel.perf_event_max_sample_rate to 25800
cros_ec_lpcs cros_ec_lpcs.0: packet too long (2 bytes, expected 0)
ACPI: battery: [Firmware Bug]: (dis)charge rate invalid.
cros_ec_lpcs cros_ec_lpcs.0: packet too long (1792 bytes, expected 0)

Note: I am not completely sure that the Fn keys were working before I started to unload/unplug, it’s just that I got aware of it after I had undocked the laptop.

Here is the full dmesg -t

It’s a rolling Arch based distro, so it’s very likely an update that did something creative. Do you have any restore points (Rsync/TimeShift) by chance? This would allows us to roll back and diagnose what changed.

It’s been a while, but I this will

grep -i upgraded /var/log/pacman.log

or

grep -i upgraded /var/log/pacman.log | less

tell us what changed.

1 Like

There were packages updated, but it was really a bit before I started noticing the problem, so it would be a bit surprising if there was a link.

Note that I restarted after the first of these two upgrades (because it included a kernel upgrade), and immediately after restart there was no issue with Fn keys (I know it because I always use the “flight mode”/F10 key twice as soon as I land on XFce in order to activate my bluetooth mouse [it does not connect without that, I still don’t know very well why]).

OK so here are the packages that I updated a bit before, at 2023-01-23 / 03:02 UTC (in California time would be 2023-01-22 19:02):

glibc (2.36-6 -> 2.36-7)
gcc-libs (12.2.0-1 -> 12.2.1-1)
lib32-glibc (2.36-6 -> 2.36-7)
libelf (0.188-1 -> 0.188-2)
binutils (2.39-4 -> 2.40-1)
libx11 (1.8.3-5 -> 1.8.3-6)
libsysprof-capture (3.46.0-3 -> 3.46.0-3.1)
0ad (a26-3 -> a26-4)
imath (3.1.6-1 -> 3.1.6-2)
alembic (1.8.4-1 -> 1.8.4-2)
mpfr (4.2.0-1 -> 4.2.0-2)
gcc (12.2.0-1 -> 12.2.1-1)
openshadinglanguage (1.12.8.0-2 -> 1.12.8.0-3)
openimageio (2.4.6.1-3 -> 2.4.6.1-4)
openvdb (10.0.1-1 -> 10.0.1-2)
embree (3.13.5-1 -> 3.13.5-2)
libgit2 (1:1.5.0-2 -> 1:1.5.1-2)
lib32-gcc-libs (12.2.0-1 -> 12.2.1-1)
blender (17:3.4.1-7 -> 17:3.4.1-10)
clutter (1.26.4-2 -> 1.26.4-2.1)
cmake (3.25.1-1 -> 3.25.2-1)
dkms (3.0.9-1 -> 3.0.10-1)
eclib (20221012-1 -> 20221012-2) 
editorconfig-core-c (0.12.5-1 -> 0.12.6-1)
electron (22.0.2-1 -> 22.0.3-1)
elfutils (0.188-1 -> 0.188-2)
exiv2 (0.27.5-3 -> 0.27.6-1)
fuse-common (3.12.0-1 -> 3.13.0-1.2)
fuse3 (3.12.0-1 -> 3.13.0-1.2)
geoip-database (20221227-1 -> 20230120-1)
ghc-libs (9.0.2-1 -> 9.0.2-2)
giac (1.9.0.35-1 -> 1.9.0.37-1)
gpgme (1.18.0-1 -> 1.18.0-2)
grub (2:2.06.r403.g7259d55ff-1 -> 2:2.06.r415.g1a241e050-1)
gtest (1.12.1-1 -> 1.13.0-1)
haskell-texmath (0.12.5.4-18 -> 0.12.5.5-1)
inkscape (1.2.2-3 -> 1.2.2-4)
intel-gmmlib (22.3.2-1 -> 22.3.3-1)
intel-media-driver (22.6.4-1 -> 23.1.0-1)
java-environment-common (3-3.1 -> 3-5)
java-runtime-common (3-3.1 -> 3-5)
jre-openjdk-headless (19.0.1.u10-3 -> 19.0.2.u7-2)
jre-openjdk (19.0.1.u10-3 -> 19.0.2.u7-2)
java-openjfx (19.u11-1 -> 19.0.2.1.u1-1)
jdk-openjdk (19.0.1.u10-3 -> 19.0.2.u7-2)
jre11-openjdk-headless (11.0.17.u1-1 -> 11.0.18.u10-2)
jre11-openjdk (11.0.17.u1-1 -> 11.0.18.u10-2)
jdk11-openjdk (11.0.17.u1-1 -> 11.0.18.u10-2)
jre8-openjdk-headless (8.352.u08-2 -> 8.362.u09-1)
jre8-openjdk (8.352.u08-2 -> 8.362.u09-1)
jdk8-openjdk (8.352.u08-2 -> 8.362.u09-1)
qt5-base (5.15.8+kde+r165-1 -> 5.15.8+kde+r174-1)
xfsprogs (6.1.0-1 -> 6.1.1-2)
kig (22.12.1-1.1 -> 22.12.1-2)
kopeninghours (22.12.1-1.1 -> 22.12.1-2)
libcamera (0.0.3-3 -> 0.0.3-4)
libchamplain (0.12.20-3 -> 0.12.21-1.3)
libcmis (0.5.2-12 -> 0.5.2-13)
libixion (0.17.0-3 -> 0.17.0-4)
libkolabxml (1.2.1-1 -> 1.2.1-2)
libnm (1.40.8-2 -> 1.40.10-1.1)
liborcus (0.17.2-3 -> 0.17.2-4)
libtorrent-rasterbar (1:2.0.8-2 -> 1:2.0.8-3)
linux (6.1.4.artix1-1 -> 6.1.6.artix1-1)
linux-headers (6.1.4.artix1-1 -> 6.1.6.artix1-1)
maeparser (1.3.0-2 -> 1.3.0-3)
neon (0.32.4-2 -> 0.32.5-1)
nvidia-open-dkms (525.78.01-8 -> 525.78.01-12)
suitesparse (6.0.3-1 -> 7.0.1-1)
octave (7.3.0-4 -> 7.3.0-5)
p7zip (1:17.04-3 -> 1:17.04-4)
pandoc (2.19.2-54 -> 2.19.2-55)
ppl (1.2-4 -> 1.2-5)
python-shiboken2 (5.15.7-1 -> 5.15.8-5.1)
pyside2 (5.15.7-1 -> 5.15.8-5.1)
python-debugpy (1.6.5-1 -> 1.6.6-1)
python-dulwich (0.21.0-1 -> 0.21.2-1)
python-flatbuffers (23.1.4-1 -> 23.1.21-1)
python-google-auth (2.15.0-2 -> 2.16.0-1)
python-pycuda (2022.1-2 -> 2022.1-3.1)
python-rich (13.1.0-1 -> 13.2.0-2)
python-trove-classifiers (2023.1.12-1 -> 2023.1.20-1)
qgpgme (1.18.0-1 -> 1.18.0-2)
ruby-json (2.6.2-2.1 -> 2.6.3-1)
source-highlight (3.1.9-9 -> 3.1.9-10)
stress (1.0.5-1 -> 1.0.6-1)
sudo (1.9.12.p1-1 -> 1.9.12.p2-1)
telepathy-accounts-signon (2.1-2 -> 2.1-3)
tensorboard (2.11.0-2 -> 2.11.0-3)
thunar (4.18.2-1 -> 4.18.3-1)
traceroute (2.1.0-6 -> 2.1.1-1)
virtualbox (7.0.4-3 -> 7.0.6-1)
wireshark-cli (4.0.2-1 -> 4.0.3-1)
wireshark-qt (4.0.2-1 -> 4.0.3-1)
xfce4-notifyd (0.6.5-1 -> 0.7.2-1)
xfdesktop (4.18.0-1 -> 4.18.1-1)

and a little later at 2023-01-23 / 04:35 UTC (in California time would be 2023-01-22 / 20:35):

boost-libs (1.80.0-3 -> 1.81.0-2)
boost (1.80.0-3 -> 1.81.0-2)

Scrap that, I have recently changed the way I connect to the mouse, using a Logicool receiver dongle plugged in the TB dock, instead of using bluetooth. So I don’t know exactly if it was working immediately after the reboot.

Anyway, I rebooted now, and as I expected it solved itself…

I will be in touch next time it happens to allow for even further investigation.

Delighted this has been resolved. :slight_smile:

@Matt_Hartley Thank you, but I mean I new (or was quite sure) that it would resolve by rebooting. Only it was a rare occasion to jump in to try to find out why that would occur in the first place.

It’s such an odd occurrence. Tricky to drill down. Definitely grab those logs next time it happens and save a copy for inspection.

1 Like