L'initiative de mise en œuvre du support de la puce Apple M1 dans Linux, promue par les projets Asahi Linux et Corellium, a atteint un stade où le bureau GNOME peut être lancé dans un environnement Linux sur un système doté de la puce Apple M1. L'affichage est organisé via un framebuffer, et le support OpenGL est assuré par le rasteriseur logiciel LLVMPipe. La prochaine étape consistera à utiliser le coprocesseur d'affichage pour un affichage jusqu'à 4K, le reverse engineering des pilotes nécessaires ayant déjà été effectué.
Le projet Asahi a réussi à intégrer un support initial des composants SoC M1 non liés au GPU dans le noyau Linux. Dans l'environnement Linux démontré, en plus des capacités du noyau standard, plusieurs patchs supplémentaires ont été appliqués concernant le PCIe, le pilote pinctrl pour le bus interne et le pilote d'affichage. Ces ajouts ont permis d'assurer la sortie vidéo et le fonctionnement de l'USB et de l'Ethernet. L'accélération graphique n'est pas encore utilisée.
Il est intéressant de noter que pour le reverse engineering du SoC M1, le projet Asahi a implémenté un hyperviseur au lieu de tenter de désassembler les pilotes de macOS, et qui s'exécute à un niveau entre macOS et la puce M1, intercep-tant et consignant toutes les opérations sur la puce en mode transparent. Parmi les caractéristiques du SoC M1 qui compliquent la mise en œuvre de la prise en charge de la puce dans des systèmes d'exploitation tiers, on mentionne l'ajout d'un coprocesseur au contrôleur d'affichage (DCP). La moitié des fonctionnalités du pilote d'affichage de macOS a été transférée vers ce coprocesseur, qui appelle ses fonctions via une interface RPC spéciale.
Les passionnés ont déjà exploré de nombreux défis de cette interface RPC, permettant d'utiliser le coprocesseur pour l'affichage à l'écran, ainsi que pour le contrôle du curseur matériel et l'exécution d'opérations de composition et de mise à l'échelle. Le problème est que l'interface RPC dépend du firmware et change à chaque version de macOS, c'est pourquoi le projet Asahi Linux prévoit de prendre en charge uniquement certaines versions de firmware. Dans un premier temps, il sera assuré la prise en charge du firmware fourni avec macOS 12 « Monterey ». Il n'est pas possible de télécharger la variante de firmware requise, car celle-ci est installée par iBoot à l'étape précédant le transfert de contrôle au système d'exploitation avec vérification par signature numérique.


Source : opennet.ru
