Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
September 30, 2021 12:56
October 20, 2020 16:06
December 26, 2019 15:17
October 20, 2020 16:06
October 20, 2020 16:06
October 20, 2018 03:35
May 1, 2019 11:56

Huawei WMI laptop extras linux driver

Donate Donate

NOTE: Version v2.0 is the one in mainline kernel >= 5.0, this repository is used for testing and development purposes. v3.3 has been merged in kernel 5.5

This driver adds support for some of the missing features found on Huawei laptops running linux. It implements Windows Management Instrumentation (WMI) device mapping to kernel. Supported features are:

  • Function hotkeys, implemented in v1.0
  • Micmute LED, implemented in v2.0. Updated in v3.0 to work with newer laptops.
  • Battery protection, implemented in v3.0. Updated in v3.3 to use battery charge API.
  • Fn-lock, implemented v3.0.

Battery protection can accessed from either /sys/class/power_supply/BAT0/charge_control_{start,end}_threshold or /sys/devices/platform/huawei-wmi/charge_control_thresholds

Fn-lock can be accessed from /sys/devices/platform/huawei-wmi/fn_lock_state

This driver requires kernel >= 5.1. If you're on kernel <= 5.0, please refer to tag v1.0 for kernel < 5.0 or tag v3.2 if you're running version 5.0.

Check out matebook-applet for a GUI to control Fn-lock and battery protection.


Make sure you're using kernel >= 5.0. You can get this driver from here if you want to use DKMS modules for easy installation.

Use RPM package for Fedora

Install the RPM package provided here.

Use dkms tarball installation

Note: change VER to the desired module version.

  1. Grab huawei-wmi-VER-source-only.dkms.tar.gz from here
  2. Add dkms tarball and install module
sudo dkms ldtarball --archive=huawei-wmi-VER-source-only.dkms.tar.gz
sudo dkms install huawei-wmi/VER
  1. Reboot

Build from source

  1. Make sure you have your kernel headers. In Fedora that would be:
sudo dnf install kernel-headers kernel-devel

Should be similar in other distributions. 2. Clone and update / install the module.

git clone
cd Huawei-WMI
# To update use:
sudo cp huawei-wmi.ko /lib/modules/$(uname -r)/updates/
sudo depmod
# To install use:
sudo make install

This method overwrites the exsiting version of huawei-wmi that comes with kernel 5.0. You have to redo it everytime the kernel gets updated.


NOTE: Ignore this if you're running systemd-udev > 240.

One of the keys, micmute, wouldn't work after inserting the module and that is due to an issue with X.Org. The solution would be to remap it to using udev hwdb tables. Copy 99-Huawei.hwdb to /etc/udev/hwdb.d/ then update the hwdb tables:

sudo udevadm --debug hwdb --update; sudo udevadm trigger


  • Merge driver into upstream Merged in Linux > 4.20. Commit log
  • Getting device LEDs to work See this and this
  • Support more devices
  • ACPI driver?


Fork, modify, and pull request.


  • Thanks to Daniel Vogelbacher @cytrinox and Jan Baer @janbaer for testing the module on the Matebook X (2017).
  • Big thanks to @nekr0z for testing this driver on his Matebook 13 (2019) WRT-WX9 and for his awesome project matebook-applet.
  • Thanks to @wasakakero for testing this driver on the Matebook D 14-AMD KPL-W0X.