Еще в январе мы впервые увидели M1 под управлением настольной ОС Linux благодаря команде Corellium. Хотя это было большим достижением, у него было много недостатков, таких как отсутствие доступа к внутренней памяти и драйвера GPU.
Теперь Asahi Linux только что достигла важной вехи в том, чтобы сделать M1 пригодным для использования в качестве настольного Linux-компьютера: рабочий стол GNOME. В отличие от предыдущего достижения Correllium, в этом прорыве используется новый драйвер GPU и двойная буферизация.
Читайте дальше, чтобы понять, что это значит и как это влияет на статус Linux на M1.
asahi gnome
Алисса Розенвейг, которая уже более 7 месяцев работает над реверс-инжинирингом GPU M1, недавно опубликовала твит, демонстрирующий работу рабочего стола Gnome на «голом» оборудовании M1.
На скриншоте, приложенном к твиту, она показала, что использует Debian 11 с Gnome 3.38.4 и предварительной версией Linux 5.14. Позже она продолжила, что это работает на основном ядре с тремя модификациями. Это были:
- патчи для пин-контроллеров (Corellium и Joey Gouly)
- патчи для PCIe (Marc Zyngier и Mark Kettenis)
- Драйвер дисплея в процессе работы
Честно говоря, я просто поражен тем, что это работает с таким небольшим количеством модификаций, особенно если учесть закрытый характер M1. Это действительно невероятно.
Чем это отличается от январской демонстрации
Еще в январе Corellium продемонстрировал работу Ubuntu на M1. В отличие от той демонстрации, реализация Асахи использует двойную буферизацию, когда дисплей использует разные фреймбуферы на экране и за его пределами.
В интервью The Review она сказала: «Старые демо-версии полагаются на то, что загрузчик Apple выделяет фреймбуфер и настраивает аппаратное обеспечение дисплея на его использование. Такая настройка «единой буферизации» чревата такими графическими артефактами, как разрывы».
Далее она продолжает: «Разрыв уменьшается при использовании «двойной буферизации», когда драйвер дисплея выделяет отдельные экранный и внеэкранный фреймбуферы. Экранный буфер отображается, а внеэкранный буфер рендерится. Каждый кадр роли меняются местами, мгновенно представляя отрендеренный кадр».
Результатом этой двойной буферизации является гораздо более плавное воспроизведение, с гораздо меньшим количеством артефактов по сравнению с январской демонстрацией. Это совершенно невероятно, если учесть, что Apple хранит буферы кадров за проприетарным IOMMU (Input-output memory management unit), драйвер для которого был написан и включен в основное ядро Свеном Петером, еще одним членом Asahi.
В целом, этот прогресс совершенно невероятен и действительно демонстрирует преданность и мастерство команды Asahi. Между новыми драйверами IOMMU и дисплея, похоже, что Asahi Linux скоро будет готов для конечного потребителя. Теперь нам остается только ждать, как M1X повлияет на этот проект…