Démonstration de lancement de l'environnement Linux avec GNOME sur les appareils équipés de la puce Apple M1

L'initiative visant à implémenter le support Linux pour la puce Apple M1, promue par les projets Asahi Linux et Corellium, a atteint le point où il est possible d'exécuter le bureau GNOME dans un environnement Linux fonctionnant sur un système doté de la puce Apple M1. La sortie d'écran est organisée à l'aide d'un framebuffer et la prise en charge d'OpenGL est fournie à l'aide du rastériseur logiciel LLVMPipe. La prochaine étape consistera à permettre au coprocesseur d'affichage de produire une résolution jusqu'à 4K, dont les pilotes ont déjà fait l'objet d'une ingénierie inverse.

Le projet Asahi a obtenu la prise en charge initiale des composants non GPU du SoC M1 dans le noyau Linux principal. Dans l'environnement Linux démontré, en plus des capacités du noyau standard, plusieurs correctifs supplémentaires liés à PCIe, au pilote pinctrl pour le bus interne et au pilote d'affichage ont été utilisés. Ces ajouts ont permis de fournir une sortie écran et d'obtenir des fonctionnalités USB et Ethernet. L'accélération graphique n'est pas encore utilisée.

Fait intéressant, pour procéder à l'ingénierie inverse du SoC M1, le projet Asahi, au lieu d'essayer de démonter les pilotes macOS, a implémenté un hyperviseur qui s'exécute au niveau entre macOS et la puce M1 et intercepte et enregistre de manière transparente toutes les opérations sur la puce. L'une des caractéristiques du SoC M1 qui rend difficile la mise en œuvre de la prise en charge de la puce dans les systèmes d'exploitation tiers est l'ajout d'un coprocesseur au contrôleur d'affichage (DCP). La moitié des fonctionnalités du pilote d'affichage macOS est transférée du côté du coprocesseur spécifié, qui appelle les fonctions prêtes à l'emploi du coprocesseur via une interface RPC spéciale.

Les passionnés ont déjà analysé suffisamment d'appels à cette interface RPC pour utiliser le coprocesseur pour la sortie à l'écran, ainsi que pour contrôler le curseur matériel et effectuer des opérations de composition et de mise à l'échelle. Le problème est que l'interface RPC dépend du micrologiciel et change avec chaque version de macOS, donc Asahi Linux prévoit de ne prendre en charge que certaines versions du micrologiciel. Tout d'abord, le support sera fourni pour le firmware livré avec macOS 12 « Monterey ». Il n'est pas possible de télécharger la version requise du firmware, car le firmware est installé par iBoot avant le transfert du contrôle au système d'exploitation et avec vérification à l'aide d'une signature numérique.

Démonstration de lancement de l'environnement Linux avec GNOME sur les appareils équipés de la puce Apple M1
Démonstration de lancement de l'environnement Linux avec GNOME sur les appareils équipés de la puce Apple M1


Source: opennet.ru

Ajouter un commentaire