Hi. I am a user of ASUS FX503VD-E4082 laptop, and FX series are known for their keyboard weirdness. The problem is majority of FN key combos are not working. The only what works is:
- FN + F1 - mute volume
- FN + F2 - decrease volume
- FN + F3 - increase volume
And I’ve started to investigating things and trying to understand why it doesn’t work.
So the first thing I’ve checked is /lib/udev/hwbd.d/60-keyboard.conf file, and as far as I understood, this file is being built by something called evdev rules, which are located in the same folder.
I’ve found next ASUS section:
# Asus
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*
KEYBOARD_KEY_ed=volumeup
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr*
evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr*
evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr*
KEYBOARD_KEY_6b=f21 # Touchpad Toggle
So you see only three key combos are working. Maybe I can manually guess which addresses corresponds to each event, but I am a little bit afraid to do that, as I may override something important.
And I think that these rules are generated at the stage of installing Kernel. So the bug is hiding somewhere in hid drivers. That’s the point where I moved to custom linux builds.
I want to understand how hid driver works, but I don’t know where I can find documentation, if any exist.
Though, I sent message about this bag to creator’s of hid-asus.c module, but nobody responds.
This bug is present since ~4.15 kernel and is not being fixed. That’s why I’m trying to put my hands on it.
Maybe this topic is not that related to ParrotOS, but reporting to kernel bugs gave no results, and I hope there are some people that could help me.
Here are related topics about this problem:
https://bugs.launchpad.net/ubuntu/+source/acpi/+bug/1801980
https://bugzilla.kernel.org/show_bug.cgi?id=194557
And some of my tries to get the things work:
Thank you guys in advance.