So Why is ACPI Such A Problem in Linux?

Anyone who’s worked on Linux must’ve come across a fair share of ACPI-related problems – lockups, standby problems etc. Some of the “solutions” is to disable ACPI support by passing the noacpi parameter during boot-up. So why is ACPI so problematic under Linux?

Ankit Chaturvedi has this excellent post on this.

A quick excerpt

Problem with ACPI

So ACPI is a great specification, it lets you put your PC to sleep/suspend and save power and all. But then why does your linux box fail to recover from a suspend-resume cycle? The answer is again MS. ACPI standard was first implemented by Microsoft a long time ago, and due to the popularity of Windows hardware manufacturers chose to get their hardware passed by the Microsoft’s Hardware Compliance Tests. But herein lies the problem. Microsoft’s ACPI implementation differs slightly from the specification, and so came a lot of buggy BIOS’es that don’t fully follow the ACPI specs from Intel, which is what Linux implementation is based upon. So much for the history, now the question is, what does it affect on your system? For Linux developers, this provides a challenge as vendors are reluctant to change their BIOS to conform to Linux.ACPI In Linux

ACPI in Linux is implemented pretty straightforwardly. The ACPI specification says that a ACPI enabled OS must be able to understand AML, the ACPI Machine Language. For the linux-kernel to understand the ACPI Machine Language it needs an interpreter inside the kernel, which amounts to about 72000 lines of code alone and is part of the kernel since the 2.6 series.

Continue Reading the article over at Dumpyard – ACPI in depth

1 Comment

  1. A comprehensive resource for LINUX and other open source software, Sathya’s blog is simple, straightforward and right on target. The blog delivers what it promises – a stop solution to all things LINUX and Open source. The blog also publishes latest news with flair and delivers an insight to the readers for the latest in niche coding and development.

Leave a Reply

Your email address will not be published. Required fields are marked *