Re: [hp_wmi] Recieving same keycode from two keys

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>
> Hi,
>
> On 11/3/20 3:51 PM, Rhys Perry wrote:
> > On Tue, 3 Nov 2020 at 14:43, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> >>
> >> Hi,
> >>
> >> Note I restored the Cc list again, please use Reply-to-all.
> >>
> >
> > Yeah, sorry about that again. I have a hotkey set for reply and am
> > using it out of habit.
> >
> >> On 11/3/20 3:25 PM, Rhys Perry wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> On 11/3/20 2:35 PM, Rhys Perry wrote:
> >>>>>>>>>> (please use reply-all so that the mailing list gets the emails as well)
> >>>>>>
> >>>>>
> >>>>> Oh, my mistake. I didn't actually know the difference between the two.
> >>>>> Sorry for any confusion this might cause in the future.
> >>>>>
> >>>>>>
> >>>>>>>> [...]
> >>>>>>>>>> Can you see any messages generated by the hp-wmi driver when these key presses occur?
> >>>>>>>>>
> >>>>>>>>> Not that I know of, unless there is some sort of debug mode that can be enabled
> >>>>>>>>>
> >>>>>>>>>>>> Now, this is not that interesting at first, I obviously just need to
> >>>>>>>>>>>> map a keycode. The confusing part is that for both the brightness up
> >>>>>>>>>>>> AND the brightness down key I get the same code (e02b). I am not to
> >>>>>>>>>>>> sure how to debug this behavior but I would appreciate if someone
> >>>>>>>>>>>> helped investigate this issue.
> >>>>>>>>>>>> I am not sure if this is relevant, but my RFKILL key does not work
> >>>>>>>>>>>> either (but does not show anything in journal).
> >>>>>>>>>>
> >>>>>>>>>> Could you please run `evtest` and see if you have a "HP WMI hotkeys" input device?
> >>>>>>>>>> If so, please select it, and then press the function keys and see if any events appear.
> >>>>>>>>>
> >>>>>>>>> After running`evtest` there is a device called "HP WMI hotkeys" (on
> >>>>>>>>> /dev/input/event16). However, after selecting it and pressing the
> >>>>>>>>> brightness keys no events appear.
> >>>>>>>>>
> >>>>>>>>>> Furthermore, you could install `acpid`, start it (something along the lines of
> >>>>>>>>>> `sudo systemctl start acpid`), then run `acpi_listen` and see if you get anything
> >>>>>>>>>> when you press the keys.
> >>>>>>>>>
> >>>>>>>>> After starting the service and running`acpi_listen`, no events appear
> >>>>>>>>> when pressing the brightness keys
> >>>>>>>>>
> >>>>>>>>>>>> Here is a link to acpidump:
> >>>>>>>>>>>> https://www.dropbox.com/s/ulyltq0gz35s79l/acpidump?dl=0
> >>>>>>>>>>>> ::: Rhys Perry :::
> >>>>>>>>> [...]
> >>>>>>>>
> >>>>>>>> Could you test other function keys like volume up/down, etc.?
> >>>>>>>>
> >>>>>>> After running some tests with evtest I have found out:
> >>>>>>> - Brightness keys: "AT Translated Set 2 keyboard" (although same keycode)
> >>>>>>> - Volume keys: "AT Translated Set 2 keyboard"
> >>>>>>> - Media keys: "AT Translated Set 2 keyboard"
> >>>>>>> - RFKILL key: (none, although there is a device called "HP Wireless hotkeys")
> >>>>>>
> >>>>>> Please install the `evemu` program suite, and run `evemu-record /dev/input/event...`
> >>>>>> for the AT keyboard, HP WMI hotkeys, and HP Wireless hotkeys; in each run press the
> >>>>>> brightness up/down, volume up/down keys in any fixed order you like, and then send
> >>>>>> the output of each run (including the part that is initially printed before
> >>>>>> receiving any events). Could you also run `acpi_listen` at the same time and
> >>>>>> see if any key presses are registered there? If yes, what was the output?
> >>>>>>
> >>>>>
> >>>>> Ok, here you go:
> >>>>> "AT Translated Set 2 Keyboard": https://0x0.st/idpK.txt
> >>>>> "HP Wireless hotkeys": https://0x0.st/idpP.txt
> >>>>> "HP WMI hotkeys": https://0x0.st/idpN.txt
> >>>>> `acpi_listen`: https://0x0.st/idpb.txt
> >>>>
> >>>> Can you also run evemu-record for the "Video Bus"
> >>>> input device and check if you get events there for the
> >>>> brightness up/down key presses?  On modern laptops events
> >>>> for the brightness keys are typically delivered there.
> >>>>
> >>>
> >>> I ran evemu-record for my "Video Bus" devices (of which I had two) and
> >>> there was nothing on those either. I quickly ran over every single
> >>> input device and I can confirm that "AT Translated Set 2 Keyboard" is
> >>> the only one that responds to brightness keys.
> >>
> >> Hmm, ok, weird.
> >>
> >> Usually at least something is generating events for this. Often
> >> we have the problem that we get the brightness keys reported
> >> by multiple input devices, this is a new problem.
> >>
> >> Can you try adding:
> >>
> >> wmi.debug_event=1
> >>
> >> To your kernel commandline and then after rebooting do:
> >>
> >> cat /proc/cmdline
> >>
> >> To check that it really is there and then do:
> >>
> >> dmesg -w
> >>
> >> To monitor kernel messages and then press the brightness
> >> up/down hotkeys and see if you get any new messages ?
> >>
> >
> > Nope, exactly the same as before:
> > ```
> > [   42.501517] atkbd serio0: Unknown key pressed (translated set 2,
> > code 0xab on isa0060/serio0).
> > [   42.501524] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.
> > [   42.512377] atkbd serio0: Unknown key released (translated set 2,
> > code 0xab on isa0060/serio0).
> > [   42.512383] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.
> > [   43.160730] atkbd serio0: Unknown key pressed (translated set 2,
> > code 0xab on isa0060/serio0).
> > [   43.160738] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.
> > [   43.171970] atkbd serio0: Unknown key released (translated set 2,
> > code 0xab on isa0060/serio0).
> > [   43.171978] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.
> > ```
>
> Ok bummer, so it looks like only get the one event and need to catch
> that (we can use i8042_install_filter() from some driver for that) and
> then when we catch it probably make some ACPI call to figure out what
> is going on. I took a quick peek at the acpidump you provided, but it is
> huge.  One thing which did stand out is that ssdt14.dsl (after disassembling)
> has:
>
>             Method (GHKS, 0, NotSerialized)
>             {
>                 Debug = "GetHotkeyState-----"
>
>
>             Method (SHKS, 1, Serialized)
>             {
>                 Debug = "SetHotkeyState-----"
>
> Which may or may not be related ... But I'm afraid I do not have
> the time to investigate that avenue further.
>

That looks promising (I think). I don't have any experience working
with this sort of stuff, so is there a place you recommend I start?

> One last thing to try (I guess) is adding the following to your kernel
> commandline and see if that changes things:
>
> acpi_backlight=video
>
> Possible other values to try are "vendor" "native" and "none"
>

Just tried all of those, sadly it's still not working.

> Regards,
>
> Hans
>

Yours Thankfully,
Rhys Perry

> p.s.
>
> I think you mentioned this before, but what was the exact model of your laptop again?
>

HP Pavilion cx-0598na. It has an i5-8300H and a 1050Ti



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux