You are not logged in.
I've noticed the other day that my F keys are not working as expected.
This was not the case before, I'm not completely sure when the issue started, but I'll assume less than one week ago.
I've tried to check `showkey` and pressing the F-keys gives the wrong keycode (which does not necessarily coincide with what I get by pressing Fn+F#)
The behaviour of Fn+F# it's still correct, but somehow I don't have access to any of the F-keys.
So far I was able to check my keyboard only on another device, my phone, and there the F-keys are working.
I've also tried to open a TTY terminal before loading gnome, but also in that case the F-keys are not working.
Using another keyboard at work worked just fine, restricting somehow the problem to just the iqunix keyboard.
The problem persisted in both Bluetooth and wired mode.
Since this is a fairly recent problem, I'm assuming that it's due to some recent software update and not a keyboard issue.
The manual for the keyboard has no mention of any fnlock, so I would exclude that.
I'm completely clueless on where to look next, or even how to approach the problem. Any hint or suggestion is very welcomed.
running `loginctl show-session 3 -p Type` gives
Type=x11.
More info about my system:
OS: Arch Linux x86_64
Host: 20HQS3MR00 ThinkPad X1 Carb
Kernel: 5.14.6-arch1-1
Packages: 1363 (pacman)
DE: GNOME
WM: Mutter
WM Theme: Nordic
Theme: Nordic [GTK2/3]
Icons: zafiro-icon-theme [GTK2/3]
Terminal: kitty
CPU: Intel i7-7600U (4) @ 3.900GH
GPU: Intel HD Graphics 620
Memory: 3329MiB / 15879MiB Last edited by Snaporaz (2021-09-22 06:55:29)
Offline
was not the case before … showkey
The cause is likely either the kernel or systemd (udev) - can you reproduce it w/ the LTS kernel?
pressing the F-keys gives the wrong keycode
How wrong? (What codes in particular?)
Offline
The cause is likely either the kernel or systemd (udev) - can you reproduce it w/ the LTS kernel?
This may be it!
I'll try to change the kernel, if I don't report anytime soon it means that I did something wrong
How wrong? (What codes in particular?)
Taken directly from /dev/input/event pressing F1,...,F12 (for simplicity I removed the release signals)
Event: time 1632203696.261431, type 1 (EV_KEY), code 224 (KEY_BRIGHTNESSDOWN), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203697.010130, type 1 (EV_KEY), code 225 (KEY_BRIGHTNESSUP), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203697.471346, type 1 (EV_KEY), code 120 (KEY_SCALE), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203697.932608, type 1 (EV_KEY), code 204 (KEY_DASHBOARD), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203698.269897, type 1 (EV_KEY), code 229 (KEY_KBDILLUMDOWN), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203698.596557, type 1 (EV_KEY), code 230 (KEY_KBDILLUMUP), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203698.911333, type 1 (EV_KEY), code 165 (KEY_PREVIOUSSONG), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203699.226151, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203699.541300, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203699.856490, type 1 (EV_KEY), code 113 (KEY_MUTE), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203700.171402, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632203700.542597, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1 Which are different from the one with Fn activated
Event: time 1632204126.380761, type 1 (EV_KEY), code 224 (KEY_BRIGHTNESSDOWN), value 1
Event: time 1632204126.380761, -------------- SYN_REPORT ------------
Event: time 1632204127.257923, type 1 (EV_KEY), code 225 (KEY_BRIGHTNESSUP), value 1
Event: time 1632204127.348019, -------------- SYN_REPORT ------------
Event: time 1632204127.966849, type 1 (EV_KEY), code 120 (KEY_SCALE), value 1
Event: time 1632204128.068129, -------------- SYN_REPORT ------------
Event: time 1632204128.563064, type 1 (EV_KEY), code 204 (KEY_DASHBOARD), value 1
Event: time 1632204128.653147, -------------- SYN_REPORT ------------
Event: time 1632204129.035757, type 1 (EV_KEY), code 229 (KEY_KBDILLUMDOWN), value 1
Event: time 1632204129.136788, -------------- SYN_REPORT ------------
Event: time 1632204129.496878, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00b6
Event: time 1632204129.496878, type 1 (EV_KEY), code 165 (KEY_PREVIOUSSONG), value 1
Event: time 1632204129.575563, -------------- SYN_REPORT ------------
Event: time 1632204130.059397, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00b5
Event: time 1632204130.059397, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 1
Event: time 1632204130.194252, -------------- SYN_REPORT ------------
Event: time 1632204130.689311, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00cd
Event: time 1632204130.689311, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1632204130.790535, -------------- SYN_REPORT ------------
Event: time 1632204131.274188, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00e2
Event: time 1632204131.274188, type 1 (EV_KEY), code 113 (KEY_MUTE), value 1
Event: time 1632204131.375539, -------------- SYN_REPORT ------------
Event: time 1632204133.108068, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00ea
Event: time 1632204133.108068, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1
Event: time 1632204133.209297, -------------- SYN_REPORT ------------
Event: time 1632204133.513182, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00e9
Event: time 1632204133.513182, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1
Event: time 1632204133.614496, -------------- SYN_REPORT ------------
Event: time 1632204133.917963, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0192
Event: time 1632204133.917963, type 1 (EV_KEY), code 140 (KEY_CALC), value 1Offline
Looks like some bogus Fn-lock still.
If it's not the kernel, the cause is likely in /usr/lib/udev/hwdb.d/ and likely 60-keyboard.hwdb
Offline
Now it works perfectly using
Kernel: 5.10.67-1-ltsWhere should I report this problem?
I'm still wondering why it was happening only with one keyboard.
I've tried to obtain the raw input from my keyboard, but all I could get is the output of /dev/input/event and showkey with already the wrong encoding.
More details:
I've installed linux-lts and linux-lts-headers, and added a new entry to `/boot/loader/entries/
/boot/loader/entries/arch-lts.conf
-------------------------------------
title Arch Linux LTS
linux /vmlinuz-linux-lts
initrd /initramfs-linux-lts.img
options cryptdevice=UUID="4f2ae368-9581-420d-b8d5-a07f8a4b6aa0":luks_root root=/dev/mapper/luks_root quiet rw and then run `sudo bootctl update`
Last edited by Snaporaz (2021-09-21 06:59:33)
Offline
Some wmi modules have an Fn parameter… since you stress "external" I guess this is a notebook?
lsmodOffline
Some wmi modules have an Fn parameter… since you stress "external" I guess this is a notebook?
lsmod
Ok, this was quite a journey... I manly got lost into looking at the differences between 5.14.6 and 5.10.67 on https://www.kernel.org/
In the meantime I've also run `sudo dmesg -w` to see which driver I was loading. By disconnecting and reconnecting my keyboard I've got:
[ 1323.483167] apple 0005:05AC:024F.0001: input,hidraw0: BLUETOOTH HID v0.01 Keyboard [iQunix F96 KB 1] on 1c:4d:70:24:2a:7ewhen doing the same with the LTS kernel, it shows that the driver used is `hid-generic`.
After more clules wondering I finally looked into "module.alias" for the two versions and I found the problem
/lib/modules/5.14.6-arch1-1/modules.alias
-------------------------------------------------
...
alias hid:b0005g*v000005ACp0000024F hid_apple
alias hid:b0003g*v000005ACp0000024F hid_apple
.../lib/modules/5.10.67-1-lts/modules.alias
-------------------------------------------------
...
alias hid:b0003g*v000005ACp0000024F hid_apple
...Now the b0005 is for Bluetooth while b0003 is for the USB connection (at least for me)
So the problem is solved by running
rmmod hid_appleI'm not sure if there is a more elegant way
Last edited by Snaporaz (2021-09-21 22:36:34)
Offline
Made the removal of hid-apple permanent following https://wiki.archlinux.org/title/Kernel … acklisting
/etc/modprobe.d/blacklist.conf
-------------------------------------
# Do not load hid-apple on boot
blacklist hid-appleOffline
Thanks for putting the work Snaporaz. You saved me some time.
Offline