Инициатива по реализации поддержки в 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 на стадии до передачи управления операционной системе и с верификацией по цифровой подписи.
Источник: http://www.opennet.ru/opennews/art.shtml? num=55670