1

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
  • 1
    @A.B, oh, sorry. I solved problem with WLAN button with your answer! Many thanks to you!
    – Peter
    Commented Oct 8, 2023 at 12:27

1 Answer 1

1

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:

CONFIG_HP_WMI:

HP WMI extras found in drivers/platform/x86/Kconfig

The 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 the hp_wmi kernel 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 include hp_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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .