Продемонстровано запуск Linux-оточення з GNOME на пристроях з чіпом Apple M1

Ініціатива щодо реалізації підтримки в Linux чіпа Apple M1, що просувається проектами Asahi Linux і Corellium, досягла рівня, при якому став можливий запуск робочого столу GNOME в Linux-оточенні, запущеному на системі з чіпом Apple M1. Виведення на екран організоване за допомогою framebuffer, а підтримка OpenGL забезпечена за допомогою програмного розтеризатора LLVMPipe. Наступним кроком стане задіяння дисплейного співпроцесора для виведення з роздільною здатністю до 4K, зворотний інжиніриг драйверів для якого вже проведено.

Проект Asahi досяг включення в основний склад ядра Linux початкової підтримки компонентів SoC M1, не пов'язаних з GPU. У продемонстрованому Linux-оточенні, крім можливостей штатного ядра, використано кілька додаткових патчів, пов'язаних з PCIe, драйвером pinctrl для внутрішньої шини та дисплейним драйвером. Зазначені доповнення дозволили забезпечити виведення на екран та домогтися роботи USB та Ethernet. Прискорення графіки поки що не використовується.

Цікаво, що для зворотного інжинігінгу SoC M1 проект Asahi замість спроб дизасемблювання драйверів macOS реалізував гіпервізор, що виконується на рівні між macOS і чіпом M1 і в прозорому режимі перехоплює і журналує всі операції з чіпом. З особливостей SoC M1, що ускладнюють реалізацію підтримки чіпа в сторонніх ОС, згадується додавання співпроцесора в дисплейний контролер (DCP). На бік зазначеного співпроцесора винесено половину функціональності дисплейного драйвера macOS, що викликає готові функції співпроцесора через спеціальний RPC-інтерфейс.

Ентузіасти вже розібрали достатньо викликів даного RPC-інтерфейсу, щоб задіяти співпроцесор для виведення на екран, а також для управління апаратним курсором та виконанням операцій композитингу та масштабування. Проблема полягає в тому, що RPC-інтерфейс залежить від прошивки та змінюється в кожній версії macOS, тому в Asahi Linux планується реалізувати підтримку лише певних версій прошивок. В першу чергу буде забезпечена підтримка прошивки, що постачається в MacOS 12 «Monterey». Завантажити потрібний варіант прошивки неможливо, оскільки прошивку встановлює iBoot на стадії до передачі управління операційній системі і з верифікацією по цифровому підпису.

Продемонстровано запуск Linux-оточення з GNOME на пристроях з чіпом Apple M1
Продемонстровано запуск Linux-оточення з GNOME на пристроях з чіпом Apple M1


Джерело: opennet.ru

Додати коментар або відгук