La iniciativa para implementar soporte en Linux para el chip Apple M1, promovida por los proyectos Asahi Linux y Corellium, ha alcanzado un nivel que permite ejecutar el escritorio GNOME en un entorno Linux en un sistema con el chip Apple M1. La salida a pantalla se organiza mediante framebuffer, y el soporte de OpenGL se proporciona a través del rasterizador de software LLVMPipe. El siguiente paso será utilizar el coprocesador de pantalla para proporcionar una salida con resolución de hasta 4K, cuyo reverso de ingeniería del controlador ya ha sido realizado.
El proyecto Asahi logró incluir en el núcleo principal de Linux el soporte inicial para los componentes SoC M1 que no están relacionados con la GPU. En el entorno Linux demostrado, además de las capacidades del núcleo estándar, se utilizaron varios parches adicionales relacionados con PCIe, el controlador pinctrl para el bus interno y el controlador de pantalla. Estas adiciones han permitido la salida a pantalla y han logrado que USB y Ethernet funcionen. La aceleración gráfica aún no se utiliza.
Es interesante que para la reversa de ingeniería del SoC M1, el proyecto Asahi, en lugar de intentar desensamblar los controladores de macOS, implementó un hipervisor que opera en un nivel entre macOS y el chip M1, interceptando y registrando todas las operaciones con el chip de manera transparente. Entre las características del SoC M1 que dificultan la implementación de soporte para el chip en sistemas operativos de terceros, se menciona la adición de un coprocesador en el controlador de pantalla (DCP). La mitad de la funcionalidad del controlador de pantalla de macOS ha sido transferida a este coprocesador, que invoca funciones preparadas a través de una interfaz RPC especial.
Los entusiastas ya han analizado suficientes llamadas de esta interfaz RPC para implementar el coprocesador para la salida a pantalla, así como para controlar el cursor de hardware y realizar operaciones de composición y escalado. El problema radica en que la interfaz RPC depende del firmware y cambia con cada versión de macOS, por lo que en Asahi Linux se planea implementar soporte solo para ciertas versiones del firmware. En primer lugar, se garantizará el soporte para el firmware suministrado en macOS 12 "Monterey". No es posible descargar una versión específica del firmware, ya que el firmware es instalado por iBoot antes de transferir el control al sistema operativo y con verificación mediante firma digital.


Fuente: opennet.ru
