Гектор Мартин (Hector Martin), предложил включить в ядро Linux первый набор патчей, подготовленных проектом Asahi Linux, ведущим работу по адаптации Linux для компьютеров Mac, оснащённых ARM-чипом Apple M1. Указанные патчи уже одобрены сопровождающим ветки Linux SoC и приняты в кодовую базу Linux-next, на основе которой формируется функциональность ядра 5.13. Технически, Линус Торвальдс может блокировать поставку предложенных изменений, но такое развитие событий оценивается как маловероятное.
Патчи включают в себя поддержку компонентов SoC M1, не связанных с GPU, таких как контроллер прерываний, таймер, UART, SMP, функции для организации ввода/вывода и MMIO. Обратный инжиниринг GPU пока не завершён, для организации вывода в патчах предоставляется поддержка фреймбуфера и консоли через последовательный порт. Из устройств заявлена поддержка компьютера Apple Mac mini, который используется в качестве эталонной платформы в проекте Asahi Linux (имеется подробная инструкция по установке).
Отдельно развивается открытый аппаратный адаптер, признанный упростить подключение к консоли через последовательный порт и проведение отладки. В текущем виде, из-за использования компанией Apple в своём оборудовании нестандартных команд USB-PD, наиболее простым способом доступа к консоли является подключения к другому компьютеру на базе чипа Apple M1 с использованием кабеля USB C. Более сложный способ заключается в создании развязки на базе микроконтроллера Arduino, чипа FUSB30 и адаптера UART-TTL.
Проектом также подготовлен загрузчик m1n1, дающий возможность загрузить ядро Linux и минимальное системное окружение на компьютерах Mac с CPU Apple M1. Компания Apple на компьютерах с CPU M1 в штатном режиме разрешает загружать незаверенные цифровой подписью ядра без необходимости применения jailbreak. Данная особенность даёт возможность разработчикам экспериментировать с новыми ядрами XNU, но при попытке загрузки других систем возникают трудности, так как Apple использует собственный протокол загрузки и иной формат Device Tree. Предложенный проектом Asahi Linux загрузчик m1n1 выступает в роли прослойки, дающей возможность использовать стандартный Device Tree и штатный протокол загрузки, используемый в ядре Linux для ARM64. В дальнейшем в m1n1 планируется добавить возможность вызова U-Boot и GRUB для организации типового процесса загрузки, аналогичного тому, что используется на других платформах ARM64.
В ядре Linux 5.13 появится начальная поддержка CPU Apple M1
Также по теме: