You are not logged in.
Hi all,
I have a HP wireless pavilion keyboard/mouse combo and for those that do not know the function keys do not send F1 / F2.. instead they send media keys unless you press Fn (and the F1.. key).
Apparently if one have a HP laptop ,from BIOS the action keys can be disabled or enabled,which turns off this madness.
I am asking for help from the whoever owns a HP laptop that have this "Action keys" or similar setting in BIOS and also a HP wireless keyboard and can try to capture the USB packets
when the keyboard is plugged in. Also confirm that indeed is working for the HP wireless keyboard as well..not just the laptop builtin keyboard.
Basically I want to figure out if we can send some custom control/setup packets via USB that does this Fn disable for this HP wireless keyboards.
Thank you in advance for those that offer to help.
Last edited by cgm999 (2023-03-16 13:16:30)
Offline
Tried Fn+Esc? (fnlock is typically there for HP)
Offline
Yes , fn+esc or any other combo you can find online is not working .Even HP states BIOS is the only way.. which makes me think when that is going to trigger sending some kind of "magic" usb packets to restore Function keys op codes
Offline
You're not going to control the behavior of an external keyboard via the boards firmware.
What's the *exact* model of the keyboard in question?
Offline
the exact model is "Wireless HP Pavilion 800 keyboard and mouse"
On "controlling" it.. I did figure that when keyboard is in simple boot protocol(like in BIOS which implements a limited usb stack) is going to send the normal op codes for Function keys ,problem is releasing ATL/CTRL just when the key is pressed so you can not do alt-f1 and etc
Offline
The only HW solution seems to be https://h30434.www3.hp.com/t5/image/ser … v=v2&px=-1
Otherwise you'll have to resort to https://wiki.archlinux.org/title/Map_sc … Using_udev or eg. just xmodmap to turn the media keys into F1 keys and vice versa.
Offline
Yes I did seen the fn clip solution. Not a big fan.
As for remap. the problem is .. F1 to F6 are easy since they send just 1 opcode,and I am doing already . Problem is with the others that send 2 or 3 opcodes.
Again, I am asking for someone with a HP laptop and a HP wireless keyboard to first confirm that indeed changing Action keys (or whatever the term is ) in BIOS is also setting the wireless keyboard. If that is true then I guess we can try to capture some USB packets when the usb wireless dongle is plugged in
Offline
Chances that what you hope to be the case or to exist are very, very slim to not existant. FWIW I can in so far debunk this on my work laptop, where the non-fn keys are enabled on the internal keyboard by default but not on the wireless one. So one or the other seem to not have an inherent effect here.... But what I do have is a fn lock switch at the back of the keyboard (HP wireless premium... best model description ever \s), is that not present for you?
Last edited by V1del (2023-03-16 17:36:13)
Offline
No fn lock switch on back or forth of the keyboard.
Hope someone with a similar HP KB that I have and a HP laptop can put a light on this, is fn lock controlled by BIOS ?
Offline
I am guessing that as V1del said.. there is a chance close to zero for this fn-lock to be controlled by BIOS for the HP wireless keyboards. I actually might touch a HP laptop and test ,when that is done I will update here.
I did realize that even multi op codes might be remapped .. I am thinking from a a custom hid kernel driver (like hid-primax.c). There is one catch,for f8..f12 (which set a modifier, is not going to set alt/ctrl ).
Offline
Hi all,
I did not had the chance to have a HP laptop in my hands yet (however I have no hope that will make this Fn-lock magically work as others pointed out).
Anyway , I tried to hack usbkbd.c to put the KB in simple boot mode, see my hacked module here for those that are brave enough (is based on latest linux kernel version plus some small patch):
https://github.com/cgm999/hp-pavilion-usb-linux
F1 to F12 should work,also the normal modifiers as well. The right key "| \" will not work if combined with F1-F12 , I think is possible to transform it to a CTRL modifier in usbkbd.c driver, if there is interest I guess I can give it a try.
One issue is .. mouse is no longer working via the HID interface. One can use the usbmouse.c (from https://github.com/torvalds/linux/blob/ … usbmouse.c ) , however the wheel is not working . No idea how to fix that.. I also do not care much since I have some other mouse to use instead.
EDIT:
I forgot to say that usbhid needs to exclude this device in order for usbkbd.ko to take over
# cat /etc/modprobe.d/usbhid.conf
options usbhid quirks=0x0461:0x4e90:0x0004
Last edited by cgm999 (2023-03-28 16:43:42)
Offline
As an ideea, I think we could use a RPI PICO HID remapper to make this work on any OS , again with the mouse not fully functional.
Offline