-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hotkeys not working, every key triggers an WMI event with code 0x80 #1
Comments
Hello cytrinox, Pleaese continue the work on this project if you can. Just want to say there are people who do want this issue fixed. |
Hi @cytrinox thanks for your work 👍 Any update or ideas? I think the issue prevails in Matebook X Pro (2018) |
Hey! I'm working on a WMI driver that targets Huawei laptops. I have written one that works for the MBXP and now I think it is time to show its successor some love. I need testers to try it on both laptops and hopefully, we can get it to work for the MBX. |
@aymanbagabas Great news! I can run a test on my MBX this weekend. |
Whenever you have time, can you try if this module reports any messages to dmesg. Just compile it, insmod it and watch dmesg while you pressing the hotkeys. |
Can I compile it from your git tree? |
No it's different, here I added MBX WMI event and method. |
@aymanbagabas compiled and loaded. dmesg reports:
acpi_listen still reports 0x80 and xev receive no events when a hotkey is pressed. No kernel log message when a hot key is pressed. |
@cytrinox can you please attach a dmesg log? The acpi_call module might come handy for testing acpi methods. By looking at the DSDT table, it seems that \WMI0.WM05 is responsible for executing WMI code. |
@aymanbagabas the dmesg log contains only the line in my comment above, even if I press any hotkey after the module was loaded. |
@cytrinox can test the following with acpi_call while huawei_wmi is loaded. Observe any kernel messages.
|
@cytrinox can you try this one please, I changed the event guid. According to the bmf, this guid reports the value of \WMI0.EVCD which I believe contain the event codes for the hotkeys. |
|
Nothing changed with huawei_wmi_mbxv2.zip. acpi_listen still reports 0x80 for each hotkey, dmesg is empty. |
Try dmesg -w on a separate terminal and test the module. Look for any messages that start with 'huawei_wmi' don't use acpi_listen |
No output on dmesg -w by any of the above commands or hotkeys. |
@cytrinox So does the first one prints kernel messages with the value 0x80 on a hotkey press? If that is the case, then we are on the right track. Try the attached one and watch dmesg for any output. With MBXP, any hotkey event notifies the WMI device and then the device returns the event value. However, the MBX does not return the event value, instead, it returns the argument which does not make any sense. You can see that in the wake event under WMI0._WED. _QXX are the available events. The ones that start with 0x2XX are the ones we are interested in, it matches the MBXP. This issue might be already solved with a bios update or a patched DSDT. Do you have the latest bios? What kernel version you have? |
@aymanbagabas 0x80 is the value which is reported by acpi_listen (description of this issue) when a hot key is pressed. |
Your latest zip module has changed to output to
but still no more logs when a hotkey is pressed. |
Well, nice one. I've updated the BIOS from 1.12 to 2.06 (only a exe tool is provided to flash the bios). |
@cytrinox I'm sorry to hear that. If you have grub installed on UEFI, you could boot directly to grub from the boot menu, according to this it should be the F12 key. Then reinstall grub or set it as the default using efibootmgr.
That is my bad. I was checking if the module finds any MBXP GUIDs at the beginning and I shouldn't have done that. That is probably why we are not getting any messages back. If 0x80 is being reported by acpi_listen on guid If you still interested, please try this one. |
@aymanbagabas Not your fault, the Huawei software is sometimes crappy and/or windows-only oriented. I've fixed my EFI loaders and can again boot into Debian. i've tested your latest v4 source and it looks far better now. When pressing a hot key, the kernel log reports:
Good work! What do you need to map the returned values? Here is a list of all keys I've discovered:
|
I've modified the code a little bit, all keys are mapped and reported as XF86.... keys by xev (except MICMUTE). I've mapped the keys by using xbindkeys and it works perfectly. |
Micmute key needs remapping to F20. I don't know why F20 but it works, take a look at 99-Huawei-MBXP.hwdb |
The keyboard light toogle has worked out of the box, I think it is hardware controlled. So it should be safe to ignore this key. |
Calling acpi_listen and pressing any hotkey button result in the following output:
The code from the module (if removing the wmi_evaluate_method() call):
is called for every hotkey press, but the code value is always 0x80.
The text was updated successfully, but these errors were encountered: