Corellium объявляет о переносе Linux на чипы M1

Компания Corellium выпустила версию Linux, адаптированную для работы на новых компьютерах Apple, оснащенных чипом M1 . Вариант ядра Linux, совместимый с чипом Apple M1, распространяется под лицензией GPLv2, и были отправлены патчи для включения в основное ядро.

Компания Corellium обладает обширным опытом миграции Linux на чипы Apple, используемые в мобильных устройствах, таких как iPhone. На начальном этапе миграции тестировщикам было предложено ознакомиться с тем, что многие компоненты Apple M1 основаны на технологиях, уже используемых Apple в других SoC.

Однако в процессе разработки драйверов стало ясно, что всё не так просто, и чип Apple M1 включает в себя множество нестандартных решений. Поддержка 64-битных ARM SoC в Linux основана на общих строительных блоках и интерфейсах прошивки, но Apple M1 практически не использует никаких типичных решений.

Например, в обычных ARM-процессорах активация ядра ЦП осуществляется через интерфейс координации состояния питания (PSCI), предоставляемый встроенным программным обеспечением, а в Apple M1 для этого требуется манипулирование регистром MMIO.

На данном этапе разработчики Corellium превзошли проект Asahi Linux , основанный Эктором Мартином для портирования Linux на системы с чипом Apple M1, который до сих пор ограничивался обратной разработкой и экспериментами с загрузчиком. Однако ключевая задача Asahi Linux заключается не только в загрузке Linux, но и в обеспечении полной поддержки механизмов управления питанием и использовании возможностей графического процессора Apple M1, который использует определенный набор инструкций.

Патчи Corellium ограничиваются обеспечением загрузки и поддержки определенных функций чипа M1, связанных с режимом SMP, таймерами, прерываниями, обработкой состояний простоя и инициализацией.

Представители Asahi Linux приветствовали выпуск патчей Corellium и выразили готовность оказать помощь в рецензировании для ускорения широкого внедрения ядра Linux.

Кроме того, Алисса Розенцвейг (из Collabora, которая разрабатывает драйвер Panfrost GPU Mali), как сообщается, также опубликовала второй отчет о обратном проектировании и разработке драйверов с открытым исходным кодом для графического процессора Apple M1.

На текущем этапе подготовлен начальный прототип контроллера, который умеет рисовать треугольники с помощью GPU. Для графических процессоров M1 первые вершинные и фрагментные шейдеры также кодируются вручную. Драйвер ядра IOKit используется для взаимодействия с графическим процессором.

Процессор Apple M1 также использует собственный контроллер прерываний Apple (AIC), который в значительной степени несовместим со стандартными контроллерами прерываний ARM (GIC) , и другой механизм привязки прерываний от таймера. Кроме того, для управления взаимодействием между несколькими процессорами используются отдельные регистры, управляющие межпроцессорными прерываниями (IPI).

Для загрузки на компьютере Mac Mini M1 с процессором Apple M1 подготавливается готовый к использованию образ корневой файловой системы , созданный на основе сборки Ubuntu для Raspberry Pi.

Для установки скопируйте образ на USB-накопитель, подключите накопитель к порту USB-C и загрузите компьютер в режим 1TR (восстановление ОС), удерживая кнопку питания во время запуска. После появления командной строки запустите скрипт linuxsetup.sh, который установит ядро ​​и настроит среду.

В этот момент запустится Linux, а для возврата к macOS необходимо выполнить команду "bputil -n" в режиме 1TR.

Готовая сборка поддерживает USB, I2C и DART, предлагается использовать внешний USB-адаптер для сети, а аппаратное ускорение графики и расширенные периферийные устройства пока не поддерживаются. Поддержка Bluetooth требует написания нового драйвера из-за использования нестандартного протокола на основе PCIe.

Источник: https://corellium.com


Добавить в качестве предпочтительного источника в Google