Снятие архитектурного барьера
Разработчик ядра Linux Армин Вольф (Armin Wolf) представил серию патчей, которые позволяют драйверу ACPI Windows Management Instrumentation (WMI) работать на архитектуре AArch64. До этого момента драйвер был жестко привязан к x86/x86_64, что создавало барьер для портирования функциональности современных ноутбуков на базе Windows on ARM.
Проблема известна с проекта aarch64-laptops, начавшего свою работу около 2019 года. Исследователи обнаружили, что некоторые ноутбуки на Windows 10 ARM используют устройства отображения WMI-ACPI (с идентификатором PNP0C14) точно так же, как это происходит на x86-платформах. Однако ядро Linux игнорировало их из-за архитектурных ограничений в коде драйвера.
Технические детали реализации
Новый набор патчей решает проблему комплексно, затрагивая три ключевых компонента ядра. Изменения не только расширяют поддержку архитектуры, но и адаптируют существующие подсистемы:
| Компонент | Изменение | Значение |
|---|---|---|
| WMI Driver Core | Удалена привязка к x86 | Драйвер теперь может запускаться на любой архитектуре, поддерживающей ACPI |
| acpi-video | Обновление логики | Драйвер видео-подсистемы учитывает поддержку архитектур, отличных от x86 |
| Generic WMI BMOF | Включение поддержки | Расширение функционала для работы с устройствами BMOF на AArch64 |
Все изменения были протестированы на виртуальной машине с архитектурой ACPI-based aarch64, где продемонстрировали стабильную работу. Это открывает путь к тому, чтобы драйвер был принят в основное дерево ядра Linux (mainline).
Контекст и перспективы
Это событие вписывается в более широкую стратегию улучшения поддержки Qualcomm Snapdragon и других ARM-платформ в Linux. Ранее обсуждалась гибридная модель DeviceTree-ACPI, однако тренд смещается в сторону использования исключительно ACPI для будущих ноутбуков на Windows on ARM. Устранение ограничений WMI-драйвера устраняет один из последних крупных технических барьеров на пути к бесшовному опыту использования ARM-ноутбуков под Linux.
Источник: Phoronix ↗
