2

I've seen ACPI errors pop up on everything from Debian to Arch, and on multiple different devices. I'm aware of what ACPI is at a high level:

ACPI (Advanced Configuration and Power Interface) is an industry specification for the efficient handling of power consumption in desktop and mobile computers.

And I'm also aware that this tends to only be a noticeable error on *nix based distributions because they tend to have more verbose kernel feedback than Window$.

My questions are as follows:

  1. Who's fault is it really? Is it the manufacturer for providing bad support, or the kernel for not supporting enough?
  2. What is the "best practice" for handling these errors? In most cases I've encountered they are just an eye-sore, but is it OK to just sweep these under the rug like our friends at Microsoft?
  3. What is actually happening when these errors fire off? From the definition alone, it sounds like anything governing power would have some pretty negative side effects if it went badly, but these seem mostly passive. What is it really supposed to be doing?
Rui F Ribeiro
  • 55,929
  • 26
  • 146
  • 227
bgregs
  • 343
  • 1
  • 11

1 Answers1

3

Even though ACPI started out as an "Interface to handle power consumption", it, it has become a lot more complex and also specifies other things, like assignment of hardware resources.

The thing is that the ACPI specification is quite complex. Hardware vendors routinely violate the ACPI specification, but as they ship the hardware complete with Windows drivers, and write the drivers in such a way that the drivers deal with the broken ACPI data just fine, nobody notices. Until you try the same on Linux, which expects data according to the specification, and then you get those errors.

To make it even more interesting, ACPI data can vary depending on the OS (there are functions for ACPI to query the OS), but the query functions sometimes work and sometimes don't, sometimes attempts to give correct values for Linux while keeping to give broken values for Windows because they happen to work with the drivers, sometimes give entirely untested values for Linux etc. You can see where this is going: It's all a big mess.

My personal "best practice" it: Ignore any errors until something you need goes wrong. In that case, fiddle with the OS recognition, fiddle with kernel arguments as overrides, and if everything else fails, sit down, decompile the ACPI tables and try to figure out what exactly goes wrong. The last isn't fun.

dirkt
  • 31,679
  • 3
  • 40
  • 73