Le plan d’Asahi pour Linux sur le nouveau silicium d’Apple montre que Cupertino est revenu à l’essentiel avec le démarrage d’iOS

  • FrançaisFrançais


  • Le projet Asahi Linux a publié le premier rapport d’étape détaillant ses efforts pour porter Linux sur la plate-forme Apple Silicon.

    Le long article de blog décrit en détail les défis auxquels le projet est confronté pour comprendre comment la puce électronique propriétaire d’Apple fonctionne à un niveau fondamental, ainsi que le contournement des diverses bizarreries non standard qui limitent la capacité de démarrer un fonctionnement tiers. systèmes.

    Le rapport, rédigé par Hector Martin, un hacker du noyau et co-fondateur d’Asahi Linux, ne se conclut malheureusement pas par un lien vers une distribution Linux pleinement opérationnelle. Cependant, cela illustre à quel point les Mac basés sur Apple Silicon s’écartent des normes que vous pourriez généralement voir.

    Le processus de démarrage, par exemple, n’est pas ce que vous vous attendez à voir sur un système ARM64 conventionnel, mais plutôt “un mécanisme Apple sur mesure” provenant des premiers jours d’iOS, avec des éléments de conception dérivés de la spécification Open Firmware comme on le voit avec les Mac ROM du Nouveau Monde.

    Cela a forcé le projet Asahi Linux à développer un chargeur de démarrage sur mesure pour les machines Apple Silicon appelé m1n1, qui vise à prendre en charge autant d ‘«Apple-isms» que possible. Mais c’est un peu plus que ça.

    Les origines de m1n1 résident dans mini, un projet créé par Martin dans le cadre de ses recherches sur le jailbreaking de la Nintendo Wii. Bien qu’il prenne en charge le démarrage de code tiers, il permet également aux chercheurs de contrôler la machine en temps réel à partir d’un ordinateur de développement. En utilisant son shell interactif ou en écrivant de simples scripts Python, vous pouvez énumérer le fonctionnement du processeur Apple Silicon à un niveau bas et nu.

    Cela a permis à l’équipe Asahi Linux d’identifier les fonctionnalités distinctes du processeur Apple Silicon M1, telles que les bits de configuration conçus pour améliorer les performances lors de l’exécution de code x86 dans Rosetta.

    «En utilisant m1n1, nous avons travaillé d’arrache-pied pour documenter les instructions Arm personnalisées d’Apple, les registres système spécifiques à Apple, le matériel tel que le contrôleur d’interruption Apple, etc.», a écrit Martin.

    Logo Asahi Linux

    Le projet Asahi financé par le crowdfunding vise une expérience Linux “ raffinée ” sur Apple Silicon

    LIRE LA SUITE

    Cette énumération s’est avérée utile car, comme indiqué, Apple Silicon est un système complètement distinct et propriétaire. Il n’y a presque pas de documentation sur son fonctionnement et son comportement diverge des autres puces ARM64.

    Martin note que lorsque la puce est inactive, il y a une chance qu’elle choisisse de «power gate», ce qui voit des parties du processeur éteintes pour réduire la consommation d’énergie. Cela a pour effet secondaire d’effacer le contenu des registres, sauf pour le pointeur de pile et le compteur de programme, provoquant le plantage de Linux.

    Heureusement, l’équipe Asahi Linux a pu identifier un moyen de désactiver cette fonctionnalité particulière en fournissant une valeur spécifique à un registre matériel propriétaire d’Apple, permettant à leur travail de continuer. D’autres «Apple-ismes» qui se sont révélés frustrants comprenaient une approche entièrement personnalisée des exceptions et de la minuterie du système.

    En lisant le rapport, la plus grande surprise à propos de la plate-forme Apple Silicon est de savoir à quel point sa lignée provient de produits plus anciens. Le processus de démarrage, comme indiqué, est dérivé de celui utilisé pour la première fois sur iOS. La puce UART, utilisée pour les communications série, a été fabriquée par Samsung – une société qui, note Martin, a fourni le SoC pour les premiers iPhones. Le matériel I2C a été conçu à l’origine par PA Semi, désormais propriété d’Apple, avec une conception basée sur une puce PWRficient également utilisée dans l’AmigaOne X1000.

    Cela a conduit à une situation inhabituelle où un clone d’Amiga de 2010, exécutant un dérivé d’un système d’exploitation qui a atteint son apogée à la fin des années 1980, a joué un rôle dans la documentation des machinations internes des derniers Mac.

    Grâce à un travail d’enquête minutieux, le projet Asahi Linux a pu apporter un environnement Linux limité à la plate-forme Apple Silicon M1. Cependant, il est loin d’être un système fonctionnel et à part entière. Il n’y a pas de pilote d’affichage réel, par exemple, avec le projet utilisant à la place le framebuffer de base fourni par le firmware.

    «Comme ce n’est pas un pilote d’affichage approprié, il n’y a aucun moyen de changer les résolutions, de gérer le branchement à chaud de l’écran ou même de mettre les écrans en veille. C’est suffisant pour le développement et les démos, mais nous devrons écrire un pilote de contrôleur d’affichage approprié en temps voulu », a écrit Martin. Pendant ce temps, le GPU reste une boîte noire, avec des travaux de rétro-ingénierie toujours en cours.

    Le projet Asahi Linux n’est pas le seul effort pour amener Linux à Apple M1, Corellium réussissant à démarrer un port d’Ubuntu sur le dernier et le meilleur Mac Mini. Cela aussi est dans les premiers jours, avec la prise en charge de l’accélération graphique et de la mise en réseau manifestement absente. ®

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *