Corellium annonce son portage de Linux vers des puces M1

Corellium a présenté une version de Linux adaptée pour fonctionner sur les nouveaux ordinateurs Apple équipés de la puce M1, la variante du noyau Linux compatible avec la puce Apple M1 est publiée sous la licence GPLv2, et des correctifs ont été soumis pour inclusion dans le noyau principal.

Corellium possède une vaste expérience dans la migration de Linux vers des puces Apple utilisé sur les appareils mobiles tels que l'iPhone. Au début de la migration, les testeurs ont été encouragés par le fait que de nombreux composants Apple M1 sont basés sur des technologies déjà utilisées par Apple dans d'autres SoC.

Mais lors du processus d'écriture des pilotes, il est devenu clair que tout n'est pas si simple et la puce Apple M1 comprend de nombreuses solutions non standard. La prise en charge par Linux des SoC ARM 64 bits est basée sur des blocs de construction communs et les interfaces de firmware, mais l'Apple M1 n'utilise guère de solutions typiques.

Par exemple, dans les SoC ARM conventionnels, l'activation des cœurs de CPU se fait via le PSCI (Power State Coordination Interface) fourni par le firmware et sur Apple M1, il nécessite la manipulation du registre MMIO.

Dans cette étape, Les développeurs de Corellium ont pris de l'avance sur le projet Asahi Linux, fondé par Héctor Martin pour porter Linux sur des systèmes avec la puce Apple M1, qui jusqu'à présent se limitait à la rétro-ingénierie et à l'expérimentation d'un bootloader. Cependant, l'objectif principal d'Asahi Linux n'est pas seulement de démarrer Linux, mais de fournir une prise en charge complète des mécanismes de gestion de l'alimentation et d'utiliser les capacités du GPU Apple M1, qui utilise un ensemble d'instructions spécifique.

Les correctifs Corellium se limitent à fournir un démarrage et une prise en charge de fonctionnalités spécifiques des puces M1 liées au mode SMP, aux temporisations, aux interruptions, à la gestion de l'état de repos et à l'initialisation

Les Les représentants d'Asahi Linux ont salué la publication des correctifs Corellium et ils ont exprimé leur volonté de fournir une assistance à la révision par les pairs pour accélérer l'adoption générale du noyau Linux.

De plus, Alyssa Rosenzweig (de Collabora qui développe le pilote Panfrost GPU Mali) aurait également publié un deuxième rapport sur l'ingénierie inverse et le développement de pilotes open source pour le GPU Apple M1.

Au stade actuel, un premier prototype du contrôleur a été préparé, qui peut dessiner des triangles à l'aide du GPU. Pour les GPU M1, les premiers shaders de sommets et de fragments sont également codés à la main. Le pilote du noyau IOKit est utilisé pour interagir avec le GPU.

L'Apple M1 utilise également son propre contrôleur d'interruption AIC (Apple Interrupt Controller), qui pour la plupart, il est incompatible avec les CPG ARM standard et un mécanisme différent pour lier les interruptions d'une minuterie. De plus, pour organiser l'interaction entre plusieurs processeurs, des registres séparés sont utilisés qui contrôlent l'IPI (interruptions inter-processeurs).

Pour démarrer sur un ordinateur Mac Mini M1 avec une puce Apple M1, une image rootfs prête à l'emploi est préparée, construit sur la base de la version Ubuntu pour Raspberry Pi.

Pour l'installer, l'image doit être copiée sur un lecteur USB, connectez cet appareil au port USB-C et démarrez l'ordinateur en mode 1TR (Recovery OS) en appuyant sur le bouton d'alimentation et en le maintenant enfoncé pendant le démarrage. Après l'apparition de la ligne de commande, vous devez exécuter le script linuxsetup.sh, qui installera le noyau et configurera l'environnement.

C'est à ce moment que Linux commencera à fonctionner, alors que pour retourner macOS, vous devez exécuter la commande "bputil -n" en mode 1TR.

Ready build prend en charge USB, I2C et DART, il est suggéré d'utiliser un adaptateur USB externe pour le réseau, tandis que l'accélération matérielle graphique et les périphériques étendus ne sont pas encore pris en charge. La prise en charge Bluetooth nécessite l'écriture d'un nouveau pilote en raison de l'utilisation d'un protocole PCIe non standard.

source: https://corellium.com


Laisser un commentaire

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

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.