Bug 1175646 - After bios update, some keyboard function keys not recognized.
After bios update, some keyboard function keys not recognized.
Status: RESOLVED WORKSFORME
: 1182088 (view as bug list)
Classification: openSUSE
Product: openSUSE Distribution
Classification: openSUSE
Component: Kernel
Leap 15.2
x86-64 openSUSE Leap 15.2
: P5 - None : Normal (vote)
: ---
Assigned To: openSUSE Kernel Bugs
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2020-08-23 19:38 UTC by Z B
Modified: 2022-02-21 09:22 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Z B 2020-08-23 19:38:12 UTC
I performed a bios update on a Dell precision 7530, which resolved my issue with the bug reported here: https://bugzilla.opensuse.org/show_bug.cgi?id=1175626

However, the new bios version (1.13.1) does not map the keyboard function keys correctly.  Some work (e.g., volume control, keyboard backlight) and some don't (wifi toggle, screen brightness).  Is there a way to map the new keyboard configuration in the bios so it works correctly in openSUSE?  The keyboard functions correctly in windows.  It does not work correctly in LEAP, tumbleweed or the latest fedora release.
Comment 1 Takashi Iwai 2020-08-24 16:42:48 UTC
At first, you need to figure out which raw key code is generated from which driver.  Install evtest package and run as root.  You'll be asked which device to test, and usually it's PS2 keyboard.  It might be something else, so choose the different one if your key doesn't respond.

Press key, and read the output.  For example, when I run it and press the mute key, it shows like:
Event: time 1598287040.710651, type 4 (EV_MSC), code 4 (MSC_SCAN), value a0
Event: time 1598287040.710651, type 1 (EV_KEY), code 113 (KEY_MUTE), value 1
Event: time 1598287040.710651, -------------- SYN_REPORT ------------

This means that the mute key has the key code 0xa0.

Now, look at /usr/lib/udev/hwdb.d/60-keyboard.hwdb.  This defines the special key mapping.  Modify the corresponding key entry that matches with your device.
After changing, run "systemd-hwdb" to update the hwdb table once.
Comment 2 Z B 2020-08-24 21:26:39 UTC
Thanks for the info.  However, when running evtest on the keyboard, the screen brightness buttons, hibernate button, and function lock keys produce no output whatsoever.  The wifi toggle does produce output, and in the 60-keyboard.hwdb file it is listed as "unknown".  Upon changing it to "wlan" and running systemd-hwdb update, still results in a non-functional key.  I haven't attempted to modify the others yet.
Comment 3 Takashi Iwai 2020-08-25 06:54:58 UTC
Try the test on Linux console at best.  Also, did you try different event devices?  It's not necessarily from PS2, but might be from other devices.
Comment 4 Z B 2020-08-25 18:14:27 UTC
Tried those.  The only events that produce any output are on the keyboard test.  Also, after updating systemd-hwdb with the new file, none of the function keys work at all.  Previously, volume control and keyboard backlight worked, now nothing does.  The standard keys work fine, just not the "Fn" keys.  The only thing I changed in the 60-keyboard.hwdb file was the info for the wlan, but somehow the update removed all the other functionality as well.
Comment 5 Takashi Iwai 2020-08-26 06:32:30 UTC
(In reply to Z B from comment #4)
> Tried those.  The only events that produce any output are on the keyboard
> test.  Also, after updating systemd-hwdb with the new file, none of the
> function keys work at all.  Previously, volume control and keyboard
> backlight worked, now nothing does.  The standard keys work fine, just not
> the "Fn" keys.  The only thing I changed in the 60-keyboard.hwdb file was
> the info for the wlan, but somehow the update removed all the other
> functionality as well.

Then it's possible that the keys are now handled in WMI or such layer, and maybe not supported in the Linux kernel yet.  Did you try all input events, not only PS, right?

You should try the same with the recent upstream kernel.  Just install the 5.8.x kernel from OBS Kernel:stable repo onto your current system and retest with it.
If you verify the same problem with the latest kernel, this should be handled by the upstream.
Comment 6 Z B 2020-08-26 13:19:10 UTC
I tried again with the 5.8.3 kernel, same results.  I tried all the events, including the WMI input.  No response from about half the Fn keys.  I guess I'll have to create an account on kernel.org.
Comment 7 Z B 2021-02-21 04:17:28 UTC
Submitting a bug report on kernel.org doesn't seem to do much good.  Any suggestions on how to get someone's attention who can fix the problem?
Comment 8 Miroslav Beneš 2022-02-18 11:10:02 UTC
Unfortunately, not really.

Could you share a link to bugzilla.kernel.org report, please? There is also much newer kernel now in OBS Kernel:stable project, so a test with it might be worth trying.
Comment 9 Miroslav Beneš 2022-02-18 11:34:53 UTC
*** Bug 1182088 has been marked as a duplicate of this bug. ***
Comment 10 Z B 2022-02-19 01:40:44 UTC
kernel.org bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=209049

However, I ended up downgrading the BIOS, which fixed the problem.  Unfortunately I am unable to test the newest kernel against this bug, and I don't think I'll try updating the BIOS again.  I guess this can be closed.
Comment 11 Miroslav Beneš 2022-02-21 09:22:01 UTC
Ok, let me close then. Thanks.