Corellium annoncerer sin havn af Linux til M1-chips

Corellium har udgivet en version af Linux, der er tilpasset til at køre på de nye Apple-computere udstyret med M1 -chippen . Den variant af Linux-kernen, der er kompatibel med Apple M1-chippen, er udgivet under GPLv2-licensen, og der er blevet indsendt programrettelser til inkludering i hovedkernen.

Corellium har omfattende erfaring med at migrere Linux til Apple-chips, der bruges i mobile enheder som iPhone. I den indledende migreringsfase blev testerne opfordret til at erfare, at mange af Apple M1's komponenter er baseret på teknologier, der allerede bruges af Apple i andre SoC'er.

Men under driverudviklingsprocessen blev det klart, at tingene ikke er så enkle, og Apple M1-chippen indeholder mange ikke-standardiserede løsninger. Linux-understøttelse af 64-bit ARM SoC'er er afhængig af almindelige byggesten og firmware-grænseflader, men Apple M1 bruger næsten ingen typiske løsninger.

For eksempel, i konventionelle ARM SoC'er, sker CPU-kerneaktivering via PSCI (Power State Coordination Interface), der leveres af firmwaren, og i Apple M1 kræver det manipulation af MMIO-registeret.

På nuværende tidspunkt har Corelliums udviklere overhalet Asahi Linux-projektet , grundlagt af Héctor Martin for at portere Linux til systemer med Apple M1-chippen, som indtil nu har været begrænset til reverse engineering og eksperimentering med en bootloader. Asahi Linux' hovedmål er dog ikke kun at starte Linux, men også at yde fuld understøttelse af strømstyringsmekanismer og udnytte mulighederne i Apple M1 GPU'en, som bruger et specifikt instruktionssæt.

Corellium-patches er begrænset til at give opstart og understøttelse af specifikke M1-chipfunktioner relateret til SMP-tilstand, timere, afbrydelser, håndtering af inaktiv tilstand og initialisering.

Repræsentanter fra Asahi Linux hilste udgivelsen af ​​Corellium-patcherne velkommen og udtrykte deres villighed til at yde peer review-assistance for at fremskynde den almindelige implementering af Linux-kernen.

Derudover har Alyssa Rosenzweig (fra Collabora, der udvikler Panfrost GPU Mali-driveren) også siget at have offentliggjort en anden rapport om reverse engineering og udvikling af open source-drivere til Apple M1 GPU.

På nuværende tidspunkt er der udarbejdet en indledende prototype af controlleren, som kan tegne trekanter ved hjælp af GPU'en. For M1 GPU'er er den første vertex og fragment shaders også håndkodet. Kernedriveren IOKit bruges til at interagere med GPU'en.

Apple M1 bruger også sin egen Apple Interrupt Controller (AIC), som stort set er inkompatibel med standard ARM GIC'er , og en anden mekanisme til at binde afbrydelser fra en timer. Derudover bruges separate registre, der styrer IPI (interprocessor-afbrydelser), til at styre interaktionen mellem flere processorer.

For at starte på en Mac Mini M1-computer med en Apple M1-chip, forberedes et brugsklart rootfs-billede , bygget på basis af Ubuntu-buildet til Raspberry Pi.

For at installere skal du kopiere billedet til et USB-drev, tilslutte drevet til USB-C-porten og starte computeren i 1TR-tilstand (gendannelses-OS) ved at holde tænd/sluk-knappen nede under opstart. Når kommandolinjen vises, skal du køre scriptet linuxsetup.sh, som installerer kernen og konfigurerer miljøet.

Det er her, Linux begynder at køre, mens du skal køre kommandoen "bputil -n" i 1TR-tilstand for at returnere macOS.

Ready build understøtter USB, I2C og DART, det anbefales at bruge ekstern USB-adapter til netværk, mens grafikhardwareacceleration og udvidet periferiudstyr endnu ikke understøttes. Bluetooth-support kræver, at du skriver en ny driver på grund af brugen af ​​en ikke-standard PCIe-baseret protokol.

Kilde: https://corellium.com


Tilføj som foretrukken kilde i Google