Corellium on esittänyt Linux-version, joka on mukautettu ajaa uusilla Apple-tietokoneilla, jotka on varustettu sirulla M1, Apple M1 -piirin kanssa yhteensopiva Linux-ytimen muunnos julkaistaan ​​GPLv2-lisenssillä, ja korjaustiedostoja on lähetetty sisällyttämistä pääydinyn.
Corelliumilla on laaja kokemus siirtymisestä Linuxista Apple-siruihin käytetään mobiililaitteissa, kuten iPhonessa. Siirtymisen alkuvaiheessa testaajia rohkaistiin, että monet Apple M1 -komponentit perustuvat tekniikoihin, joita Apple on jo käyttänyt muissa SoC-laitteissa.
Mutta ajureiden kirjoittamisen aikana kävi selväksi, että kaikki ei ole niin yksinkertaista ja Apple M1 -piiri sisältää monia epätyypillisiä ratkaisuja. Linux-tuki ARM 64-bittisille SoC: ille perustuu yleisiin rakennuspalikoihin ja laiteohjelmistoliitännät, mutta Apple M1 tuskin käyttää tyypillisiä ratkaisuja.
Esimerkiksi tavanomaisissa ARM SoC: issa CPU-ytimien aktivointi tapahtuu laiteohjelmiston ja PSCI: n (Power State Coordination Interface) kautta. Apple M1: ssä se vaatii MMIO-rekisterin manipulointia.
Tässä vaiheessa Corellium-kehittäjät pääsivät eteenpäin Asahi Linux -projektista, jonka Héctor Martin perusti siirtämään Linux-järjestelmiä Apple M1 -piirillä, joka on tähän asti rajoittunut käänteiseen suunnitteluun ja käynnistyslataimen kokeiluihin. Asahi Linuxin päätavoitteena ei kuitenkaan ole vain käynnistää Linux, vaan tarjota täysi tuki virranhallintamekanismeille ja käyttää tiettyjä ohjeita käyttävän Apple M1 GPU: n ominaisuuksia.
Corellium-korjaustiedostot rajoittuvat käynnistyksen ja tuen tarjoamiseen erityisominaisuuksille M1-siruista, jotka liittyvät SMP-tilaan, ajastimiin, keskeytyksiin, lepotilan käsittelyyn ja alustamiseen.
Los Asahi Linuxin edustajat olivat tyytyväisiä Corellium-korjaustiedostojen julkaisemiseen ja he ilmaisivat halukkuutensa tarjota vertaisarviointia apua Linux-ytimen yleisen käyttöönoton nopeuttamiseksi.
Lisäksi Alyssa Rosenzweigin (Collaborasta, joka kehittää Panfrost GPU Mali -ohjaimen) on sanottu julkaisleen toisen raportin käänteisestä suunnittelusta ja avoimen lähdekoodin ohjaimien kehittämisestä Apple M1 GPU: lle.
Nykyisessä vaiheessa on laadittu ohjaimen alkuperäinen prototyyppi, joka voi piirtää kolmioita GPU: lla. M1-näytönohjaimille myös ensimmäinen kärki ja fragmenttivarjostimet koodataan käsin. Ytimen ohjainta IOKit käytetään vuorovaikutuksessa GPU: n kanssa.
Apple M1 käyttää myös omaa AIC-keskeytysohjainta (Apple Interrupt Controller), joka suurimmaksi osaksi se on yhteensopimaton ARM GIC -levyjen kanssa ja erilainen mekanismi keskeytysten sitomiseksi ajastimesta. Lisäksi useiden prosessorien välisen vuorovaikutuksen järjestämiseksi käytetään erillisiä rekistereitä, jotka ohjaavat IPI: tä (prosessorien väliset keskeytykset).
Käynnistäminen Mac Mini M1 -tietokoneelle, jossa on Apple M1 -piiri, käyttövalmis rootfs-kuva on valmis, rakennettu Raspberry Pi: n Ubuntun rakennuksen perusteella.
Asennusta varten kuva on kopioitava asemalle USB, liitä tämä laite USB-C-porttiin ja käynnistä tietokone 1TR-tilassa (Palautus-käyttöjärjestelmä) painamalla virtapainiketta ja pitämällä sitä käynnistyksen aikana. Kun komentorivi tulee näkyviin, sinun on suoritettava linuxsetup.sh-komentosarja, joka asentaa ytimen ja määrittää ympäristön.
Tällöin Linux alkaa toimia, MacOS: n palauttamiseksi sinun on kuitenkin suoritettava komento "bputil -n" 1TR-tilassa.
Ready build tukee USB: tä, I2C: tä ja DART: ää, on suositeltavaa käyttää ulkoista USB-sovitinta verkkoon, kun taas grafiikkalaitteiden kiihdytystä ja laajennettuja oheislaitteita ei vielä tueta. Bluetooth-tuki edellyttää uuden ohjaimen kirjoittamista epätyypillisen PCIe-pohjaisen protokollan vuoksi.
lähde: https://corellium.com