I have a Compaq CQ58 laptop with fresh Debian 12. I would like to fix one problem, namely the non-working WLAN on/off button. Constantly lights up yellow (it should be either yellow or blue) and does not respond to pressing. xev does not catch its pressing.
- 1@A.B, oh, sorry. I solved problem with WLAN button with your answer! Many thanks to you!Peter– Peter2023-10-08 12:27:52 +00:00Commented Oct 8, 2023 at 12:27
1 Answer
Debian 12 ships with the latest Linux LTS when it was released: Linux 6.1
For the 6.1 version the driver handling WMI keys exists:
HP WMI extras found in
drivers/platform/x86/KconfigThe configuration item CONFIG_HP_WMI:
- prompt: HP WMI extras
- [...]
- found in Linux kernels: 2.6.29–2.6.39, 3.0–3.19, 4.0–4.20, 5.0–5.19, 6.0–6.1 modules built:
hp-wmi,hp-wmi,hp-wmi[...]
Say Y here if you want to support WMI-based hotkeys on HP laptops and to read data from WMI such as docking or ambient light sensor state.
But actually there's an additional toggle to get this option: X86_PLATFORM_DRIVERS_HP which appeared in 6.2 and was backported to 6.1 later. This created a regression, because this new option wasn't enabled in Debian's kernel 6.1:
$ grep CONFIG_X86_PLATFORM_DRIVERS_HP /boot/config-6.1.0-12-amd64 # CONFIG_X86_PLATFORM_DRIVERS_HP is not set resulting in no CONFIG_HP_WMI option appearing at all in Debian's kernel. Older kernels (such as linux-image-6.1.0-9-amd64) still provided this driver.
What can be done now?
Debian 12 offers currently in backports Linux 6.4.4 (pulling
linux-image-6.4.0-0.deb12.2-amd64) which does enable this option and thus does provide thehp_wmikernel module.Instructions on activating backports: https://backports.debian.org/Instructions/
Or you can use https://snapshot.debian.org/ in a similar way to use the latest provided kernel before the regression:
linux-image-6.1.0-9-amd64(does includehp_wmi).
Once booted in an adequate kernel, please verify that the module hp_wmi (from file hp-wmi.ko) is loaded:
lsmod | grep hp_wmi If not, as root (so using first su - or sudo -i) attempt to load it with:
modprobe hp_wmi If it tells nothing chances are it's working. If it returns something like:
modprobe: ERROR: could not insert 'hp_wmi': No such device that would mean this answer didn't solve the problem (ie: the module doesn't recognize the current hardware).
What should be done later?
Using a -backports kernel is not recommended, because it doesn't receive any timely security update. Likewise, keeping an older kernel means it's not updated.
Switching the kernel to a testing/unstable kernel, while not best practice would be better than backports, but some adequate care must be done to avoid upgrading by mistake the whole Debian 12 into testing/unstable.
Really, you should file a Debian bug for the kernel (can't tell if this should be for kernel or for linux) asking that CONFIG_X86_PLATFORM_DRIVERS_HP and HP_WMI get enabled in Debian 12's stable kernel because it's causing a regression.