Comment by RiverCrochet
1 day ago
Most of Linux's laptop woes is due to two things:
A. ACPI which is a sprawling, overengineered mess created by Microsoft, Intel, and Toshiba, and
B. ACPI-specific things like sleep and power being tested only for Windows
B is a direct result of two things: 1) crappy outsourced firmware developers, and 2) Microsoft's 1990s strategy of disallowing OEMs from offering systems with other operating systems preinstalled.
So, not really Linux's fault. If the interfaces that controlled all the laptop goodies were exposed as normal hardware (and documented) instead of gatekept behind ACPI methods that have to be written by firmware vendors that can often barely spell the menu options correct in the setup screens, then this issue would not exist.
UEFI is ACPI's successor and carries on this legacy. It's disappointing that it's seeping into the ARM world.
> If the interfaces that controlled all the laptop goodies were exposed as normal hardware (and documented) instead of gatekept behind ACPI methods that have to be written by firmware vendors that can often barely spell the menu options correct in the setup screens, then this issue would not exist.
> UEFI is ACPI's successor and carries on this legacy. It's disappointing that it's seeping into the ARM world.
Arm (and Risc-V and other arches) Linux has https://en.wikipedia.org/wiki/Devicetree instead of ACPI, which is better in that it declaratively documents the hardware in a system and how to access it. However, the hardware support which can be found in the Arm ecosystem is in no way better than that for x86 laptops. Many SoC manufacturers still don't put any effort into upstreaming drivers or device trees, many devices are still only supported by tossing a single release of a heavily patched kernel over the corporate wall and then forgetting about them.