You are not logged in.

#1 2021-09-20 18:35:25

Snaporaz
Member
From: Switzerland
Registered: 2020-03-23
Posts: 11

[SOLVED] External Keyboard (iqunix) F keys not working

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

#2 2021-09-20 22:16:35

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,257

Re: [SOLVED] External Keyboard (iqunix) F keys not working

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?)

Online

#3 2021-09-21 06:10:19

Snaporaz
Member
From: Switzerland
Registered: 2020-03-23
Posts: 11

Re: [SOLVED] External Keyboard (iqunix) F keys not working

seth wrote:

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

seth wrote:

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 1

Offline

#4 2021-09-21 06:50:38

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,257

Re: [SOLVED] External Keyboard (iqunix) F keys not working

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

Online

#5 2021-09-21 06:58:30

Snaporaz
Member
From: Switzerland
Registered: 2020-03-23
Posts: 11

Re: [SOLVED] External Keyboard (iqunix) F keys not working

Now it works perfectly using

Kernel: 5.10.67-1-lts

Where 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

#6 2021-09-21 07:16:44

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,257

Re: [SOLVED] External Keyboard (iqunix) F keys not working

Some wmi modules have an Fn parameter… since you stress "external" I guess this is a notebook?

lsmod

Online

#7 2021-09-21 22:32:53

Snaporaz
Member
From: Switzerland
Registered: 2020-03-23
Posts: 11

Re: [SOLVED] External Keyboard (iqunix) F keys not working

seth wrote:

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:7e

when 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_apple

I'm not sure if there is a more elegant way

Last edited by Snaporaz (2021-09-21 22:36:34)

Offline

#8 2021-09-22 06:55:08

Snaporaz
Member
From: Switzerland
Registered: 2020-03-23
Posts: 11

Re: [SOLVED] External Keyboard (iqunix) F keys not working

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-apple

Offline

#9 2021-11-12 02:47:39

n3t5
Member
Registered: 2016-08-25
Posts: 5

Re: [SOLVED] External Keyboard (iqunix) F keys not working

Thanks for putting the work Snaporaz. You saved me some time.

Offline

Board footer

Powered by FluxBB