Bug 1222391 - Fn key does not work on Lenovo Essential Wireless Combo Keyboard and Mouse Gen2
Summary: Fn key does not work on Lenovo Essential Wireless Combo Keyboard and Mouse Gen2
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Kernel:Drivers (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Kernel Bugs
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-05 20:10 UTC by Eyad Issa
Modified: 2024-04-29 14:24 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---
tiwai: needinfo? (eyadlorenzo)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eyad Issa 2024-04-05 20:10:23 UTC
I am reporting this here as I don't know if this belongs here or to the kernel bugzilla.

On openSUSE Tumbleweed the "fn" button does not work at all. On Windows, after installing a driver from the Lenovo website [1], it works.

[1]: https://datacentersupport.lenovo.com/it/it/accessories/acc500323

---
$ lsusb

...
Bus 004 Device 002: ID 1a81:1026 Holtek Semiconductor, Inc. Lenovo Essential Wireless Combo Keyboard & Mouse Gen2

---
# evtest

Available devices:
/dev/input/event0:	AT Translated Set 2 keyboard
/dev/input/event1:	ETPS/2 Elantech TrackPoint
/dev/input/event10:	Sleep Button
/dev/input/event11:	ThinkPad Extra Buttons
/dev/input/event12:	PC Speaker
/dev/input/event13:	HD-Audio Generic HDMI/DP,pcm=3
/dev/input/event14:	HD-Audio Generic HDMI/DP,pcm=7
/dev/input/event15:	HD-Audio Generic HDMI/DP,pcm=8
/dev/input/event16:	HDA Digital PCBeep
/dev/input/event17:	HD-Audio Generic Mic
/dev/input/event18:	HD-Audio Generic Headphone
/dev/input/event2:	ETPS/2 Elantech Touchpad
/dev/input/event3:	Video Bus
/dev/input/event4:	Lenovo Lenovo Essential Wireless Combo Keyboard & Mouse Gen2
/dev/input/event5:	Lenovo Lenovo Essential Wireless Combo Keyboard & Mouse Gen2 Mouse
/dev/input/event6:	Lenovo Lenovo Essential Wireless Combo Keyboard & Mouse Gen2 Consumer Control
/dev/input/event7:	Lenovo Lenovo Essential Wireless Combo Keyboard & Mouse Gen2
/dev/input/event8:	Power Button
/dev/input/event9:	Lid Switch
---

I've tried running evtest, but nothing gets detected when pressing the fn button alone, and the normal F1-F12 are detected if pressed while holding fn. Same with xev.

If I run evtest and select event6, i get _some_ fn keys displayed (some keys are right and some are wrong) but they are not detected:

---
Select the device event number [0-18]: 6
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x1a81 product 0x1026 version 0x1001
Input device name: "Lenovo Lenovo Essential Wireless Combo Keyboard & Mouse Gen2 Consumer Control"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 113 (KEY_MUTE)                 # <- this is right
    Event code 114 (KEY_VOLUMEDOWN)           # <- right
    Event code 115 (KEY_VOLUMEUP)             # <- right
    Event code 140 (KEY_CALC)                 # <- wrong. should be mic mute
    Event code 155 (KEY_MAIL)                 # <- from here on, all wrong
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
    Event code 166 (KEY_STOPCD)
    Event code 172 (KEY_HOMEPAGE)
    Event code 217 (KEY_SEARCH)
    Event code 240 (KEY_UNKNOWN)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
---

System infos:

$ cat /etc/os-release -p

NAME="openSUSE Tumbleweed"
# VERSION="20240403"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20240403"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20240403:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20240403"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
Comment 1 Takashi Iwai 2024-04-19 14:22:13 UTC
If the key code is reported from the kernel device, the remaining mapping can be rather a job in udev hwdb.  Take a look at /usr/lib/udev/hwdb.d/* files (e.g. 60-keyboard.hwdb), and you can try to adjust the key mapping.
Comment 2 Eyad Issa 2024-04-19 23:04:34 UTC
(In reply to Takashi Iwai from comment #1)
> If the key code is reported from the kernel device, the remaining mapping
> can be rather a job in udev hwdb.

The key is not reported from the kernel device with evtest though :/
Comment 3 Takashi Iwai 2024-04-20 16:22:13 UTC
Ah then I misunderstood your comment.  It showed the capabilities but not actually reported.  Hmm.

Is this a regression in the recent kernels?  Or it's always not working?
Comment 4 Eyad Issa 2024-04-20 17:40:54 UTC
Unfortunately I don't know, as I bought this keyboard recently and this is the first time I'm using it with this device.
Comment 5 Takashi Iwai 2024-04-29 14:24:55 UTC
OK, then I suppose the best would be to report to the upstream devs.  I guess it's a HID device?  You may try bugzilla.kernel.org (or better linux-hid ML).