ACPI_WMI(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’… ACPI_WMI(4) πŸ’…

okay bestie, so this is the manual page for acpi_wmi, a driver from the Kernel Interfaces Manual (the (4) means "device driver," iykyk). Buckle up πŸ’–


✨ NAME ✨

acpi_wmi β€” the ACPI to WMI mapping driver 🌸


πŸ¦‹ SYNOPSIS πŸ¦‹

So, to compile this driver straight into the kernel, you gotta put this line in your kernel configuration file, no cap:

device acpi_wmi

OR, alternative vibe: load it as a module at boot time πŸŽ€ β€” just drop this line into loader.conf(5):

acpi_wmi_load="YES"

πŸ’œ DESCRIPTION πŸ’œ

so the acpi_wmi driver is literally the interface for vendor specific WMI implementations (think HP and Acer laptops, like, the whole crew πŸ’»βœ¨). It creates /dev/wmistat%d, which you can read to get all the info about the GUIDs that are chilling in your system. Obsessed 🫢


πŸŽ€ FILES πŸŽ€

  • /dev/wmistat%d β€” the WMI status devices, periodt πŸ’…

⭐ SYSCTLS ⭐

The following sysctl node is currently implemented (yes, just this one rn):

  • dev.acpi_wmi.%d.bmof β€” binary Managed Object Format (MOF) buffer πŸ“¦

πŸ”₯ EXAMPLES πŸ”₯

✨ Read GUIDs from the first WMI interface found in the system ✨

# cat /dev/wmistat0
GUID                                  INST EXPE METH STR EVENT OID
{5FB7F034-2C63-45E9-BE91-3D44E2C707E4}   1 NO   WMAA NO  NO    AA
{95F24279-4D7B-4334-9387-ACCDC67EF61C}   1 NO   NO   NO  0x80+ -
{2B814318-4BE8-4707-9D84-A190A859B5D0}   1 NO   NO   NO  0xA0  -
{05901221-D566-11D1-B2F0-00A0C9062910}   1 NO   NO   NO  NO    AB
{1F4C91EB-DC5C-460B-951D-C7CB9B4B8D5E}   1 NO   WMBA NO  NO    BA
{2D114B49-2DFB-4130-B8FE-4A3C09E75133}  57 NO   NO   NO  NO    BC
{988D08E3-68F4-4C35-AF3E-6A1B8106F83C}  20 NO   NO   NO  NO    BD
{14EA9746-CE1F-4098-A0E0-7045CB4DA745}   1 NO   NO   NO  NO    BE
{322F2028-0F84-4901-988E-015176049E2D}   2 NO   NO   NO  NO    BF
{8232DE3D-663D-4327-A8F4-E293ADB9BF05}   0 NO   NO   NO  NO    BG
{8F1F6436-9F42-42C8-BADC-0E9424F20C9A}   0 NO   NO   NO  NO    BH
{8F1F6435-9F42-42C8-BADC-0E9424F20C9A}   0 NO   NO   NO  NO    BI

🌈 Read first WMI interface description with bmf2mof from ports/converters/bmfdec 🌈

# sysctl -b dev.acpi_wmi.0.bmof | bmf2mof
[abstract]
class Lenovo_BIOSElement {
};

[WMI, Dynamic, Provider("WMIProv"), WmiExpense(1), Description("Bios Setting"),
GUID("{51F5230E-9677-46cd-A1CF-C0B23EE34DB7}"), Locale("MS\0x409")]
class Lenovo_BiosSetting : Lenovo_BiosElement {
  [key, read] String InstanceName;
    [read] Boolean Active;
      [WmiDataId(1), Description("BIOS setting")] String CurrentSetting;
      };
   ...

🌸 SEE ALSO 🌸


πŸ‘‘ STANDARDS πŸ‘‘

Windows Instrumentation: WMI and ACPI, Microsoft Corporation, and here's the link so you can go read it yourself bestie:

https://github.com/microsoft/Windows-driver-samples/tree/main/wmi/wmiacpi

(i wrote it on one line above so it's easier to copy, but in the original it's line-wrapped like this: https://github.com/microsoft/Windows-driver- then samples/tree/main/wmi/wmiacpi. β€” same URL, promise 🫢)


🧚 HISTORY 🧚

The acpi_wmi device driver first appeared in FreeBSD 8.0. iconic behavior, honestly πŸ’…βœ¨


πŸ“ AUTHORS πŸ“

  • The acpi_wmi driver was written by Michael Gmelin <freebsd@grem.de> πŸ‘‘
  • Work inspired by the Linux acpi-wmi driver written by Carlos Corbacho πŸ’œ
  • MOF handling inspired by the Linux wmi-bmof driver written by Andy Lutomirski πŸ¦‹
  • This manual page was written by Michael Gmelin <freebsd@grem.de> πŸ’–

aaaand that's the whole thing bestie, go forth and read your GUIDs 🌈✨

sign-off corner: this beauty ships from Debian, dated June 12, 2025 β€” screenshot it, frame it, it's giving documentation royalty πŸŽ€πŸ’…

πŸ“¦ where this page comes from